Delen via


Beheerderstoestemming op het Microsoft Identity-platform

Voor sommige machtigingen is toestemming van een beheerder vereist voordat ze kunnen worden verleend binnen een tenant. U kunt ook het eindpunt voor beheerderstoestemming gebruiken om machtigingen te verlenen aan een hele tenant.

Wanneer u een toepassing bouwt die gebruikmaakt van het eindpunt voor beheerderstoestemming, heeft de app doorgaans een pagina of weergave nodig waarin de beheerder de machtigingen van de app kan goedkeuren. Deze pagina kan deel uitmaken van de registratiestroom van de app, een deel van de instellingen van de app of een speciale 'verbinding'-stroom. In veel gevallen is het logisch dat de app deze weergave 'verbinding maken' alleen weergeeft nadat een gebruiker zich heeft aangemeld met een Microsoft-werk- of schoolaccount.

Wanneer u de gebruiker aanmeldt bij uw app, kunt u de organisatie identificeren waartoe de beheerder behoort voordat u de gebruiker vraagt de benodigde machtigingen goed te keuren. Hoewel dit niet strikt noodzakelijk is, kunt u hiermee een intuïtievere ervaring maken voor uw gebruikers van uw organisatie.

De machtigingen aanvragen van een directorybeheerder

Wanneer u klaar bent om machtigingen aan te vragen van de beheerder van uw organisatie, kunt u de gebruiker omleiden naar het microsoft identity platform-beheerderstoestemmingseindpunt.

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
Kenmerk Conditie Beschrijving
tenant Verplicht De directorytenant van wie u toestemming wilt aanvragen. Kan worden opgegeven in DE GUID of beschrijvende naamnotatie OF algemeen verwezen met organizations zoals in het voorbeeld wordt gezien. Gebruik geen 'algemeen', omdat persoonlijke accounts geen beheerderstoestemming kunnen verlenen, behalve in de context van een tenant. Gebruik indien mogelijk de tenant-id om de beste compatibiliteit te garanderen met persoonlijke accounts die tenants beheren.
client_id Verplicht De toepassings-id (client) die door de Microsoft Entra beheerderscentrum – App-registraties interface aan uw app is toegewezen.
redirect_uri Verplicht De omleidings-URI waar u het antwoord naartoe wilt laten sturen zodat uw app het kan verwerken. Deze moet exact overeenkomen met een van de omleidings-URI's die u hebt geregistreerd in de app-registratieportal.
state Aanbevolen Een waarde die is opgenomen in de aanvraag die ook wordt geretourneerd in het tokenantwoord. Het kan een tekenreeks zijn van elke door u gewenste inhoud. Gebruik de status voor het coderen van informatie over de status van de gebruiker in de app voordat de verificatieaanvraag is opgetreden, zoals de pagina of weergave waarop ze zich bevonden.
scope Verplicht Hiermee definieert u de set machtigingen die door de toepassing worden aangevraagd. Dit kan statisch (met behulp van /.default) of dynamische bereiken zijn. Dit kan de OIDC-bereiken (openid, profile, ) emailomvatten.

Op dit moment is voor Microsoft Entra-id een tenantbeheerder vereist om zich aan te melden om de aanvraag te voltooien. De beheerder wordt gevraagd om alle machtigingen die u hebt aangevraagd in de scope parameter goed te keuren. Als u een statische waarde (/.default) hebt gebruikt, werkt deze als het eindpunt voor beheerderstoestemming van v1.0 en vraagt u toestemming aan voor alle bereiken die zijn gevonden in de vereiste machtigingen (zowel gebruiker als app). Als u app-machtigingen wilt aanvragen, moet u de /.default waarde gebruiken. Als u niet wilt dat beheerders een bepaalde machtiging zien in het scherm voor beheerderstoestemming, kunt u /.defaulthet beste de machtiging niet in de sectie vereiste machtigingen plaatsen. In plaats daarvan kunt u dynamische toestemming gebruiken om de machtigingen toe te voegen die u tijdens runtime in het toestemmingsscherm wilt hebben, in plaats van te gebruiken /.default.

Succesvolle respons

Als de beheerder de machtigingen voor uw app goedkeurt, ziet het geslaagde antwoord er als volgt uit:

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
Kenmerk Beschrijving
tenant De directory-tenant die uw applicatie de machtigingen die het heeft aangevraagd heeft verleend, in GUID-formaat.
state Een waarde die is opgenomen in de aanvraag die ook wordt geretourneerd in het tokenantwoord. Het kan een tekenreeks zijn van elke door u gewenste inhoud. De status wordt gebruikt om informatie over de status van de gebruiker in de app te coderen voordat de verificatieaanvraag is opgetreden, zoals de pagina of weergave waarop ze zich bevonden.
scope De set machtigingen waartoe toegang is verleend voor de toepassing.
admin_consent Wordt ingesteld op True.

Waarschuwing

Gebruik nooit de tenant-id-waarde van de tenant parameter om gebruikers te verifiëren of te autoriseren. De tenant-id-waarde kan worden bijgewerkt en verzonden door slechte actoren om een reactie op uw app te imiteren. Dit kan ertoe leiden dat uw toepassing wordt blootgesteld aan beveiligingsincidenten.

Foutreactie

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

Als u toevoegt aan de parameters die in een geslaagd antwoord worden gezien, worden de foutparameters hieronder weergegeven.

Kenmerk Beschrijving
error Een foutcodereeks die kan worden gebruikt voor het classificeren van typen fouten die optreden en die kan worden gebruikt om op fouten te reageren.
error_description Een specifiek foutbericht waarmee een ontwikkelaar de hoofdoorzaak van een fout kan identificeren.
state Een waarde die is opgenomen in de aanvraag die ook wordt geretourneerd in het tokenantwoord. Het kan een tekenreeks zijn van elke door u gewenste inhoud. De status wordt gebruikt om informatie over de status van de gebruiker in de app te coderen voordat de verificatieaanvraag is opgetreden, zoals de pagina of weergave waarop ze zich bevonden.
admin_consent Wordt ingesteld om True aan te geven dat dit antwoord is opgetreden in een stroom voor beheerderstoestemming.

Volgende stappen