Jetons d’ID de la plateforme d’identités Microsoft
Les jetons d’ID sont un type de jetons de sécurité qui sert de preuve d’authentification, confirmant qu’un utilisateur est correctement authentifié. Les informations des jetons d’ID permettent au client de vérifier qu’un utilisateur est bien celui qu’il prétend être, de façon similaire aux badges nominatifs pour une conférence. Le serveur d'autorisation émet des jetons d’ID qui contiennent des revendications avec des informations sur l'utilisateur. Ils peuvent être envoyés avec ou à la place d’un jeton d’accès, et ils sont toujours au format JWT (JSON Web Token).
Les jetons d’ID diffèrent des jetons d’accès, qui servent de preuve d’autorisation. Les clients confidentiels doivent valider des jetons d’ID. Vous ne devez pas utiliser un jeton d’ID pour appeler une API.
Les applications tierces sont conçues pour comprendre les jetons d’ID. Les jetons d'ID ne doivent pas être utilisés à des fins d'autorisation. Les jetons d'accès sont utilisés pour l'autorisation. Les revendications fournies par les jetons d'ID peuvent être utilisées pour l'expérience utilisateur au sein de votre application, en tant que clés au sein d'une base de données, et pour fournir un accès à l'application cliente. Pour plus d’informations sur les revendications utilisées dans un jeton d'ID, consultez la page de référence sur les revendications de jetons. Pour plus d’informations sur l’utilisation sécurisée de l’autorisation basée sur les revendications, consultez Sécuriser des applications et des API par la validation des revendications.
Formats de jetons
Deux versions de jetons d’ID sont disponibles dans la plateforme d’identités Microsoft : v1.0 et v2.0. Ces versions définissent les revendications dans le jeton. Les informations contenues dans les jetons d'ID v1.0 et v2.0 présentent des différences. La version est basée sur le point de terminaison à partir duquel le jeton a été demandé. Les nouvelles applications doivent utiliser la v2.0.
- v1.0 :
https://login.microsoftonline.com/common/oauth2/authorize
- v2.0 :
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Exemple de jeton d'ID v1.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q
Afficher cet exemple de jeton v1.0 dans jwt.ms.
Exemple de jeton d'ID v2.0
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Afficher cet exemple de jeton v2.0 dans jwt.ms.
Durée de vie des jetons
Par défaut, un jeton d'ID est valable pendant une heure. Au bout d'une heure, le client doit en acquérir un nouveau.
Vous pouvez ajuster la durée de vie d'un jeton d'ID pour contrôler la fréquence à laquelle l'application cliente met fin à la session de l'application, ainsi que la fréquence à laquelle elle demande à l'utilisateur de s’authentifier à nouveau de manière silencieuse ou interactive. Pour plus d’informations, consultez Durées de vie des jetons configurables.
Valider les jetons
Pour valider un jeton d’ID, votre client peut vérifier si le jeton a été falsifié. Il peut également vérifier l'émetteur pour s'assurer que celui qui a renvoyé le jeton est le bon. Étant donné que les jetons d'ID sont toujours des jetons JWT, de nombreuses bibliothèques permettent de les valider. Vous devriez utiliser l'une d'entre elles plutôt que de le faire vous-même. Seuls les clients confidentiels doivent valider les jetons d’ID. Pour plus d’informations, consultez Sécuriser les applications et les API par la validation des revendications.
Les applications publiques (dont le code s'exécute entièrement sur un appareil ou un réseau que vous ne contrôlez pas, comme le navigateur ou le réseau domestique d'un utilisateur) ne bénéficient pas de la validation du jeton d'ID. Dans ces circonstances, un utilisateur malveillant peut intercepter et modifier les clés utilisées pour la validation du jeton.
Les revendications JWT suivantes doivent être validées dans le jeton d'ID après avoir validé la signature du jeton. Votre bibliothèque de validation de jetons peut également valider les revendications suivantes :
- Horodatages : les horodatages
iat
,nbf
etexp
doivent tous correspondre à un moment avant ou après l’heure actuelle, selon ce qui convient. - Audience : la revendication
aud
doit correspondre à l’ID de votre application. - Valeur à usage unique : la revendication
nonce
dans la charge utile doit correspondre au paramètre nonce transmis au point de terminaison/authorize
lors de la requête initiale.