Share via


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.

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 /.defaultyö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+d320620c-3d56-42bc-bc45-4cdd85c41f00%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