Microsoft Identity Platform en OpenID Connect-protocol

OpenID Connect (OIDC) is een verificatieprotocol op basis van OAuth 2.0 waarmee u een gebruiker veilig kunt aanmelden bij een toepassing. Wanneer u de implementatie van het Microsoft Identity Platform van OpenID Connect gebruikt, kunt u aanmeldings- en API-toegang toevoegen aan uw apps. In dit artikel wordt beschreven hoe u dit onafhankelijk van taal kunt doen en beschrijft hoe u HTTP-berichten verzendt en ontvangt zonder opensource-bibliotheken van Microsoft te gebruiken.

OpenID Connect breidt het OAuth 2.0-autorisatieprotocol uit voor gebruik als verificatieprotocol , zodat u eenmalige aanmelding kunt uitvoeren met behulp van OAuth. OpenID Connect introduceert het concept van een id-token, een beveiligingstoken waarmee de client de identiteit van de gebruiker kan verifiëren. Het id-token krijgt ook basisprofielgegevens over de gebruiker. Het introduceert ook het UserInfo-eindpunt, een API die informatie over de gebruiker retourneert.

Tip

Try running this request in Postman
Probeer deze aanvraag uit te voeren en meer in Postman- vergeet niet om tokens en id's te vervangen.

Protocoldiagram: Aanmelden

De meest eenvoudige aanmeldingsstroom bevat de stappen in het volgende diagram. Elke stap wordt uitgebreid beschreven in dit artikel.

OpenID Connect protocol: Sign-in

Het openID Connect-metagegevensdocument ophalen

OpenID Connect beschrijft een metagegevensdocument (RFC) dat de meeste informatie bevat die vereist is voor een app om zich aan te melden. Dit omvat informatie zoals de URL's die moeten worden gebruikt en de locatie van de openbare ondertekeningssleutels van de service. U kunt dit document vinden door het pad naar het detectiedocument toe te voegen aan de url van de instantie:

Detectiedocumentpad: /.well-known/openid-configuration

Autoriteit: https://login.microsoftonline.com/{tenant}/v2.0

Het {tenant} kan een van de vier waarden aannemen:

Waarde Beschrijving
common Gebruikers met zowel een persoonlijk Microsoft-account als een werk- of schoolaccount van Azure AD kunnen zich aanmelden bij de toepassing.
organizations Alleen gebruikers met werk- of schoolaccounts van Azure AD kunnen zich aanmelden bij de toepassing.
consumers Alleen gebruikers met een persoonlijk Microsoft-account kunnen zich aanmelden bij de toepassing.
8eaef023-2b34-4da1-9baa-8bc8c9d6a490 of contoso.onmicrosoft.com Alleen gebruikers van een specifieke Azure AD-tenant (of ze lid zijn van de directory met een werk- of schoolaccount, of ze zijn gasten in de directory met een persoonlijk Microsoft-account) kunnen zich aanmelden bij de toepassing. De beschrijvende domeinnaam van de Azure AD-tenant of de GUID-id van de tenant kan worden gebruikt. U kunt ook de consumententenant gebruiken, 9188040d-6c67-4c5b-b112-36a304b66dadin plaats van de consumers tenant.

De autoriteit verschilt tussen nationale clouds, bijvoorbeeld https://login.microsoftonline.de voor het Azure AD Duitsland-exemplaar. Als u de openbare cloud niet gebruikt, controleert u de nationale cloudeindpunten om de juiste cloud voor u te vinden. Zorg ervoor dat de tenant aanwezig is in /v2.0/ uw aanvraag, zodat u de v2.0-versie van het eindpunt kunt gebruiken.

Tip

Probeer het nu! Klik https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration hier om de common configuratie weer te geven.

Voorbeeldaanvraag

Gebruik het volgende om het eindpunt userinfo aan te roepen voor de algemene instantie in de openbare cloud:

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

Voorbeeldantwoord

De metagegevens zijn een eenvoudig JSON-document (JavaScript Object Notation). Zie het volgende codefragment voor een voorbeeld. De inhoud wordt volledig beschreven in de OpenID Connect-specificatie.

{
  "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"
  ],
  ...

}

Als uw app aangepaste ondertekeningssleutels heeft als gevolg van het gebruik van de functie voor claimtoewijzing , moet u een appid queryparameter met de app-id toevoegen om een jwks_uri verwijzing te krijgen naar de informatie over de ondertekeningssleutel van uw app. Bijvoorbeeld: https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e bevat een jwks_uri van https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e.

Normaal gesproken gebruikt u dit metagegevensdocument om een OpenID Connect-bibliotheek of SDK te configureren; de bibliotheek gebruikt de metagegevens om het werk uit te voeren. Als u echter geen vooraf gebouwde OpenID Connect-bibliotheek gebruikt, kunt u de stappen in de rest van dit artikel volgen om u aan te melden bij een web-app met behulp van het Microsoft Identity Platform.

De aanmeldingsaanvraag verzenden

Wanneer uw web-app de gebruiker moet verifiëren, kan deze de gebruiker naar het /authorize eindpunt leiden. Deze aanvraag is vergelijkbaar met het eerste deel van de OAuth 2.0-autorisatiecodestroom, met deze belangrijke verschillen:

  • De aanvraag moet het openid bereik in de scope parameter bevatten.
  • De response_type parameter moet bevatten id_token.
  • De aanvraag moet de nonce parameter bevatten.

Belangrijk

Als u een id-token wilt aanvragen vanaf het /authorization-eindpunt, moet de app-registratie in de registratieportal de impliciete toekenning van id_tokens ingeschakeld op het tabblad Verificatie (waarmee de oauth2AllowIdTokenImplicitFlow vlag in het toepassingsmanifest wordt ingesteld op true). Als deze niet is ingeschakeld, wordt er een unsupported_response fout geretourneerd: 'De opgegeven waarde voor de invoerparameter 'response_type' is niet toegestaan voor deze client. Verwachte waarde is 'code'.

Bijvoorbeeld:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&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, organizationsen consumerstenant-id's. Zie de basisbeginselen van protocollen voor meer informatie. Kritiek: voor gastscenario's waarin u een gebruiker van de ene tenant in een andere tenant ondertekent, moet u de tenant-id opgeven om deze correct aan te melden bij de resourcetenant.
client_id Vereist De toepassings-id (client) die de Azure-portal : app-registraties die zijn toegewezen aan uw app.
response_type Vereist Moet zijn opgenomen id_token voor aanmelding bij OpenID Connect. Het kan ook andere response_type waarden bevatten, zoals code.
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 er een die willekeurig is geregistreerd redirect_uri om de gebruiker terug te sturen.
scope Vereist Een door spaties gescheiden lijst met bereiken. Voor OpenID Connect moet dit het bereik openidbevatten, dat wordt omgezet in de aanmeldingsmachtiging in de gebruikersinterface van toestemming. U kunt ook andere bereiken opnemen in deze aanvraag voor het aanvragen van toestemming.
nonce Vereist Een waarde die is opgenomen in de aanvraag, gegenereerd door de app, die wordt opgenomen in de resulterende id_token waarde als een claim. De app kan deze waarde verifiëren om replay-aanvallen voor tokens te beperken. De waarde is doorgaans een willekeurige, unieke tekenreeks die kan worden gebruikt om de oorsprong van de aanvraag te identificeren.
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_postom 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 gewenste inhoud. Een willekeurig gegenereerde unieke waarde wordt doorgaans gebruikt om vervalsingsaanvallen op meerdere sites te voorkomen. De status wordt ook 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 de gebruiker was ingeschakeld.
prompt Optioneel Geeft het type gebruikersinteractie aan dat vereist is. De enige geldige waarden op dit moment zijn login, none, consenten select_account. De prompt=login claim dwingt de gebruiker om hun referenties op die aanvraag in te voeren, waardoor eenmalige aanmelding wordt genegeerd. 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 de gebruiker helemaal geen interactieve prompt wordt weergegeven. Als de aanvraag niet op de achtergrond kan worden voltooid via eenmalige aanmelding (omdat er geen gebruiker is aangemeld, is de hinted gebruiker niet aangemeld of zijn er meerdere gebruikers aangemeld en wordt er geen hint gegeven), retourneert het Microsoft Identity Platform een fout. 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 u de gebruiker een accountkiezer, waarbij eenmalige aanmelding op select_account de achtergrond wordt genegeerd, maar de gebruiker kan kiezen met welk account ze zich willen aanmelden, zonder dat hiervoor referenties hoeven te worden ingevoerd. U kunt en select_account niet samen gebruikenlogin_hint.
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 opnieuw verificatie, 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 directory. Hierdoor wordt het detectieproces op basis van e-mail dat de gebruiker doorloopt op de aanmeldingspagina overgeslagen voor een iets gestroomlijndere gebruikerservaring. Voor tenants die zijn gefedereerd via een on-premises directory zoals AD FS, resulteert dit vaak in een naadloze aanmelding vanwege de bestaande aanmeldingssessie.

Op dit moment wordt de gebruiker gevraagd hun referenties in te voeren en de verificatie te voltooien. Het Microsoft Identity Platform controleert of de gebruiker toestemming heeft gegeven voor de machtigingen die zijn aangegeven in de scope queryparameter. 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.

Nadat de gebruiker toestemming heeft gegeven en geverifieerd, retourneert het Microsoft Identity Platform een reactie op uw app op de aangegeven omleidings-URI met behulp van de methode die is opgegeven in de response_mode parameter.

Geslaagd antwoord

Een geslaagd antwoord wanneer u dit gebruikt response_mode=form_post , ziet er als volgt uit:

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

id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Parameter Beschrijving
id_token Het id-token dat door de app is aangevraagd. U kunt de id_token parameter gebruiken om de identiteit van de gebruiker te verifiëren en een sessie met de gebruiker te starten. Zie de verwijzing voor meer informatie over id-tokens en hun id_tokensinhoud.
state Als een state parameter is opgenomen in de aanvraag, wordt dezelfde waarde weergegeven in het antwoord. De app moet controleren of de statuswaarden in de aanvraag en het antwoord identiek zijn.

Foutreactie

Foutreacties kunnen ook naar de omleidings-URI worden verzonden, zodat de app deze kan verwerken. Een foutbericht ziet er als volgt uit:

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 Beschrijving
error Een foutcodetekenreeks die u kunt gebruiken om typen fouten te classificeren die optreden en om te 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 foutcodes beschreven die kunnen worden geretourneerd in de error parameter van het foutbericht:

Foutcode Beschrijving Clientactie
invalid_request Protocolfout, zoals een ontbrekende, vereiste parameter. Corrireer de aanvraag en verzend deze opnieuw. Dit is een ontwikkelingsfout die doorgaans wordt opgevangen tijdens de eerste test.
unauthorized_client De clienttoepassing kan geen autorisatiecode aanvragen. Dit gebeurt meestal wanneer de clienttoepassing niet is geregistreerd in Azure AD of niet wordt toegevoegd aan de Azure AD-tenant van de gebruiker. De toepassing kan de gebruiker vragen om de toepassing te installeren en toe te voegen aan Azure AD.
access_denied De resource-eigenaar heeft toestemming geweigerd. De clienttoepassing kan de gebruiker waarschuwen dat deze niet kan doorgaan, tenzij de gebruiker toestemming geeft.
unsupported_response_type De autorisatieserver biedt geen ondersteuning voor het antwoordtype in de aanvraag. Corrireer de aanvraag en verzend deze opnieuw. Dit is een ontwikkelingsfout die doorgaans wordt opgevangen tijdens de eerste test.
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 het antwoord is vertraagd vanwege een tijdelijke fout.
temporarily_unavailable De server is tijdelijk te druk om de aanvraag af te handelen. Probeer de aanvraag opnieuw. De clienttoepassing kan de gebruiker uitleggen dat het antwoord is vertraagd vanwege een tijdelijke voorwaarde.
invalid_resource De doelresource is ongeldig omdat deze niet bestaat, Azure AD kan deze niet vinden of niet juist is geconfigureerd. Dit geeft aan dat de resource, indien aanwezig, niet is geconfigureerd in de tenant. De toepassing kan de gebruiker vragen om instructies voor het installeren van de toepassing en deze toevoegen aan Azure AD.

Het id-token valideren

Het ontvangen van een id_token is niet altijd voldoende om de gebruiker te verifiëren; Mogelijk moet u ook de handtekening van de id_token valideren en de claims in het token controleren volgens de vereisten van uw app. Net als alle OIDC-platforms maakt het Microsoft Identity Platform gebruik van JSON-webtokens (JWT's) en cryptografie van openbare sleutels om id-tokens te ondertekenen en te controleren of ze geldig zijn.

Niet alle apps profiteren van het verifiëren van het id-token- systeemeigen apps en apps met één pagina, bijvoorbeeld zelden van het valideren van het id-token. Iemand met fysieke toegang tot het apparaat (of browser) kan de validatie op veel manieren omzeilen: van het bewerken van het webverkeer naar het apparaat om valse tokens en sleutels te bieden om eenvoudigweg fouten in de toepassing op te sporen om de validatielogica over te slaan. Aan de andere kant moeten web-apps en API's met behulp van een id-token voor autorisatie het id-token zorgvuldig valideren omdat ze de toegang tot gegevens beperken.

Zodra u de handtekening van de id_token hebt gevalideerd, zijn er enkele claims die u moet controleren. Zie de id_token verwijzing voor meer informatie, waaronder Tokens valideren en belangrijke informatie over rollover voor ondertekeningssleutels. U wordt aangeraden een bibliotheek te gebruiken voor het parseren en valideren van tokens. Er is ten minste één bibliotheek beschikbaar voor de meeste talen en platforms.

Mogelijk wilt u ook aanvullende claims valideren, afhankelijk van uw scenario. Enkele veelvoorkomende validaties zijn:

  • 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 de id_token hebt gevalideerd, kunt u een sessie met de gebruiker starten en de claims in de id_token gebruiken om informatie te verkrijgen over de gebruiker in uw app. Deze informatie kan worden gebruikt voor weergave, records, persoonlijke instellingen, enzovoort.

Protocoldiagram: Het verkrijgen van toegangstokens

Veel web-apps moeten zich niet alleen aanmelden bij de gebruiker, maar ook voor toegang tot een webservice namens de gebruiker met behulp van OAuth. In dit scenario wordt OpenID Connect gecombineerd voor gebruikersverificatie terwijl u tegelijkertijd een autorisatiecode krijgt die u kunt gebruiken om toegangstokens op te halen als u de OAuth-autorisatiecodestroom gebruikt.

De volledige aanmeldings- en tokenverwervingsstroom van OpenID Connect ziet er ongeveer als volgt uit. We beschrijven elke stap in detail in de volgende secties van het artikel.

OpenID Connect protocol: Token acquisition

Een toegangstoken ophalen om UserInfo aan te roepen

Wijzig de aanmeldingsaanvraag om een token te verkrijgen voor het OIDC UserInfo-eindpunt:

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e        // Your registered Application ID
&response_type=id_token%20token                       // this will return both an id_token and an access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F       // Your registered redirect URI, URL encoded
&response_mode=form_post                              // 'form_post' or 'fragment'
&scope=openid+profile+email                           // `openid` is required.  `profile` and `email` provide additional information in the UserInfo endpoint the same way they do in an ID token. 
&state=12345                                          // Any value, provided by your app
&nonce=678910                                         // Any value, provided by your app

U kunt ook de autorisatiecodestroom, de apparaatcodestroom of een vernieuwingstoken gebruiken om response_type=token een token voor uw app op te halen.

Tip

Klik op de volgende koppeling om deze aanvraag uit te voeren. Nadat u zich hebt aangemeld, wordt uw browser omgeleid naar https://localhost/myapp/, met een id-token en een token in de adresbalk. Houd er rekening mee dat deze aanvraag alleen wordt gebruikt response_mode=fragment voor demonstratiedoeleinden. Voor een web-app wordt u aangeraden waar mogelijk extra beveiliging te gebruiken form_post . https://login.microsoftonline.com/common/oauth2/v2.0/authorize...

Geslaagd tokenantwoord

Een geslaagd antwoord van het gebruik response_mode=form_post ziet er als volgt uit:

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 Beschrijving
access_token Het token dat wordt gebruikt om het UserInfo-eindpunt aan te roepen.
token_type Altijd 'Bearer'
expires_in Hoe lang totdat het toegangstoken verloopt, in seconden.
scope De machtigingen die zijn verleend voor het toegangstoken. Aangezien het UserInfo-eindpunt wordt gehost op MS Graph, zijn er mogelijk hier extra Graph-bereiken (bijvoorbeeld user.read) als ze eerder aan de app zijn verleend. Dat komt doordat een token voor een bepaalde resource altijd elke machtiging bevat die momenteel aan de client is verleend.
id_token Het id-token dat door de app is aangevraagd. U kunt het id-token gebruiken om de identiteit van de gebruiker te verifiëren en een sessie met de gebruiker te starten. Meer informatie over id-tokens en hun inhoud vindt u in de id_tokens verwijzing.
state Als een statusparameter is opgenomen in de aanvraag, wordt dezelfde waarde weergegeven in het antwoord. 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 en leerfunctie is, 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 die u beheert.

Foutreactie

Foutreacties kunnen ook naar de omleidings-URI worden verzonden, zodat de app deze op de juiste manier kan verwerken. Een foutbericht ziet er als volgt uit:

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 Beschrijving
error Een foutcodetekenreeks die u kunt gebruiken om typen fouten te classificeren die optreden en om te 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 mogelijke foutcodes en 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 exact valideren zoals beschreven. Volg de stappen die worden beschreven in de documentatie van de OAuth-codestroom om toegangstokens op te halen.

Het UserInfo-eindpunt aanroepen

Raadpleeg de documentatie van UserInfo om te kijken hoe u het UserInfo-eindpunt aanroept met dit token.

Een afmeldingsaanvraag verzenden

Wanneer u de gebruiker wilt afmelden bij uw app, is het niet voldoende om de cookies van uw app te wissen of de sessie van de gebruiker op een andere manier te beëindigen. U moet de gebruiker ook omleiden naar het Microsoft Identity Platform om u af te melden. Als u dit niet doet, worden de gebruikers opnieuw geverifieerd bij uw app zonder hun referenties opnieuw in te voeren, omdat ze een geldige sessie voor eenmalige aanmelding hebben met het Microsoft Identity Platform.

U kunt de gebruiker omleiden naar de end_session_endpoint (die zowel HTTP GET- als POST-aanvragen ondersteunt) die worden vermeld in het openID Connect-metagegevensdocument:

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Parameter Voorwaarde Description
post_logout_redirect_uri Aanbevolen De URL waarnaar de gebruiker wordt omgeleid na het afmelden. Als de parameter niet is opgenomen, wordt de gebruiker een algemeen bericht weergegeven 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. Als u wilt gebruiken logout_hint, schakelt u de login_hintoptionele claim in uw clienttoepassing in en gebruikt u de waarde van de login_hint optionele claim als parameter logout_hint . Gebruik geen UPN's of telefoonnummers als de waarde van de logout_hint parameter.

Eenmalige afmelding

Wanneer u de gebruiker omleidt naar de end_session_endpointgebruiker, wist het Microsoft Identity Platform de sessie van de gebruiker vanuit de browser. De gebruiker kan echter nog steeds worden aangemeld bij andere toepassingen die Gebruikmaken van Microsoft-accounts voor verificatie. Als u wilt dat deze toepassingen de gebruiker tegelijkertijd afmelden, verzendt het Microsoft Identity Platform 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 antwoord retourneert. Als u eenmalige aanmelding in uw toepassing wilt ondersteunen, moet u een LogoutUrl dergelijke toepassing implementeren in de code van uw toepassing. U kunt de LogoutUrl app-registratieportal instellen.

Volgende stappen