Microsoft kimlik platformunda yönetici onayı
Bazı izinler, kiracı içinde verilmeden önce yöneticiden onay gerektirir. Kiracının tamamına izin vermek için yönetici onay uç noktasını da kullanabilirsiniz.
Önerilen: Kullanıcıyı uygulamanızda oturum açın
Genellikle, yönetici onay uç noktasını kullanan bir uygulama oluşturduğunuzda, uygulamanın yöneticinin uygulamanın izinlerini onayladığı bir sayfa veya görünüm gerekir. Bu sayfa, uygulamanın kayıt akışının bir parçası, uygulama ayarlarının bir parçası veya özel bir "bağlan" akışı olabilir. Çoğu durumda, uygulamanın bu "bağlan" görünümünü yalnızca bir kullanıcı iş veya okul Microsoft hesabıyla oturum açtıktan sonra göstermesi mantıklıdır.
Kullanıcıyı uygulamanızda oturum açtığınızda, yöneticiden gerekli izinleri onaylamasını istemeden önce yöneticinin ait olduğu kuruluşu tanımlayabilirsiniz. Kesinlikle gerekli olmasa da, kuruluş kullanıcılarınız için daha sezgisel bir deneyim oluşturmanıza yardımcı olabilir.
Dizin yöneticisinden izin isteme
Kuruluşunuzun yöneticisinden izin istemeye hazır olduğunuzda kullanıcıyı Microsoft kimlik platformu yönetici onayı uç noktasına yönlendirebilirsiniz.
https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
?client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&redirect_uri=http://localhost/myapp/permissions
&state=12345
Parametre | Koşul | Açıklama |
---|---|---|
tenant |
Gerekli | İzin istemek istediğiniz dizin kiracısı. GUID veya kolay ad biçiminde sağlanabilir veya örnekte görüldüğü gibi ile organizations genel olarak başvurulabilir. Kişisel hesaplar kiracı bağlamından başka yönetici onayı sağlayamadığı için 'ortak' kullanmayın. Kiracıları yöneten kişisel hesaplarla en iyi uyumluluğu sağlamak için mümkün olduğunda kiracı kimliğini kullanın. |
client_id |
Zorunlu | Microsoft Entra yönetim merkezinin uygulamanıza atanmış Uygulama kayıtları deneyimi olan Uygulama (istemci) kimliği. |
redirect_uri |
Zorunlu | Uygulamanızın işlemesi için yanıtın gönderilmesini istediğiniz yeniden yönlendirme URI'si. Uygulama kayıt portalında kaydettiğiniz yeniden yönlendirme URI'lerinden biriyle tam olarak eşleşmelidir. |
state |
Önerilir | İstekte bulunan ve belirteç yanıtında da döndürülecek bir değer. İstediğiniz herhangi bir içeriğin dizesi olabilir. Kullanıcının kimlik doğrulama isteği gerçekleşmeden önceki durumuyla ilgili bilgileri kodlamak için durum bilgisini (örneğin, bulunduğu sayfa veya görünüm) kullanın. |
scope |
Zorunlu | Uygulama tarafından istenen izin kümesini tanımlar. Bu, statik (kullanarak /.default ) veya dinamik kapsamlar olabilir. Bu, OIDC kapsamlarını (openid , profile , email ) içerebilir. |
Bu noktada, Microsoft Entra Id isteği tamamlamak için bir kiracı yöneticisinin oturum açmasını gerektirir. Yöneticiden parametresinde istediğiniz tüm izinleri onaylaması scope
istenir. Statik (/.default
) bir değer kullandıysanız v1.0 yönetici onayı uç noktası gibi çalışır ve gerekli izinlerde (hem kullanıcı hem de uygulama) bulunan tüm kapsamlar için onay ister. Uygulama izinleri istemek için değerini kullanmanız /.default
gerekir. kullandığınızda yöneticilerin her zaman /.default
yönetici onayı ekranında belirli bir izni görmesini istemiyorsanız, en iyi yöntem izni gerekli izinler bölümüne koymamaktır. Bunun yerine, kullanmak yerine çalışma zamanında onay ekranında olmasını istediğiniz izinleri eklemek için dinamik onayı kullanabilirsiniz /.default
.
Başarılı yanıt
Yönetici uygulamanızın izinlerini onaylarsa başarılı yanıt şöyle görünür:
http://localhost/myapp/permissions
?admin_consent=True
&tenant=aaaabbbb-0000-cccc-1111-dddd2222eeee
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&state=12345
Parametre | Açıklama |
---|---|
tenant |
Uygulamanıza istediği izinleri GUID biçiminde veren dizin kiracısı. |
state |
İstekte bulunan ve belirteç yanıtında da döndürülecek bir değer. İstediğiniz herhangi bir içeriğin dizesi olabilir. Durum, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumuyla ilgili bilgileri kodlamak için kullanılır( örneğin, üzerinde bulunduğu sayfa veya görünüm). |
scope |
Uygulama için erişim verilen izin kümesi. |
admin_consent |
olarak ayarlanır True . |
Uyarı
Kullanıcıların kimliğini doğrulamak veya yetkilendirmek için hiçbir zaman parametresinin tenant
kiracı kimliği değerini kullanmayın. Kiracı kimliği değeri güncelleştirilebilir ve kötü aktörler tarafından uygulamanıza verilen yanıtın kimliğine bürünmek üzere gönderilebilir. Bu durum uygulamanızın güvenlik olaylarına maruz kalmalarına neden olabilir.
Hata yanıtı
http://localhost/myapp/permissions
?admin_consent=True
&error=consent_required
&error_description=AADSTS65004%3a+The+resource+owner+or+authorization+server+denied+the+request.%0d%0aTrace+ID%3a+0000aaaa-11bb-cccc-dd22-eeeeee333333%0d%0aCorrelation+ID%3a+8478d534-5b2c-4325-8c2c-51395c342c89%0d%0aTimestamp%3a+2019-09-24+18%3a34%3a26Z
&state=12345
Başarılı bir yanıtta görülen parametrelere eklendiğinde, hata parametreleri aşağıdaki gibi görülür.
Parametre | Açıklama |
---|---|
error |
Oluşan hata türlerini sınıflandırmak için kullanılabilecek ve hatalara tepki vermek için kullanılabilen bir hata kodu dizesi. |
error_description |
Geliştiricinin hatanın kök nedenini tanımlamasına yardımcı olabilecek belirli bir hata iletisi. |
state |
İstekte bulunan ve belirteç yanıtında da döndürülecek bir değer. İstediğiniz herhangi bir içeriğin dizesi olabilir. Durum, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumuyla ilgili bilgileri kodlamak için kullanılır( örneğin, üzerinde bulunduğu sayfa veya görünüm). |
admin_consent |
Bu yanıtın bir yönetici onayı akışında gerçekleştiğini belirtmek için True olarak ayarlanır. |
Sonraki adımlar
- Bir uygulamayı çok kiracılı olacak şekilde dönüştürmeyi öğrenin
- Yetkilendirme kodu verme akışı sırasında OAuth 2.0 protokol katmanında onayın nasıl desteklendiği hakkında bilgi edinin.
- Çok kiracılı bir uygulamanın daha gelişmiş çok katmanlı uygulama desenlerini destekleyen "kullanıcı" ve "yönetici" onayı uygulamak için onay çerçevesini nasıl kullanabileceğini öğrenin.
- Microsoft Entra uygulama onayı deneyimlerini anlama