Dela via


ID-token i Microsofts identitetsplattform

ID-token är en typ av säkerhetstoken som fungerar som autentiseringsbevis som bekräftar att en användare har autentiserats. Med information i ID-token kan klienten verifiera att en användare är den de påstår sig vara, ungefär som namntaggar på en konferens. Auktoriseringsservern utfärdar ID-token som innehåller anspråk som innehåller information om användaren. De kan skickas tillsammans med eller i stället för en åtkomsttoken och är alltid JWT-format (JSON-webbtoken).

ID-token skiljer sig från åtkomsttoken, som fungerar som auktoriseringsbevis. Konfidentiella klienter bör verifiera ID-token. Du bör inte använda en ID-token för att anropa ett API.

Program från tredje part är avsedda att förstå ID-token. ID-token bör inte användas i auktoriseringssyfte. Åtkomsttoken används för auktorisering. Anspråken som tillhandahålls av ID-token kan användas för UX i ditt program, som nycklar i en databas och ge åtkomst till klientprogrammet. Mer information om de anspråk som används i en ID-token finns i referensen för ID-tokenanspråk. Mer information om anspråksbaserad auktorisering finns i Skydda program och API:er genom att verifiera anspråk.

Tokenformat

Det finns två versioner av ID-token i Microsofts identitetsplattform: v1.0 och v2.0. Dessa versioner avgör vilka anspråk som finns i token. ID-token v1.0 och v2.0 har skillnader i den information som de har. Versionen baseras på slutpunkten där den begärdes. Nya program bör använda v2.0.

  • v1.0: https://login.microsoftonline.com/common/oauth2/authorize
  • v2.0: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

Exempel på V1.0 ID-token

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q

Visa den här v1.0-exempeltoken i jwt.ms.

Exempel på V2.0 ID-token

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw

Visa den här v2.0-exempeltoken i jwt.ms.

Livslängd för token

Som standard är en ID-token giltig i en timme – efter en timme måste klienten hämta en ny ID-token.

Du kan justera livslängden för en ID-token för att styra hur ofta klientprogrammet förfaller programsessionen och hur ofta det kräver att användaren autentiserar igen, antingen tyst eller interaktivt. Mer information finns i Konfigurerbara tokenlivslängder.

Verifiera token

För att verifiera en ID-token kan klienten kontrollera om token har manipulerats. Den kan också verifiera utfärdaren för att säkerställa att rätt utfärdare har skickat tillbaka token. Eftersom ID-token alltid är en JWT-token finns det många bibliotek för att verifiera dessa token . Du bör använda ett av dessa bibliotek i stället för att göra det själv. Endast konfidentiella klienter bör verifiera ID-token. Mer information finns i Skydda program och API:er genom att verifiera anspråk.

Offentliga program (kod som körs helt på en enhet eller ett nätverk som du inte styr, till exempel en användares webbläsare eller deras hemnätverk) har inte nytta av att validera ID-token. I det här fallet kan en obehörig användare fånga upp och redigera de nycklar som används för validering av token.

Följande JWT-anspråk ska verifieras i ID-token efter validering av signaturen på token. Valideringsbiblioteket för token kan också verifiera följande anspråk:

  • Tidsstämplar: tidsstämplarna iat, nbfoch exp bör alla falla före eller efter den aktuella tiden, efter behov.
  • Målgrupp: anspråket aud ska matcha app-ID:t för ditt program.
  • Nonce: anspråket nonce i nyttolasten måste matcha nonce-parametern som skickades till /authorize slutpunkten under den första begäran.