Tokens de id. de la Plataforma de identidad de Microsoft
Los tokens de identificador son un tipo de token de seguridad que actúa como prueba de autenticación, lo que confirma que un usuario se ha autenticado correctamente. La información de los tokens de identificador permite al cliente comprobar que un usuario es quien dice ser, similar a las etiquetas de nombre en una conferencia. El servidor de autorización emite tokens de identificador que contienen notificaciones con información sobre el usuario. Se pueden enviar con o en lugar de un token de acceso, y siempre son formato JWT (JSON Web Token).
Los tokens de identificador difieren de los tokens de acceso, que sirven como prueba de autorización. Los clientes confidenciales deben validar los tokens de identificador. No debe usar un token de identificador para llamar a una API.
Las aplicaciones de terceros están diseñadas para comprender los tokens de identificador. Los tokens de identificador no se deben usar con fines de autorización. Los tokens de acceso se usan para la autorización. Las notificaciones que proporcionan los tokens de identificador pueden usarse para la experiencia del usuario en la aplicación, como claves en una base de datos, y proporcionar acceso a la aplicación cliente. Para obtener más información sobre las notificaciones usadas en un token de identificador, vea Referencia de notificaciones de tokens de identificador. Para más información sobre la autorización basada en notificaciones, consulte Protección de aplicaciones y API mediante la validación de notificaciones.
Formatos de tokens
Hay dos versiones de tokens de identificador disponibles en la Plataforma de identidad de Microsoft: v1.0 y v2.0. Estas versiones determinan las notificaciones que están en el token. Los token de identificador v1.0 y v2.0 presentan diferencias en la información que contienen. La versión se basa en el punto de conexión desde donde se solicitó. Las aplicaciones nuevas deben usar la versión 2.0.
- v1.0:
https://login.microsoftonline.com/common/oauth2/authorize
- v2.0:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Token de identificador de la versión 1.0 de ejemplo
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q
Puede ver este token de ejemplo de la versión v1.0 en jwt.ms.
Token de identificador de la versión 2.0 de ejemplo
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw
Puede ver este token de ejemplo de la versión v2.0 en jwt.ms.
Duración del token
De manera predeterminada, un token de identificador es válido durante una hora; después de una hora, el cliente debe adquirir un nuevo token de identificador.
Puede ajustar la vigencia de un token de identificador para controlar la frecuencia con la que la aplicación cliente expira la sesión de la aplicación y requerirá que el usuario se vuelva a autenticar (de forma silenciosa o interactiva). Para más información, consulte Vigencia de tokens configurable en la Plataforma de identidad de Microsoft (versión preliminar).
Validar tokens
Para validar el token de identificador, su cliente puede comprobar si el token se ha alterado. También puede validar al emisor para asegurarse de que el emisor correcto ha devuelto el token. Dado que los tokens de identificador siempre son un token JWT, existen muchas bibliotecas para validar estos tokens: se recomienda usar una de estas bibliotecas en lugar de hacerlo usted mismo. Solo los clientes confidenciales deben validar los tokens de identificador. Para obtener más información, vea Protección de aplicaciones y API mediante la validación de notificaciones.
Las aplicaciones públicas (el código se ejecuta completamente en un dispositivo o red que no controla; por ejemplo, el explorador de un usuario o su red doméstica) no se benefician de la validación del token de identificador. En este caso, un usuario malintencionado puede interceptar y editar las claves usadas para la validación del token.
Las siguientes notificaciones JWT deben validarse en el token de identificador después de validar la firma en el token. La biblioteca de validación de tokens también puede validar las siguientes notificaciones:
- Marcas de tiempo: las marcas de tiempo
iat
,nbf
yexp
deben estar todas antes o después de la hora actual, según corresponda. - Audiencia: la notificación
aud
debe coincidir con el identificador de aplicación de la aplicación. - Nonce: la notificación
nonce
de la carga debe coincidir con el parámetro nonce pasado en el punto de conexión/authorize
durante la solicitud inicial.