Souhlas správce na platformě Microsoft Identity Platform

Některá oprávnění vyžadují souhlas správce předtím, než ho může udělit v rámci tenanta. Koncový bod souhlasu správce můžete také použít k udělení oprávnění celému tenantovi.

Když obvykle vytváříte aplikaci, která používá koncový bod souhlasu správce, potřebuje aplikace stránku nebo zobrazení, ve kterém může správce schválit oprávnění aplikace. Tato stránka může být součástí toku registrace aplikace, části nastavení aplikace nebo může být vyhrazeným tokem pro připojení. V mnoha případech je vhodné, aby aplikace zobrazovala toto zobrazení connect až po přihlášení uživatele pomocí pracovního nebo školního účtu Microsoft.

Když uživatele přihlásíte do aplikace, můžete před žádostí o schválení potřebných oprávnění identifikovat organizaci, do které správce patří. I když to není nezbytně nutné, může vám to pomoct vytvořit intuitivnější prostředí pro uživatele vaší organizace.

Žádost o oprávnění od správce adresáře

Až budete připravení požádat o oprávnění od správce vaší organizace, můžete uživatele přesměrovat na koncový bod souhlasu správce Microsoft Identity Platform.

https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
        ?client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
        &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
        &redirect_uri=http://localhost/myapp/permissions
        &state=12345
Parametr Podmínka Popis
tenant Povinní účastníci Tenant adresáře, od kterého chcete požádat o oprávnění. Lze zadat v guid nebo popisný formát názvu NEBO obecně odkazovat s organizations , jak je vidět v příkladu. Nepoužívejte "běžné", protože osobní účty nemohou poskytnout souhlas správce s výjimkou kontextu tenanta. Pokud chcete zajistit nejlepší kompatibilitu s osobními účty, které spravují tenanty, použijte ID tenanta, pokud je to možné.
client_id Požaduje se ID aplikace (klienta), které centrum pro správu Microsoft Entra – Registrace aplikací prostředí přiřazené k vaší aplikaci.
redirect_uri Požaduje se Identifikátor URI přesměrování, do kterého chcete odeslat odpověď, aby vaše aplikace zpracovávala. Musí přesně odpovídat jednomu z identifikátorů URI přesměrování, které jste zaregistrovali na portálu pro registraci aplikací.
state Doporučené Hodnota zahrnutá v požadavku, která bude vrácena také v odpovědi tokenu. Může to být řetězec libovolného obsahu. Pomocí stavu můžete zakódovat informace o stavu uživatele v aplikaci před tím, než došlo k žádosti o ověření, jako je stránka nebo zobrazení, na které byli.
scope Požaduje se Definuje sadu oprávnění, která aplikace požaduje. Může se jednat o statické (pomocí /.default) nebo dynamické obory. To může zahrnovat obory OIDC (openid, profile, email).

V tomto okamžiku vyžaduje Microsoft Entra ID správce tenanta, aby se přihlásil, aby žádost dokončil. Správce se zobrazí výzva ke schválení všech oprávnění, která jste v parametru scope požadovali. Pokud jste použili statickou (/.default) hodnotu, bude fungovat jako koncový bod souhlasu správce verze 1.0 a požádat o souhlas pro všechny obory nalezené v požadovaných oprávněních (uživatel i aplikace). Abyste mohli požádat o oprávnění aplikace, musíte použít /.default tuto hodnotu. Pokud nechcete, aby správci viděli dané oprávnění na obrazovce souhlasu správce po celou dobu, kdy používáte /.default, osvědčeným postupem je nepoužívat oprávnění v části požadovaná oprávnění. Místo toho můžete použít dynamický souhlas k přidání oprávnění, která chcete mít na obrazovce souhlasu za běhu, a ne k použití /.default.

Úspěšná odpověď

Pokud správce schválí oprávnění pro vaši aplikaci, úspěšná odpověď vypadá takto:

http://localhost/myapp/permissions
    ?admin_consent=True
    &tenant=fa00d692-e9c7-4460-a743-29f2956fd429
    &scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
    &state=12345
Parametr Popis
tenant Tenant adresáře, který vaší aplikaci udělil oprávnění, která požadoval, ve formátu GUID.
state Hodnota zahrnutá v požadavku, která se také vrátí v odpovědi tokenu. Může to být řetězec libovolného obsahu. Stav se používá ke kódování informací o stavu uživatele v aplikaci před tím, než došlo k žádosti o ověření, jako je stránka nebo zobrazení, na které byli.
scope Sada oprávnění, kterým byl udělen přístup pro aplikaci.
admin_consent Nastaví se na Truehodnotu .

Upozorňující

Nikdy nepoužívejte hodnotu ID tenanta parametru tenant k ověřování nebo autorizaci uživatelů. Hodnotu ID tenanta můžou aktualizovat a odeslat chybní aktéři, aby zosobnění odpovědi na vaši aplikaci. To může způsobit, že vaše aplikace bude vystavená incidentům zabezpečení.

Chybná odpověď

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

Přidání k parametrům, které se zobrazují v úspěšné odpovědi, se zobrazí níže uvedené parametry chyb.

Parametr Popis
error Řetězec kódu chyby, který lze použít ke klasifikaci typů chyb, ke kterým dochází, a lze jej použít k reakci na chyby.
error_description Konkrétní chybová zpráva, která může vývojáři pomoct identifikovat původní příčinu chyby.
state Hodnota zahrnutá v požadavku, která se také vrátí v odpovědi tokenu. Může to být řetězec libovolného obsahu. Stav se používá ke kódování informací o stavu uživatele v aplikaci před tím, než došlo k žádosti o ověření, jako je stránka nebo zobrazení, na které byli.
admin_consent Tato odpověď bude nastavená tak, aby True značí, že k této odpovědi došlo v toku souhlasu správce.

Další kroky