OpenID Verbinding maken op het Microsoft Identity Platform

OpenID Verbinding maken (OIDC) breidt het OAuth 2.0-autorisatieprotocol uit voor gebruik als extra verificatieprotocol. U kunt OIDC gebruiken om eenmalige aanmelding (SSO) tussen uw OAuth-toepassingen in te schakelen met behulp van een beveiligingstoken met de naam een id-token.

De volledige specificatie voor OIDC is beschikbaar op de website van de OpenID Foundation op OpenID Verbinding maken Core 1.0 specificatie.

Protocolstroom: Aanmelden

In het volgende diagram ziet u de eenvoudige OpenID-Verbinding maken aanmeldingsstroom. De stappen in de stroom worden gedetailleerder beschreven in latere secties van het artikel.

Zwembaandiagram met de aanmeldingsstroom van het OpenID-Verbinding maken-protocol.

Id-tokens inschakelen

Het id-token dat is geïntroduceerd door OpenID Verbinding maken wordt uitgegeven door de autorisatieserver, het Microsoft Identity Platform, wanneer de clienttoepassing er een aanvraag doet tijdens gebruikersverificatie. Met het id-token kan een clienttoepassing de identiteit van de gebruiker verifiëren en andere informatie (claims) over deze gebruikers ophalen.

Id-tokens worden niet standaard uitgegeven voor een toepassing die is geregistreerd bij het Microsoft Identity Platform. Id-tokens voor een toepassing worden ingeschakeld met behulp van een van de volgende methoden:

  1. Meld u aan bij het Microsoft Entra-beheercentrum.
  2. Blader naar Identiteitstoepassingen>> App-registraties>< toepassingsverificatie.>>
  3. Selecteer Een platform toevoegenonder Platformconfiguraties.
  4. Selecteer in het deelvenster dat wordt geopend het juiste platform voor uw toepassing. Selecteer bijvoorbeeld Web voor een webtoepassing.
  5. Voeg onder Omleidings-URI's de omleidings-URI van uw toepassing toe. Bijvoorbeeld: https://localhost:8080/.
  6. Schakel onder Impliciete toekenning en hybride stromen het selectievakje ID-tokens (gebruikt voor impliciete en hybride stromen) in.

Of:

  1. Selecteer Identiteitstoepassingen>> App-registraties>< toepassingsmanifest.>>
  2. Ingesteld oauth2AllowIdTokenImplicitFlow op true in het toepassingsmanifest van de app-registratie.

Als id-tokens niet zijn ingeschakeld voor uw app en er een wordt aangevraagd, retourneert het Microsoft Identity Platform een unsupported_response fout die vergelijkbaar is met:

De opgegeven waarde voor de invoerparameter 'response_type' is niet toegestaan voor deze client. Verwachte waarde is 'code'.

Het aanvragen van een id-token door een response_type van id_token op te geven wordt uitgelegd in De aanmeldingsaanvraag verzenden verderop in het artikel.

Het OpenID-configuratiedocument ophalen

OpenID-providers zoals het Microsoft Identity Platform bieden een OpenID-providerconfiguratiedocument op een openbaar toegankelijk eindpunt met de OIDC-eindpunten van de provider, ondersteunde claims en andere metagegevens. Clienttoepassingen kunnen de metagegevens gebruiken om de URL's te detecteren die moeten worden gebruikt voor verificatie en de openbare ondertekeningssleutels van de verificatieservice.

Verificatiebibliotheken zijn de meest voorkomende gebruikers van het OpenID-configuratiedocument, die ze gebruiken voor het detecteren van verificatie-URL's, de openbare ondertekeningssleutels van de provider en andere servicemetagegevens. Als een verificatiebibliotheek in uw app wordt gebruikt, hoeft u waarschijnlijk geen handcodeaanvragen naar en antwoorden van het OpenID-configuratiedocumenteindpunt te verzenden.

De URI van het OpenID-configuratiedocument van uw app zoeken

Elke app-registratie in Microsoft Entra-id is een openbaar toegankelijk eindpunt dat het OpenID-configuratiedocument dient. Als u de URI van het eindpunt van het configuratiedocument voor uw app wilt bepalen, voegt u het bekende OpenID-configuratiepad toe aan de instantie-URL van uw app-registratie.

  • Bekende pad naar configuratiedocument: /.well-known/openid-configuration
  • URL van instantie: https://login.microsoftonline.com/{tenant}/v2.0

De waarde varieert op basis van de aanmeldingsdoelgroep van {tenant} de toepassing, zoals wordt weergegeven in de volgende tabel. De INSTANTIE-URL verschilt ook per cloudexemplaren.

Weergegeven als Beschrijving
common Gebruikers met zowel een persoonlijk Microsoft-account als een werk- of schoolaccount van Microsoft Entra ID kunnen zich aanmelden bij de toepassing.
organizations Alleen gebruikers met werk- of schoolaccounts van Microsoft Entra ID kunnen zich aanmelden bij de toepassing.
consumers Alleen gebruikers met een persoonlijk Microsoft-account kunnen zich aanmelden bij de toepassing.
Directory (tenant) ID of contoso.onmicrosoft.com Alleen gebruikers van een specifieke Microsoft Entra-tenant (directoryleden met een werk- of schoolaccount of directorygasten met een persoonlijk Microsoft-account) kunnen zich aanmelden bij de toepassing.

De waarde kan de domeinnaam zijn van de Microsoft Entra-tenant of de tenant-id in GUID-indeling.

Tip

Houd er rekening mee dat bij het gebruik van de common of consumers instantie voor persoonlijke Microsoft-accounts de verbruikende resourcetoepassing moet worden geconfigureerd om dergelijke accounts te ondersteunen in overeenstemming met signInAudience.

Als u het OIDC-configuratiedocument wilt vinden in het Microsoft Entra-beheercentrum, meldt u zich aan bij het Microsoft Entra-beheercentrum en vervolgens:

  1. Blader naar Identiteitstoepassingen>> App-registraties<> toekende toepassingseindpunten.>>
  2. Zoek de URI onder OpenID Verbinding maken metagegevensdocument.

Voorbeeldaanvraag

Met de volgende aanvraag worden de metagegevens van de OpenID-configuratie opgehaald uit het openID-configuratiedocumenteindpunt van de common instantie in de openbare Azure-cloud:

GET /common/v2.0/.well-known/openid-configuration
Host: login.microsoftonline.com

Tip

Probeer het nu! Als u het OpenID-configuratiedocument voor de instantie van common een toepassing wilt zien, gaat u naar https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration.

Voorbeeldrespons

De metagegevens van de configuratie worden geretourneerd in JSON-indeling, zoals wordt weergegeven in het volgende voorbeeld (afgekapt voor beknoptheid). De metagegevens die in het JSON-antwoord worden geretourneerd, worden gedetailleerd beschreven in de Detectiespecificatie van OpenID Verbinding maken 1.0.

{
  "authorization_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize",
  "token_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token",
  "token_endpoint_auth_methods_supported": [
    "client_secret_post",
    "private_key_jwt"
  ],
  "jwks_uri": "https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys",
  "userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo",
  "subject_types_supported": [
      "pairwise"
  ],
  ...
}

De aanmeldingsaanvraag verzenden

Als u een gebruiker wilt verifiëren en een id-token wilt aanvragen voor gebruik in uw toepassing, stuurt u de gebruiker-agent naar het /autoriseren-eindpunt van het Microsoft Identity Platform. De aanvraag is vergelijkbaar met het eerste deel van de OAuth 2.0-autorisatiecodestroom , maar met deze verschillen:

  • Neem het openid bereik op in de scope parameter.
  • Geef id_token in de response_type parameter op.
  • Neem de nonce parameter op.

Voorbeeld van aanmeldingsaanvraag (regeleinden alleen opgenomen voor leesbaarheid):

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910
Parameter Voorwaarde Beschrijving
tenant Vereist U kunt de {tenant}-waarde in het pad van de aanvraag gebruiken om te bepalen wie zich kan aanmelden bij de toepassing. De toegestane waarden zijn common, organizations, consumers en tenant-id's. Zie de basisbeginselen van protocollen voor meer informatie. Belangrijk: voor gastscenario's waarbij u een gebruiker van de ene tenant overzet in een andere tenant, moet u de tenant-id opgeven om ze correct aan te melden bij de resource-tenant.
client_id Vereist De toepassings-id (client) die door het Microsoft Entra-beheercentrum wordt App-registraties ervaring toegewezen aan uw app.
response_type Vereist Moet id_token bevatten voor aanmelding bij OpenID Connect.
redirect_uri Aanbevolen De omleidings-URI van uw app, waar verificatiereacties kunnen worden verzonden en ontvangen door uw app. Deze moet exact overeenkomen met een van de omleidings-URI's die u hebt geregistreerd in de portal, behalve dat deze URL-codering moet hebben. Als het niet aanwezig is, kiest het eindpunt willekeurig een geregistreerd redirect_uri om de gebruiker terug te sturen.
scope Vereist Een door spaties gescheiden lijst van bereiken. Voor OpenID Connect moet dit het bereik openid bevatten, dat wordt omgezet in de machtiging Aanmelden in de gebruikersinterface voor toestemming. U kunt ook andere bereiken opnemen in deze aanvraag voor het aanvragen van toestemming.
nonce Vereist Een waarde die door uw app wordt gegenereerd en verzonden in de aanvraag voor een id-token. nonce Dezelfde waarde wordt opgenomen in het id-token dat door het Microsoft Identity Platform wordt geretourneerd naar uw app. Als u tokenherhalingsaanvallen wilt beperken, moet uw app controleren of de nonce waarde in het id-token dezelfde waarde is die wordt verzonden bij het aanvragen van het token. De waarde is doorgaans een unieke, willekeurige tekenreeks.
response_mode Aanbevolen Hiermee geeft u de methode op die moet worden gebruikt om de resulterende autorisatiecode terug te sturen naar uw app. Deze waarde kan form_post of fragment zijn. Voor webtoepassingen raden we u aan response_mode=form_post te gebruiken om de veiligste overdracht van tokens naar uw toepassing te garanderen.
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. Een willekeurig gegenereerde unieke waarde wordt doorgaans gebruikt om aanvallen van aanvraagvervalsing op meerdere sites te voorkomen. De status wordt ook 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 waar de gebruiker zich bevond.
prompt Optioneel Geeft het type gebruikersinteractie aan dat vereist is. De enige geldige waarden op dit moment zijn login, none, consent en select_account. De prompt=login claim dwingt de gebruiker om zijn referenties op die aanvraag in te voeren, waardoor eenmalige aanmelding wordt ontkend. De prompt=none parameter is het tegenovergestelde en moet worden gekoppeld aan een login_hint om aan te geven welke gebruiker moet worden aangemeld. Deze parameters zorgen ervoor dat er geen enkele interactieve prompt wordt weergegeven voor de gebruiker. Als de aanvraag niet op de achtergrond kan worden voltooid via eenmalige aanmelding, retourneert het Microsoft Identity Platform een fout. Oorzaken zijn onder andere geen aangemelde gebruiker, de hinted gebruiker is niet aangemeld of meerdere gebruikers zijn aangemeld, maar er is geen hint opgegeven. De prompt=consent claim activeert het dialoogvenster OAuth-toestemming nadat de gebruiker zich heeft aangemeld. In het dialoogvenster wordt de gebruiker gevraagd machtigingen te verlenen aan de app. Ten slotte toont select_account de gebruiker een accountkiezer, waarbij eenmalige aanmelding op de achtergrond wordt genegeerd, maar de gebruiker kan kiezen met welk account deze zich wil aanmelden, zonder dat hiervoor referenties hoeven te worden ingevoerd. U kunt zowel login_hint als select_account.
login_hint Optioneel U kunt deze parameter gebruiken om de gebruikersnaam en het e-mailadresveld van de aanmeldingspagina voor de gebruiker vooraf in te vullen, als u de gebruikersnaam van tevoren kent. Apps gebruiken deze parameter vaak tijdens herauthenticatie, nadat ze de login_hintoptionele claim al hebben geëxtraheerd uit een eerdere aanmelding.
domain_hint Optioneel Het domein van de gebruiker in een federatieve adreslijst. Hiermee wordt het detectieproces op basis van e-mail dat de gebruiker doorloopt op de aanmeldingspagina overgeslagen voor een iets meer gestroomlijnde gebruikerservaring. Voor tenants die zijn gefedereerd via een on-premises adreslijst zoals AD FS, resulteert dit vaak in een naadloze aanmelding vanwege de bestaande aanmeldingssessie.

Op dit moment wordt de gebruiker gevraagd om zijn referenties in te voeren en de verificatie te voltooien. Het Microsoft Identity Platform zorgt er ook voor dat de gebruiker toestemming heeft gegeven voor de machtigingen die zijn aangegeven in de queryparameter scope. Als de gebruiker geen toestemming heeft gegeven voor een van deze machtigingen, vraagt het Microsoft identity platform de gebruiker om toestemming te geven voor de vereiste machtigingen. U kunt meer lezen over machtigingen, toestemming en apps met meerdere tenants.

Zodra de gebruiker toestemming heeft geverifieerd en verleend, retourneert het Microsoft Identity Platform een antwoord op uw app op de aangegeven omleidings-URI met de methode die is opgegeven in de parameter response_mode.

Succesvolle respons

Een geslaagd antwoord wanneer u gebruikt response_mode=form_post , is vergelijkbaar met:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Parameter Description
id_token Het id-token dat door de app is aangevraagd. U kunt de parameter id_token gebruiken om de identiteit van de gebruiker te controleren en een sessie met de gebruiker te starten. Zie de naslaginformatie over id-token voor meer informatie over id-tokens en de bijbehorende inhoud.
state Als een state-parameter is opgenomen in de aanvraag, zou dezelfde waarde moeten verschijnen in de reactie. De app moet controleren of de statuswaarden in de aanvraag en het antwoord identiek zijn.

Foutrespons

Foutreacties kunnen ook worden verzonden naar de omleidings-URI, zodat de app deze kan verwerken, bijvoorbeeld:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Parameter Description
error Een tekenreeks met foutcodes die u kunt gebruiken om typen fouten in te delen en waarmee u kunt reageren op fouten.
error_description Een specifiek foutbericht waarmee u de hoofdoorzaak van een verificatiefout kunt identificeren.

Foutcodes voor autorisatie-eindpuntfouten

In de volgende tabel worden de verschillende foutcodes beschreven die kunnen worden geretourneerd in de error-parameter van de foutreactie:

Foutcode Beschrijving Clientactie
invalid_request Protocolfout zoals een ontbrekende vereiste parameter. Herstel de aanvraag en dien ze opnieuw in. Deze ontwikkelingsfout moet worden opgevangen tijdens het testen van toepassingen.
unauthorized_client De clienttoepassing kan geen autorisatiecode aanvragen. Deze fout kan optreden wanneer de clienttoepassing niet is geregistreerd in Microsoft Entra-id of niet wordt toegevoegd aan de Microsoft Entra-tenant van de gebruiker. De toepassing kan de gebruiker vragen om de toepassing te installeren en toe te voegen aan Microsoft Entra ID.
access_denied De resource-eigenaar heeft de toestemming geweigerd. De clienttoepassing kan de gebruiker waarschuwen dat dit niet kan doorgaan, tenzij de gebruiker toestemming geeft.
unsupported_response_type De autorisatieserver biedt geen ondersteuning voor het antwoordtype in de aanvraag. Herstel de aanvraag en dien ze opnieuw in. Deze ontwikkelingsfout moet worden opgevangen tijdens het testen van toepassingen.
server_error Er is een onverwachte fout opgetreden op de server. Probeer de aanvraag opnieuw. Deze fouten kunnen worden veroorzaakt door tijdelijke voorwaarden. De clienttoepassing kan de gebruiker uitleggen dat de reactie is vertraagd vanwege een tijdelijke fout.
temporarily_unavailable De server is tijdelijk te druk om de aanvraag te verwerken. Probeer de aanvraag opnieuw. De clienttoepassing kan de gebruiker uitleggen dat de reactie is vertraagd vanwege een tijdelijke toestand.
invalid_resource De doelresource is ongeldig omdat deze niet bestaat, microsoft Entra-id kan deze niet vinden of onjuist is geconfigureerd. Deze fout geeft aan dat de resource, als deze bestaat, niet is geconfigureerd in de tenant. De toepassing kan de gebruiker vragen om instructies voor het installeren van de toepassing en deze toe te voegen aan Microsoft Entra ID.

De id-token valideren

Het ontvangen van een id-token in uw app is mogelijk niet altijd voldoende om de gebruiker volledig te verifiëren. Mogelijk moet u ook de handtekening van het id-token valideren en de claims controleren volgens de vereisten van uw app. Net als bij alle OpenID-providers zijn de id-tokens van het Microsoft Identity Platform JSON-webtokens (JWT's) ondertekend met behulp van cryptografie van openbare sleutels.

Web-apps en web-API's die gebruikmaken van id-tokens voor autorisatie, moeten deze valideren omdat dergelijke toepassingen toegang krijgen tot gegevens. Andere typen toepassingen profiteren mogelijk niet van id-tokenvalidatie. Systeemeigen apps en APPS met één pagina (SPA's), profiteren bijvoorbeeld zelden van id-tokenvalidatie omdat elke entiteit met fysieke toegang tot het apparaat of de browser de validatie mogelijk kan omzeilen.

Twee voorbeelden van tokenvalidatie-bypass zijn:

  • Valse tokens of sleutels verstrekken door netwerkverkeer naar het apparaat te wijzigen
  • Foutopsporing van de toepassing en stap over de validatielogica tijdens de uitvoering van het programma.

Als u id-tokens in uw toepassing valideert, raden we u aan dit niet handmatig te doen. Gebruik in plaats daarvan een tokenvalidatiebibliotheek om tokens te parseren en te valideren. Tokenvalidatiebibliotheken zijn beschikbaar voor de meeste ontwikkeltalen, frameworks en platforms.

Wat moet u valideren in een id-token

Naast het valideren van de handtekening van het id-token, moet u verschillende claims valideren zoals beschreven in Het valideren van een id-token. Zie ook Belangrijke informatie over ondertekeningssleutel-rollover.

Verschillende andere validaties zijn gebruikelijk en variëren per toepassingsscenario, waaronder:

  • Ervoor zorgen dat de gebruiker/organisatie zich heeft geregistreerd voor de app.
  • Ervoor zorgen dat de gebruiker over de juiste autorisatie/bevoegdheden beschikt
  • Ervoor zorgen dat er een bepaalde verificatiesterkte is opgetreden, zoals meervoudige verificatie.

Zodra u het id-token hebt gevalideerd, kunt u een sessie met de gebruiker starten en de informatie in de claims van het token gebruiken voor app-personalisatie, weergave of voor het opslaan van hun gegevens.

Protocoldiagram: het verkrijgen van toegangstokens

Veel toepassingen hoeven zich niet alleen aan te melden bij een gebruiker, maar ook toegang te krijgen tot een beveiligde resource, zoals een web-API namens de gebruiker. In dit scenario worden OpenID-Verbinding maken gecombineerd om een id-token op te halen voor verificatie van de gebruiker en OAuth 2.0 om een toegangstoken voor een beveiligde resource op te halen.

De volledige OpenID-Verbinding maken aanmeldings- en tokenovernamestroom ziet er ongeveer als volgt uit:

OpenID Connect-protocol: tokenverwerving

Een toegangstoken ophalen voor het eindpunt UserInfo

Naast het id-token wordt de gegevens van de geverifieerde gebruiker ook beschikbaar gesteld op het OIDC UserInfo-eindpunt.

Als u een toegangstoken voor het eindpunt OIDC UserInfo wilt ophalen, wijzigt u de aanmeldingsaanvraag, zoals hier wordt beschreven:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444        // Your app registration's Application (client) ID
&response_type=id_token%20token                       // Requests both an ID token and access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F       // Your application's redirect URI (URL-encoded)
&response_mode=form_post                              // 'form_post' or 'fragment'
&scope=openid+profile+email                           // 'openid' is required; 'profile' and 'email' provide information in the UserInfo endpoint as they do in an ID token. 
&state=12345                                          // Any value - provided by your app
&nonce=678910                                         // Any value - provided by your app

U kunt de autorisatiecodestroom, de apparaatcodestroom of een vernieuwingstoken gebruiken in plaats van response_type=token een toegangstoken voor uw app op te halen.

Geslaagd tokenantwoord

Een geslaagd antwoord van het gebruik van response_mode=form_post:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
 access_token=eyJ0eXAiOiJKV1QiLCJub25jZSI6I....
 &token_type=Bearer
 &expires_in=3598
 &scope=email+openid+profile
 &id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI....
 &state=12345

Antwoordparameters betekenen hetzelfde, ongeacht de stroom die wordt gebruikt om ze te verkrijgen.

Parameter Description
access_token Het token dat wordt gebruikt om het UserInfo-eindpunt aan te roepen.
token_type Altijd 'Bearer'
expires_in De tijd tot het verlopen van het toegangstoken, in seconden.
scope De machtigingen die zijn verleend voor het toegangstoken. Omdat het eindpunt UserInfo wordt gehost in Microsoft Graph, is het mogelijk scope om anderen te bevatten die eerder aan de toepassing zijn verleend (bijvoorbeeld User.Read).
id_token Het id-token dat door de app is aangevraagd. U kunt de id-token gebruiken om de identiteit van de gebruiker te controleren en een sessie met de gebruiker te starten. Meer informatie over id-tokens en de bijbehorende inhoud vindt u in de naslaginformatie over id-tokens.
state Als een statusparameter is opgenomen in de aanvraag, wordt dezelfde waarde weergegeven in de reactie. De app moet controleren of de statuswaarden in de aanvraag en het antwoord identiek zijn.

Waarschuwing

Probeer geen tokens te valideren of te lezen voor een API waarvan u geen eigenaar bent, inclusief de tokens in dit voorbeeld, in uw code. Tokens voor Microsoft-services kunnen een speciale indeling gebruiken die niet wordt gevalideerd als een JWT, en kunnen ook worden versleuteld voor consumentengebruikers (Microsoft-account). Hoewel het lezen van tokens een handig hulpprogramma voor foutopsporing is en een leerfunctie heeft, hoeft u hier geen afhankelijkheden van te maken in uw code of uit te gaan van specifieke informatie over tokens die niet voor een API zijn die u beheert.

Foutrespons

Foutreacties kunnen ook worden verzonden naar de omleidings-URI, zodat de app deze op de juiste manier kan verwerken:

POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

error=access_denied&error_description=the+user+canceled+the+authentication
Parameter Description
error Een tekenreeks met foutcodes die u kunt gebruiken om typen fouten in te delen en waarmee u kunt reageren op fouten.
error_description Een specifiek foutbericht waarmee u de hoofdoorzaak van een verificatiefout kunt identificeren.

Zie Foutcodes voor autorisatie-eindpuntfouten voor een beschrijving van de mogelijke foutcodes en de aanbevolen clientreacties.

Wanneer u een autorisatiecode en een id-token hebt, kunt u de gebruiker aanmelden en namens hen toegangstokens ophalen. Als u de gebruiker wilt aanmelden, moet u het id-token valideren zoals beschreven in de validatietokens. Als u toegangstokens wilt ophalen, volgt u de stappen die worden beschreven in de OAuth-codestroomdocumentatie.

Het eindpunt UserInfo aanroepen

Raadpleeg de documentatie over UserInfo om na te gaan hoe u het UserInfo-eindpunt aanroept met dit token.

Een afmeldingsaanvraag verzenden

Als u een gebruiker wilt afmelden, moet u beide bewerkingen uitvoeren:

  • De gebruikersagent van de gebruiker omleiden naar de afmeldings-URI van het Microsoft Identity Platform
  • Wis de cookies van uw app of beëindig de sessie van de gebruiker in uw toepassing.

Als u geen van beide bewerkingen uitvoert, blijft de gebruiker mogelijk geverifieerd en wordt de gebruiker niet gevraagd zich aan te melden wanneer deze de volgende keer uw app gebruikt.

De gebruikersagent omleiden naar de end_session_endpoint zoals weergegeven in het OpenID Verbinding maken configuratiedocument. De end_session_endpoint ondersteuning biedt ondersteuning voor ZOWEL HTTP GET- als POST-aanvragen.

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Parameter Voorwaarde Beschrijving
post_logout_redirect_uri Aanbevolen De URL waarnaar de gebruiker wordt omgeleid na het afmelden. Als de parameter niet is opgenomen, ziet de gebruiker een algemeen bericht dat wordt gegenereerd door het Microsoft identity platform. Deze URL moet overeenkomen met een van de omleidings-URI's die zijn geregistreerd voor uw toepassing in de portal voor app-registratie.
logout_hint Optioneel Hiermee kunt u zich afmelden zonder dat de gebruiker wordt gevraagd een account te selecteren. Om logout_hint te gebruiken, schakelt u de login_hintoptionele claim in uw clienttoepassing in en gebruikt u de waarde van de login_hint optionele claim als de logout_hint-parameter. Gebruik geen UPN's of telefoonnummers als de waarde van de logout_hint parameter.

Notitie

Na een geslaagde afmelding worden de actieve sessies ingesteld op inactief. Als er een geldig primair vernieuwingstoken (PRT) bestaat voor de afgemelde gebruiker en er een nieuwe aanmelding wordt uitgevoerd, wordt eenmalige aanmelding onderbroken en ziet de gebruiker een prompt met een accountkiezer. Als de geselecteerde optie het verbonden account is dat verwijst naar de PULLT, wordt de aanmelding automatisch voortgezet zonder dat u nieuwe referenties hoeft in te voegen.

Eenmalige afmelding

Wanneer u de gebruiker omleidt naar de end_session_endpointgebruiker, wist het Microsoft identity platform de sessie van de gebruiker uit de browser. De gebruiker kan echter nog steeds zijn aangemeld bij andere toepassingen die Microsoft-accounts gebruiken voor verificatie. Als u wilt dat de gebruiker tegelijk van al deze toepassingen wordt afgemeld, stuurt Azure AD een HTTP GET-aanvraag naar de geregistreerde LogoutUrl van alle toepassingen waarmee de gebruiker momenteel is aangemeld. Toepassingen moeten reageren op deze aanvraag door een sessie te wissen die de gebruiker identificeert en een 200-reactie retourneert. Als u eenmalige afmelding in uw toepassing wilt ondersteunen, moet u een dergelijke LogoutUrl implementeren in de code van uw toepassing. U kunt de LogoutUrl instellen vanaf de app-registratieportal.

Volgende stappen