OpenID Connect op het Microsoft Identity Platform
OpenID Connect (OIDC) breidt het OAuth 2.0-autorisatieprotocol uit voor gebruik als een ander 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 Connect Core 1.0 specificatie.
Protocolstroom: Aanmelden
In het volgende diagram ziet u de eenvoudige aanmeldingsstroom van OpenID Connect. De stappen in de stroom worden gedetailleerder beschreven in latere secties van het artikel.
Id-tokens inschakelen
Het id-token dat door OpenID Connect wordt geïntroduceerd, 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:
- Meld u aan bij het Microsoft Entra-beheercentrum.
- Blader naar Identiteitstoepassingen>> App-registraties>< toepassingsverificatie.>>
- Selecteer Een platform toevoegenonder Platformconfiguraties.
- Selecteer in het deelvenster dat wordt geopend het juiste platform voor uw toepassing. Selecteer bijvoorbeeld Web voor een webtoepassing.
- Voeg onder Omleidings-URI's de omleidings-URI van uw toepassing toe. Bijvoorbeeld:
https://localhost:8080/
. - Schakel onder Impliciete toekenning en hybride stromen het selectievakje ID-tokens (gebruikt voor impliciete en hybride stromen) in.
Of:
- Selecteer Identiteitstoepassingen>> App-registraties>< toepassingsmanifest.>>
- Ingesteld
oauth2AllowIdTokenImplicitFlow
optrue
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:
- Blader naar Identiteitstoepassingen>> App-registraties<> toekende toepassingseindpunten.>>
- Zoek de URI onder openID Connect-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 Connect 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 descope
parameter. - Geef
id_token
in deresponse_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 er een die willekeurig is 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 de tokenreactie. 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 select_account toont u de gebruiker een accountkiezer, waarbij eenmalige afmelding wordt genegeerd, maar de gebruiker toestemming geeft om te kiezen met welk account ze zich willen aanmelden, zonder dat hiervoor referenties hoeven te worden opgegeven. U kunt zowel login_hint als select_account . |
login_hint |
Optioneel | U kunt deze parameter gebruiken om het veld gebruikersnaam en e-mailadres 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_hint optionele 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 toepassingen en spa's (SPA), bijvoorbeeld, profiteren 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 wordt OpenID Connect 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 aanmeldings- en tokenovernamestroom van OpenID Connect ziet er ongeveer als volgt uit:
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 eindpunt UserInfo 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 van de volgende 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 een van deze bewerkingen niet 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
agent zoals weergegeven in het OpenID Connect-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. Als u wilt gebruikenlogout_hint , schakelt u de login_hint optionele claim in uw clienttoepassing in en gebruikt u de waarde van de login_hint optionele claim als parameterlogout_hint . 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 afmelding 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_endpoint
gebruiker in een toepassing, beëindigt het Microsoft Identity Platform de gebruikerssessie voor deze toepassing. De gebruiker kan echter nog steeds zijn aangemeld bij andere toepassingen die gebruikmaken van dezelfde Microsoft-accounts voor verificatie.
Wanneer een gebruiker zich heeft aangemeld bij meerdere web- of BEVEILIGD-WACHTWOORDVERIFICATIE-toepassingen die zijn geregistreerd in deze map (ook wel een tenant genoemd), kan deze gebruiker zich direct afmelden bij alle toepassingen door zich af te melden bij een van de toepassingen.
Als u eenmalige afmelding wilt inschakelen voor uw Entra-toepassing, moet u de afmeldingsfunctie openID Connect front-kanaal gebruiken. Met deze functie kan een toepassing andere toepassingen waarschuwen dat de gebruiker zich heeft afgemeld. Wanneer de gebruiker zich afmeldt bij één toepassing, verzendt het Microsoft Identity Platform een HTTP GET-aanvraag naar de afmeldings-URL van het frontkanaal van elke toepassing waarmee de gebruiker momenteel is aangemeld.
Deze toepassingen moeten reageren op deze aanvraag door de volgende twee acties uit te voeren om eenmalige afmelding te laten slagen:
- Wis een sessie die de gebruiker identificeert.
- Toepassingen moeten reageren op deze aanvraag door een sessie te wissen die de gebruiker identificeert en een
200
-reactie retourneert.
Wat is een afmeldings-URL voor front-kanalen?
Een afmeldings-URL voor front-kanalen is de locatie waar uw web- of BEVEILIGD-WACHTWOORDVERIFICATIE-toepassing de afmeldingsaanvraag van de Entra-verificatieserver ontvangt en functionaliteit voor eenmalige afmelding uitvoert. Elke toepassing heeft één afmeldings-URL voor front-kanalen.
Wanneer moet u een afmeldings-URL voor front-kanalen instellen?
Als u of uw ontwikkelaar heeft vastgesteld dat eenmalige afmelding vereist is voor een toepassing, moet u de afmeldings-URL voor het front-kanaal instellen voor de app-registratie van deze toepassing. Zodra de afmeldings-URL van het frontkanaal is ingesteld voor de app-registratie van deze toepassing, verzendt het Microsoft Identity Platform een HTTP GET-aanvraag naar de afmeldings-URL van het frontkanaal van deze toepassing wanneer de aangemelde gebruiker zich heeft afgemeld bij een andere toepassing.
Eenmalige aanmelding instellen met de afmeldingsfunctie voor front-kanalen
Als u de afmeldingsfunctie voor front-kanalen voor een set toepassingen wilt gebruiken, moet u de volgende twee taken uitvoeren:
- Stel de afmeldings-URL van het front-kanaal in het Microsoft Entra-beheercentrum in voor alle toepassingen die tegelijkertijd moeten worden afgemeld. Elke toepassing heeft doorgaans een eigen afmeldings-URL voor front-kanalen.
- Bewerk de toepassingscode zodat ze luisteren naar een HTTP GET-aanvraag die door het Microsoft Identity Platform wordt verzonden naar de afmeldings-URL van het front-kanaal en reageren op deze aanvraag door een sessie te wissen die de gebruiker identificeert en een 200-antwoord retourneert.
Een afmeldings-URL voor front-kanaal kiezen
De afmeldings-URL van het frontkanaal moet een URL zijn die in staat is om HTTP GET-aanvragen te ontvangen en erop te reageren en moet elke sessie die de gebruiker identificeert, kunnen wissen. Voorbeelden van een afmeldings-URL voor front-kanalen kunnen zijn, maar zijn niet beperkt tot:
Volgende stappen
- Raadpleeg de eindpuntdocumentatie van UserInfo.
- Vul claimwaarden in een token in met gegevens van on-premises systemen.
- Neem uw eigen claims op in tokens.