Beheerderstoestemming op het Microsoft Identity-platform
Voor sommige machtigingen is toestemming van een beheerder vereist voordat ze binnen een tenant kunnen worden verleend. U kunt ook het eindpunt voor beheerderstoestemming gebruiken om machtigingen te verlenen aan een hele tenant.
Aanbevolen: de gebruiker aanmelden bij uw app
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 toegewezen stroom voor verbinding maken. 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 eindpunt van de Microsoft Identity Platform-beheerderstoestemming.
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
Parameter | Voorwaarde | Beschrijving |
---|---|---|
tenant |
Vereist | De directorytenant waaruit u toestemming wilt aanvragen. Kan worden opgegeven in GUID of beschrijvende naamnotatie OF algemeen waarnaar wordt verwezen organizations , zoals in het voorbeeld wordt weergegeven. Gebruik 'common' niet, aangezien persoonlijke accounts geen toestemming van de beheerder kunnen geven, 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 |
Vereist | De toepassings-id (client) die door het Microsoft Entra-beheercentrum wordt App-registraties ervaring toegewezen aan uw app. |
redirect_uri |
Vereist | De URI voor omleiding waar u wilt dat het antwoord wordt verzonden voor uw app. 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 |
Vereist | Hiermee definieert u de set machtigingen die door de toepassing worden aangevraagd. Bereiken kunnen statische (met gebruik van /.default ) of dynamische bereiken zijn. Dit kan de OIDC-bereiken (openid , profile of email ) omvatten. |
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 alle machtigingen goed te keuren die u in de parameter scope
hebt aangevraagd. Als u een statische waarde (/.default
) hebt gebruikt, werkt deze als het eindpunt voor v1.0-beheerderstoestemming en vraagt u toestemming aan voor alle bereiken die zijn gevonden in de vereiste machtigingen voor de app (gebruiker en app). Als u app-machtigingen wilt aanvragen, moet u de /.default
waarde gebruiken. Als u niet wilt dat beheerders een bepaalde machtiging constant zien in het scherm voor beheerderstoestemming bij gebruik van /.default
, is het raadzaam om de machtiging niet in de sectie vereiste machtigingen te 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 /.default
te gebruiken.
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
Parameter | Description |
---|---|
tenant |
De directorytenant die uw toepassing de benodigde machtigingen heeft toegekend, in GUID-indeling. |
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 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 |
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.
Foutrespons
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
Toevoegen aan de parameters wordt als geslaagd antwoord, foutparameters worden weergegeven zoals hieronder.
Parameter | Description |
---|---|
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 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. |
admin_consent |
Wordt ingesteld op True om aan te geven dat dit antwoord is opgetreden in een stroom voor beheerderstoestemming. |
Volgende stappen
- Raadpleeg Een app converteren naar meerdere tenants
- Meer informatie over ondersteunen van toestemming in de OAuth 2.0-protocollaag tijdens de stroom voor het verlenen van autorisatiecode.
- Meer informatie over hoe een toepassing met meerdere tenants het toestemmingsframework kan gebruiken voor het implementeren van gebruikers- en beheerderstoestemming, met ondersteuning voor geavanceerdere toepassingspatronen met meerdere lagen.
- Informatie over toestemmingservaringen voor Microsoft Entra-toepassingen