Microsoft Entra Id'de bir uygulamanın istenen izinlerini güncelleştirme

Microsoft Entra Id ile bir uygulama ayarlarken, geliştiriciler izinleri kullanarak diğer uygulama ve hizmetlerden verilere erişim isteyebilir. Uygulama bildirimlerine statik izinler ekleyerek veya çalışma zamanında dinamik olarak izin isteyerek izin isteyebilirler. Kullanıcılar veya yöneticiler onay sırasında izin vermeyi seçerek uygulamanın ihtiyaç duyduğu verilere erişmesine izin verebilir.

Bir uygulamanın işlevselliği geliştikçe, erişmesi gereken kaynaklar da değişir. Bu değişiklikler, yeni özellikleri etkinleştirmeyi, gereksiz erişimi ortadan kaldırmayı veya yüksek ayrıcalıklı izinleri daha az ayrıcalıklı izinlerle değiştirmeyi içerebilir. Bu makalede, Microsoft Entra yönetim merkezini ve Microsoft Graph API çağrılarını kullanarak uygulamanızın istediği izinleri nasıl güncelleştirebilirsiniz?

Uygulamanızın izinlerini güncelleştirmek yalnızca en iyi güvenlik uygulaması değildir, aynı zamanda uygulamanızın kullanıcı deneyimini ve benimsemesini geliştirmenin bir yoludur. Aşağıdaki bölümde, uygulamanız için izinleri güncelleştirmenin bazı avantajları özetlenmiştir:

  • Uygulamanızın yeni bir işlevi varsa, uygulamanın ihtiyaç duyduğu ek kaynaklara erişmesini sağlayan daha fazla izin isteyebilirsiniz.
  • Yalnızca çalışması için gereken en az ayrıcalıklı izinleri isterse müşterilerin uygulamanızı benimseme olasılığı daha yüksektir. Uygulamanızın müşterinin gizliliğine ve veri korumasına saygı gösterdiğini ve ihtiyaç duyduğundan daha fazla kaynağa erişmediğini gösterir.
  • Ayrıca, uygulamanızın güvenliği aşılırsa, daha az veya daha az ayrıcalıklı izinlere sahipse daha küçük bir patlama yarıçapı olur. Bu, saldırganın müşterinin verilerine ve kaynaklarına daha az erişimi olduğu ve bu nedenle olası hasarın azaldığı anlamına gelir.
  • Uygulamanızın izinlerini güncelleştirerek uygulamanızın güvenliğini, kullanılabilirliğini ve uyumluluğunu geliştirebilir ve müşterilerinizle güven oluşturabilirsiniz.

Önkoşullar

Bir uygulamanın istenen izinlerini güncelleştirmek için şunları yapmanız gerekir:

  • Microsoft Entra kullanıcı hesabı. Henüz bir hesabınız yoksa ücretsiz bir hesap oluşturun.
  • Aşağıdaki rollerden biri: Uygulama Yöneticisi, Bulut Uygulaması Yöneticisi. Yönetici olmayan bir uygulama sahibi, bir uygulamanın istenen izinlerini güncelleştirebiliyor.

İzinleri güncelleştirme senaryoları

Aşağıdaki bölümde, uygulamanızın istediği izinleri güncelleştirmeniz gereken üç ana senaryo listelenir:

  • Uygulamaya izin ekleme
  • Bir uygulamadan kullanılmayan izinleri kaldırma
  • İzin değiştirme

Not

Uygulamanız için istenen izinlerin güncelleştirilmesi, uygulamanızın korumalı kaynaklara erişimini otomatik olarak vermez veya iptal etmez. Müşterilerinizin veya kuruluşunuzdaki yöneticilerin eklenen yeni izinlere onay vermesi veya izinleri el ile iptal etmeleri gerekir.

Uygulamaya izin ekleme

Uygulamanızın daha önce gerek duymadığı bir izne ihtiyacı olan yeni bir işlevselliği varsa, izin ekleyebilirsiniz.

Yalnızca uygulamanızın çalışması için gereken en düşük izinlere erişim istemek en iyi yöntemdir. Uygulamanızda yeni işlevleri desteklemek için yeni bir izin eklemeniz gerekiyorsa, bu özellik için yalnızca en az ayrıcalıklı izni isteyin. Örneğin, uygulamanıza bir e-posta bildirimi özelliği eklemek için kullanıcınızın e-postalarına erişmesi gerekir. Bunu yapmak için izin için Mail.ReadWrite erişim istemeniz gerekir.

Statik onay, çalışma zamanında değil, uygulama kaydı sırasında kullanıcılardan veya yöneticilerden izin istemenin bir yoludur. Statik onay, uygulamanın Microsoft Entra yönetim merkezindeki Uygulama kayıtları bölmesinde ihtiyaç duyduğu tüm izinleri bildirmesini gerektirir. Microsoft Entra yönetim merkezini kullanarak yalnızca statik onay izinlerini güncelleştirebilirsiniz. Farklı onay türleri hakkında daha fazla bilgi edinmek için bkz . Onay türleri. Dinamik onay izinlerini güncelleştirme hakkında bilgi edinmek için bu makalenin Microsoft Graph sekmesine bakın.

Bu bölümde, statik onaya izin eklemeyi öğreneceksiniz.

Microsoft Entra yönetim merkezinde statik onaya iki farklı yolla izin ekleyebilirsiniz:

1. Seçenek: API izinleri bölmesine izin ekleme

  1. Microsoft Entra yönetim merkezinde en az Bir Bulut Uygulaması Yöneticisi veya uygulama sahibi olarak oturum açın.
  2. Kimlik>Uygulamaları> Uygulama kayıtları> Tüm uygulamalar'a göz atın.
  3. İzin eklemek istediğiniz uygulama kaydını bulun ve seçin. İzinleri iki farklı yolla ekleyebilirsiniz:
  4. API izinleri bölmesine izinler ekleyin.
    1. API izinleri bölmesini bulun ve İzin ekle'yi seçin.

    2. Erişmek istediğiniz API'yi ve kullanılabilir seçenekler listesinden istemek istediğiniz izni seçin ve İzin ekle'yi seçin.

      API izinleri bölmesinin ekran görüntüsü.

2. Seçenek: Uygulama bildirimine izin ekleme

  1. Sol gezinti bölmesindeki Yönet menü grubunun altında Bildirim'i seçin. Seçim, uygulama kayıt nesnesinin özniteliklerini doğrudan düzenlemenizi sağlayan bir düzenleyici açar.
  2. Uygulamanın bildirim dosyasındaki özelliği dikkatlice düzenleyin requiredResourceAccess .
  3. resourceAppId Özelliğini ve özelliğini ekleyin ve resourceAccess gerekli izinleri atayın.
  4. Değişikliklerinizi kaydedin.

İzin eklemenin aşağıdaki adımlarını tamamlamak için aşağıdaki kaynaklara ve ayrıcalıklara ihtiyacınız vardır:

  • HTTP isteklerini seçtiğiniz bir araçta (örneğin, uygulamanızda veya Graph Gezgini aracılığıyla) çalıştırın.
  • API'leri en az Bulut Uygulaması Yöneticisi olan bir kullanıcı olarak veya hedef uygulama kaydının sahibi olarak çalıştırın.
  • Bu değişiklikleri yapmak için kullanılan uygulamaya izin verilmelidir Application.ReadWrite.All .
  1. Uygulamanızın gerektirdiği izinleri, izin kimliklerini ve bunların uygulama rolleri (uygulama izinleri) veya temsilci izinleri olup olmadığını belirleyin. Örneğin, Microsoft Graph izinleri istemek istiyorsanız, izinlerin ve kimliklerinin listesi için bkz. Microsoft Graph izinleri.

  2. Gerekli Microsoft Graph izinlerini uygulamanıza ekleyin. Aşağıdaki örnek, nesne kimliğiyle aaaaaaaa-0000-1111-2222-bbbbbbbbbbbbtanımlanan bir uygulama kaydına gerekli Microsoft Graph izinlerini eklemek için Uygulama güncelleştirme API'sini çağırır. Bu örnek, izin ve Application.Read.All uygulama iznini kullanır Analytics.Read ve temsilci olarak verir. Microsoft Graph, ile genel 00000003-0000-0000-c000-000000000000 olarak benzersiz AppIdolan bir ServicePrincipal nesnesi olarak tanımlanır.

    PATCH https://graph.microsoft.com/v1.0/applications/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    Content-Type: application/json
     {
         "requiredResourceAccess": [
             {
                 "resourceAppId": "00000003-0000-0000-c000-000000000000",
                 "resourceAccess": [
                     {
                         "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e",
                         "type": "Scope"
                     },
                     {
                         "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30",
                         "type": "Role"
                     }
                 ]
             }
         ]
     }
    

Dinamik onay, Uygulama kayıtları bölmesinde statik olarak bildirmek yerine çalışma zamanında kullanıcılardan veya yöneticilerden izin istemenin bir yoludur. Dinamik onay, uygulamanın yalnızca belirli bir işlevsellik için gereken izinleri istemesine ve gerektiğinde kullanıcıdan veya yöneticiden onay almasına olanak tanır. Dinamik onay, temsilci izinleriyle kullanılabilir ve tüm izinler için yönetici onayı istemek üzere kapsamla /.default birleştirilebilir.

Dinamik onaya izin eklemek için:

  • Microsoft Graph kullanma: Bir uygulama kaydına gerekli Microsoft Graph izinlerini ekleyin. Bu örnek, izin ve Application.Read.All uygulama iznini kullanır Analytics.Read ve temsilci olarak verir. 'kapsamlar' içindeki değerleri, uygulama için yapılandırmak istediğiniz Microsoft Graph temsilci izinlerinin değerleriyle değiştirin.

    İstek aşağıdaki örnekteki gibi olmalıdır:

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read

  • MSAL.js kullan: 'kapsamlar' içindeki değerleri, uygulama için yapılandırmak istediğiniz Microsoft Graph temsilci izinlerinin değerleriyle değiştirin.

      const Request = {
          scopes: ["openid", "profile"],
          loginHint: "example@domain.net"
      };
    
      myMSALObj.ssoSilent(Request)
          .then((response) => {
              // your logic
          }).catch(error => {
              console.error("Silent Error: " + error);
              if (error instanceof msal.InteractionRequiredAuthError) {
                  myMSALObj.loginRedirect(loginRequest);
              }
      });
    

Uygulamanıza izinler eklendikten sonra, kullanıcıların veya yöneticilerin yeni izinler için onay vermesi gerekir. Yönetici olmayan kullanıcılar uygulamanızda oturum açtıklarında bir onay istemi görür. Öte yandan yönetici kullanıcılar, uygulamanızda veya Microsoft Entra yönetim merkezinde ilk kez oturum açtıklarında, kuruluşlarındaki tüm kullanıcılar adına yeni izinler için onay verebilir.

Eklenen izinler yönetici onayı gerektirdiğinde, gerekli eylemler uygulama türüne göre değişir:

  • Ev kiracısında tek kiracılı uygulama ve çok kiracılı uygulama: Kullanıcının en azından Ayrıcalıklı Rol Yöneticisi rolü olarak oturum açması ve kiracı genelinde onay vermesi gerekir.
  • Müşterinin kiracılarındaki çok kiracılı uygulamalar: Kullanıcı bir sonraki oturum açma girişiminde yeni onay istemleri görür. İzinler yalnızca kullanıcı onayı gerektiriyorsa, kullanıcı onay verebilir. İzinler yönetici onayı gerektiriyorsa, kullanıcının onay vermek için yöneticisine başvurması gerekir.

Kullanılmayan izinler istemeyi durdurma

İzinlerin kaldırılması, hassas verilerin açığa çıkarılması veya güvenliğin tehlikeye atılması riskini azaltabilir ve kullanıcılarınız veya yöneticileriniz için onay sürecini basitleştirebilir. Uygulamanızın artık bir izne ihtiyacı yoksa, uygulama kaydınızın gerekli kaynak erişiminden ve kodundan izni kaldırarak uygulamanızın bunu istemesini engellemeniz gerekir. Örneğin, artık e-posta bildirimleri göndermeden bir uygulama izni kaldırabilir Mail.ReadWrite .

Önemli

Uygulama kaydınızdan bir iznin kaldırılması, uygulamaya zaten verilmiş olan izinleri otomatik olarak iptal etmez. İzinleri el ile iptal etmeniz gerekir. Daha fazla bilgi için bu makalenin Kurumsal uygulama için kaldırılan izinler için onayı iptal etme bölümüne bakın.

Statik onay gerektiren izinler istemeyi durdurmak için, Uygulama kayıtları bölmesinden izni kaldırmanız gerekir. Kiracının yöneticisinin Kurumsal uygulamalar bölmesindeki izni de iptal etmesi gerekir. Kurumsal uygulamaya verilen izinleri iptal etme hakkında daha fazla bilgi için bkz . Kurumsal uygulama izinlerini iptal etme.

Bu bölümde statik onay için izin istemeyi nasıl durduracağınızı öğreneceksiniz.

Microsoft Entra yönetim merkezinde statik onay izinlerini iki farklı yolla kaldırabilirsiniz:

1. Seçenek: API izinleri bölmesinden

  1. Microsoft Entra yönetim merkezinde en az Bir Bulut Uygulaması Yöneticisi veya uygulama sahibi olarak oturum açın.
  2. Kimlik>Uygulamaları> Uygulama kayıtları> Tüm uygulamalar'a göz atın.
  3. İzinlerini kaldırmak istediğiniz uygulama kaydını bulun ve seçin.
  4. API izinleri bölmesinden izinleri kaldırın:
    1. API izinleri bölmesini bulun ve kaldırmak istediğiniz izinleri bulun.

    2. Kaldırmak istediğiniz API'yi seçin ve önce yönetici onayını iptal et ve ardından izni kaldır'ı seçin. Verilen iznin kiracınızdan kaldırılmasını sağlar.

      API izinleri bölmesi aracılığıyla izinlerin nasıl kaldırılacağını gösteren ekran görüntüsü.

Seçenek 2: Uygulama bildiriminden

  1. Sol gezinti bölmesindeki Yönet menü grubunun altında Bildirim'i seçin. Uygulama kayıt nesnesinin özniteliklerini doğrudan düzenlemenizi sağlayan bir düzenleyici açılır.
  2. Uygulamanın bildirim dosyasındaki özelliği dikkatlice düzenleyin requiredResourceAccess .
  3. Özellik ve resourceAccess özellikten resourceAppId gereksiz izinleri kaldırın.
  4. Değişikliklerinizi kaydedin.

İzinleri kaldırmaya yönelik aşağıdaki adımları tamamlamak için aşağıdaki kaynaklara ve ayrıcalıklara ihtiyacınız vardır:

  • HTTP isteklerini seçtiğiniz bir araçta (örneğin, uygulamanızda veya Graph Gezgini aracılığıyla) çalıştırın.
  • API'leri en az Bir Bulut Uygulaması Yöneticisi olarak veya hedef uygulama kaydının sahibi olarak çağırın.
  • Bu değişiklikleri yapmak için kullanılan uygulamaya izin verilmelidir Application.ReadWrite.All .
  1. Uygulamanızın izinlerini belirleyin.

  2. Örneğin, uygulamanızın Microsoft Graph izinleri istemesini durdurmak için, uygulamanız için Microsoft Graph izinlerini, bunların izin kimliklerini ve bunların uygulama rolleri (uygulama izinleri) veya temsilci izinleri olup olmadığını belirleyin.

  3. uygulamanızdan istenmeyen Microsoft Graph izinlerini kaldırın. Aşağıdaki örnek, örnek istemci kimliğiyle 00001111-aaaa-2222-bbbb-3333cccc4444tanımlanan bir uygulama kaydından istenmeyen Microsoft Graph izinlerini kaldırmak için Uygulama güncelleştirme API'sini çağırır. Bu örnekte, uygulamada , User.Readve Application.Read.AllbulunurAnalytics.Read. İzin ve uygulama iznini kaldırmamız Analytics.Read ve Application.Read.All temsilci olarak atamamız gerekir. Microsoft Graph, genel olarak benzersiz AppId olan servicePrincipal nesnesi 00000003-0000-0000-c000-000000000000 ve ve AppDisplayNameolarak Microsoft Graph olarak DisplayName tanımlanır.

    PATCH https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
    Content-Type: application/json
    {
        "requiredResourceAccess": [
            {
                "resourceAppId": "00000003-0000-0000-c000-000000000000",
                "resourceAccess": [
                    {
                        "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6 ",
                        "type": "Scope"
                    }
                ]
            }
        ]
    }
    

Dinamik onay isteğinden temsilci izinlerini kaldırmanız gerektiğinde, kaldırmak istediğiniz izinleri dışarıda bırakırken kapsam parametresini belirtin. İzinlerin kaldırılması, uygulamanın ilgili API'yi çağırmamasını sağlar.

Bu yöntem yalnızca temsilci izinleri için çalışır. Uygulama izinleri bir yönetici tarafından statik onay aracılığıyla istenir ve verilir ve OAuth 2.0 yetkilendirme isteği sırasında kapsam parametresine dahil edilmez.

Dinamik onay ile izin istemeyi durdurmak için:

  • Microsoft Graph'ı kullanma: İstenmeyen Microsoft Graph temsilci izinlerini 'scopes' parametresinden kaldırın. Bu örnekte, uygulamanız üç temsilci izni istemektedir: Analytics.ReadUser.Read ve Application.Read. Temsilci izinleri Analytics.Read ve Application.Read artık bu uygulama için gerekli değildir. Yalnızca gerektirir User.Read.

İstek aşağıdaki örneğe benzer olmalıdır:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=User.Read

  • MSAL.js kullanarak: 'kapsamlar'daki istenmeyen Microsoft Graph temsilci izinlerini kaldırın.

        const Request = {
            scopes: ["openid", "profile"],
            loginHint: "example@domain.net"
        };
    
        myMSALObj.ssoSilent(Request)
            .then((response) => {
                // your logic
            }).catch(error => {
                console.error("Silent Error: " + error);
                if (error instanceof msal.InteractionRequiredAuthError) {
                    myMSALObj.loginRedirect(loginRequest);
                }
        });
    

İzinler uygulama kaydından kaldırıldıktan sonra, kiracıdaki bir yöneticinin kuruluşunuzun verilerini korumak için onayı iptal etmesi de gerekir. Kaldırılan izin yönetici onayı gerektirdiğinde, gerekli eylemler uygulama türüne göre değişir:

  • Ev kiracısında tek kiracılı uygulama ve çok kiracılı uygulama: Tek bir kiracı uygulaması için, uygulamaya zaten verilmiş izinleri iptal etmek için kiracının yöneticisine başvurun. Çok kiracılı bir uygulama için, kurumsal uygulamaya verilen izinleri iptal etmek için uygulamanızın örneklerinin bulunduğu tüm kiracıların yöneticilerine başvurun. Kaldırılan izinlere onay iptal etmek, uygulamanın kaldırılan izin üzerinden erişimi korumamasını sağlar.
  • Müşterilerin kiracılarındaki çok kiracılı uygulamalar: Duyurular, bloglar ve diğer iletişim kanalları aracılığıyla izinleri iptal etmek için müşterilerinizle iletişim kurduğunuzdan emin olun.

Hem tek kiracılı hem de çok kiracılı uygulamalar için, kullanıcı onayının etkinleştirildiği kiracılardaki yönetici olmayan kullanıcılar, daha önce verdikleri izinlerin onayını iptal etmek için MyApps portalını kullanabilir. Son kullanıcıların MyApps portalında izinleri nasıl iptal edebildiği hakkında daha fazla bilgi için bkz . Son kullanıcı onayını iptal etme.

İzin değiştirme

Daha az ayrıcalıklı bir izin yeterli olduğunda yüksek ayrıcalıklı bir izni değiştirmeniz gerekir.

İzinlerin değiştirilmesi, hassas verileri açığa çıkarma veya güvenliği tehlikeye atma riskini azaltabilir ve böylece kullanıcı deneyimini ve güvenini geliştirebilir. Uygulamanız gibi Directory.ReadWrite.Allyüksek ayrıcalıklı bir izin kullanıyorsa, gibi User.ReadWrite.Alldaha az ayrıcalıklı bir iznin uygulamanızın işlevselliği için yeterli olup olmadığını göz önünde bulundurmanız gerekir.

Not

Bir uygulamanın statik onay için istenen izinlerini değiştirdiğinizde müşterinin yeniden mutabakata sahip olması gerekir. Yeniden mutabakat eylemi, daha önce verilen tüm izinleri iptal eder ve yeni izinler verir. Bir uygulamanın dinamik onay için istenen izinlerini değiştirdiğinizde, önceden verilen izinler iptal edilmez. Müşterinin izinleri el ile iptal etmek zorunda.

Bir izni değiştirmek için gereksiz izni kaldırmanız ve alternatif izni eklemeniz gerekir. Adımlar, bu makalenin Kullanılmayan izinler istemeyi durdurma ve izin ekleme bölümlerinde açıklananlara benzer.