İzinleri ve onayı bulma

Tamamlandı

Microsoft kimlik platformu ile tümleşen uygulamalar, kullanıcılara ve yöneticilere verilere nasıl erişilebileceği üzerinde denetim sağlayan bir yetkilendirme modelini izler.

Microsoft kimlik platformu OAuth 2.0 yetkilendirme protokolunu uygular. OAuth 2.0, üçüncü taraf bir uygulamanın bir kullanıcı adına web'de barındırılan kaynaklara erişebildiği bir yöntemdir. Microsoft kimlik platformu ile tümleşen web'de barındırılan tüm kaynakların kaynak tanımlayıcısı veya uygulama kimliği URI'si vardır.

Microsoft web'de barındırılan kaynaklara bazı örnekler aşağıda verilmiştir:

  • Microsoft Graph: https://graph.microsoft.com
  • Microsoft 365 Posta API'si: https://outlook.office.com
  • Azure Key Vault: https://vault.azure.net

Aynı durum, Microsoft kimlik platformu ile tümleştirilen tüm üçüncü taraf kaynaklar için de geçerlidir. Bu kaynaklardan herhangi biri, bu kaynağın işlevselliğini daha küçük parçalara bölmek için kullanılabilecek bir izin kümesi de tanımlayabilir. Bir kaynağın işlevselliği küçük izin kümelerinde öbeklendiğinde, üçüncü taraf uygulamalar yalnızca işlevlerini gerçekleştirmek için ihtiyaç duydukları izinleri istemek üzere oluşturulabilir. Kullanıcılar ve yöneticiler uygulamanın hangi verilere erişebileceğini bilir.

OAuth 2.0'da bu tür izin kümeleri kapsam olarak adlandırılır. Bunlar genellikle izinler olarak da adlandırılır. Microsoft kimlik platformu, bir izin dize değeri olarak temsil edilir. Bir uygulama, sorgu parametresinde izni belirterek gereken izinleri istemektedir scope . Kimlik platformu çeşitli iyi tanımlanmış OpenID Connect kapsamlarını ve kaynak tabanlı izinleri destekler (her izin, kaynağın tanımlayıcısına veya uygulama kimliği URI'sine izin değeri eklenerek belirtilir). Örneğin, izin dizesi https://graph.microsoft.com/Calendars.Read Microsoft Graph'ta kullanıcı takvimlerini okumak için izin istemek için kullanılır.

Bir uygulama, Microsoft kimlik platformu yetkilendirme uç noktasına yönelik isteklerdeki kapsamları belirterek en yaygın olarak bu izinleri istemektedir. Ancak, bazı yüksek ayrıcalıklı izinler yalnızca yönetici onayıyla verilebilir. Yönetici onay uç noktası kullanılarak istenebilir veya verilebilir.

Not

Microsoft Kimlik platformu için yetkilendirme, belirteç veya onay uç noktalarına yönelik isteklerde, kaynak tanımlayıcısı kapsam parametresinde atlanırsa, kaynağın Microsoft Graph olduğu varsayılır. Örneğin scope=User.Read ile https://graph.microsoft.com/User.Read eşdeğerdir.

İzin türleri

Microsoft kimlik platformu iki tür izni destekler: temsilci erişimi ve yalnızca uygulama erişimi.

  • Temsilci erişimi , oturum açmış bir kullanıcı bulunan uygulamalar tarafından kullanılır. Bu uygulamalarda, uygulamanın istediği izinleri kullanıcı veya yönetici onaylar. Uygulamaya, hedef kaynağa çağrı yaparken oturum açmış bir kullanıcı gibi davranması için temsilci izni verilir.

  • Yalnızca uygulama erişim izinleri , oturum açmış bir kullanıcı olmadan çalışan uygulamalar (örneğin, arka plan hizmetleri veya daemon'lar olarak çalışan uygulamalar) tarafından kullanılır. Yalnızca bir yönetici yalnızca uygulama erişim izinlerini onaylayabilir.

Microsoft kimlik platformu uygulamaları, gerekli kaynaklara veya API'lere erişim elde etmek için onay kullanır. Uygulamanızın başarılı olması için bilmesi gereken birçok onay türü vardır. İzinleri tanımlıyorsanız, kullanıcılarınızın uygulamanıza veya API'nize nasıl erişeceklerini de anlamanız gerekir.

Üç onay türü vardır: statik kullanıcı onayı, artımlı ve dinamik kullanıcı onayı ve yönetici onayı.

Statik kullanıcı onayı senaryosunda, Azure portalında uygulamanın yapılandırmasında gereken tüm izinleri belirtmeniz gerekir. Kullanıcı (veya yönetici) bu uygulama için onay vermemişse Microsoft kimlik platformu kullanıcıdan şu anda onay sağlamasını ister. Statik izinler, yöneticilerin kuruluştaki tüm kullanıcılar adına onay vermesine de olanak tanır.

Azure portalında tanımlanan uygulamanın statik izinleri kodu güzel ve basit tutsa da geliştiriciler için bazı olası sorunlar sunar:

  • Uygulamanın, kullanıcının ilk oturum açmasında ihtiyaç duyacağı tüm izinleri istemesi gerekir. Bu, son kullanıcıların ilk oturum açmada uygulamanın erişimini onaylamasını engelleyen uzun bir izin listesine yol açabilir.

  • Uygulamanın önceden erişeceği tüm kaynakları bilmesi gerekir. Rastgele sayıda kaynağa erişebilecek uygulamalar oluşturmak zordur.

Microsoft kimlik platformu uç noktasıyla, Azure portalındaki uygulama kayıt bilgilerinde tanımlanan statik izinleri yoksayabilir ve bunun yerine artımlı olarak izin isteyebilirsiniz. Müşteri daha fazla uygulama özelliği kullandığından, önceden en düşük izin kümesini isteyebilir ve zaman içinde daha fazlasını isteyebilirsiniz.

Bunu yapmak için, bir erişim belirteci isterken yeni kapsamları parametreye ekleyerek uygulamanızın ihtiyaç duyduğu kapsamları scope istediğiniz zaman belirtebilirsiniz; bunları uygulama kayıt bilgilerinde önceden belirlemenize gerek kalmadan. Kullanıcı isteğe eklenen yeni kapsamları henüz onaylamadıysa, yalnızca yeni izinlere onay vermeleri istenir. Artımlı veya dinamik onay, yalnızca atanan izinler için geçerlidir ve yalnızca uygulama erişim izinleri için geçerli değildir.

Önemli

Dinamik onay kullanışlı olabilir ama yönetici onayı gerektiren izinlerde çok zorluk çıkarabilir çünkü yönetici onayı deneyimi, onay zamanında söz konusu izinleri bilmiyor olacaktır. Yönetici ayrıcalıklarına ihtiyacınız varsa veya uygulamanız dinamik onay kullanıyorsa, tüm izinleri Azure portalına kaydetmeniz gerekir (yalnızca yönetici onayı gerektiren izinlerin alt kümesine değil). Bu, kiracı yöneticilerinin tüm kullanıcıları adına onay vermelerini sağlar.

Uygulamanızın belirli yüksek ayrıcalıklı izinlere erişmesi gerektiğinde yönetici onayı gereklidir. Yönetici onayı, uygulamaları veya kullanıcıları kuruluştan yüksek ayrıcalıklı verilere erişme yetkisi vermeden önce yöneticilerin başka denetimlere sahip olmasını sağlar.

Bir kuruluş adına yapılan yönetici onayı yine de uygulama için kayıtlı statik izinler gerektirir. Bir yöneticinin tüm kuruluş adına onay vermesi gerekiyorsa, uygulama kayıt portalında uygulamalar için bu izinleri ayarlayın. Bu, kuruluş yöneticisinin uygulamayı ayarlamak için gereken döngüleri azaltır.

OpenID Connect veya OAuth 2.0 yetkilendirme isteğinde, uygulama kapsam sorgusu parametresini kullanarak ihtiyaç duyduğu izinleri isteyebilir. Örneğin, bir kullanıcı uygulamada oturum açtığında uygulama aşağıdaki örneğe benzer bir istek gönderir. Satır sonları okunabilirlik için eklenir.

GET https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=
https%3A%2F%2Fgraph.microsoft.com%2Fcalendars.read%20
https%3A%2F%2Fgraph.microsoft.com%2Fmail.send
&state=12345

scope parametresi, uygulamanın istediği temsilci izinlerinin boşlukla ayrılmış bir listesidir. Her izin, kaynağın tanımlayıcısına (uygulama kimliği URI'si) izin değeri eklenerek belirtilir. İstek örneğinde, uygulamanın kullanıcının takvimini okuması ve postayı kullanıcı olarak göndermesi için izin gerekiyor.

Kullanıcı kimlik bilgilerini girdikten sonra, Microsoft kimlik platformu kullanıcı onayının eşleşen bir kaydını denetler. Kullanıcı daha önce istenen izinlerden hiçbirini onaylamadıysa ve yönetici bu izinleri kuruluşun tamamı adına onaylamadıysa, Microsoft kimlik platformu kullanıcıdan istenen izinleri vermesini ister.