Tokens de seguridadSecurity tokens

Un proveedor de identidades centralizado es especialmente útil para las aplicaciones que tienen usuarios repartidos por todo el mundo que no inician sesión necesariamente desde la red de la empresa.A centralized identity provider is especially useful for apps that have users located around the globe who don't necessarily sign in from the enterprise's network. La Plataforma de identidad de Microsoft autentica a los usuarios y proporciona tokens de seguridad, como los tokens de acceso, los tokens de actualizacióny los tokens de id.The Microsoft identity platform authenticates users and provides security tokens, such as access tokens, refresh tokens, and ID tokens. Los tokens de seguridad permiten a una aplicación cliente acceder a recursos protegidos en un servidor de recursos.Security tokens allow a client application to access protected resources on a resource server.

Token de acceso: un token de acceso es un token de seguridad emitido por un servidor de autorización como parte de un flujo de OAuth 2.0.Access token: An access token is a security token that's issued by an authorization server as part of an OAuth 2.0 flow. Contiene información sobre el usuario y el recurso para el que está previsto el token.It contains information about the user and the resource for which the token is intended. La información se puede usar para tener acceso a las API web y a otros recursos protegidos.The information can be used to access web APIs and other protected resources. Los recursos validan los tokens de acceso para conceder acceso a una aplicación cliente.Access tokens are validated by resources to grant access to a client app. Para más información sobre cómo emite la Plataforma de identidad de Microsoft los tokens de acceso, consulte Tokens de acceso.To learn more about how the Microsoft identity platform issues access tokens, see Access tokens.

Token de actualización: Dado que los tokens de acceso solo son válidos durante un breve período de tiempo, los servidores de autorización a veces emiten un token de actualización al mismo tiempo que se emite el token de acceso.Refresh token: Because access tokens are valid for only a short period of time, authorization servers will sometimes issue a refresh token at the same time the access token is issued. La aplicación cliente puede intercambiar este token de actualización por un nuevo token de acceso cuando es necesario.The client application can then exchange this refresh token for a new access token when needed. Para más información sobre cómo usa la Plataforma de identidad de Microsoft los tokens de actualización para revocar permisos, consulte Revocación de tokens.To learn more about how the Microsoft identity platform uses refresh tokens to revoke permissions, see Token revocation.

Token de id. : Los tokens de id. se envían a la aplicación cliente como parte de un flujo de OpenID Connect.ID token: ID tokens are sent to the client application as part of an OpenID Connect flow. Se pueden enviar junto o en lugar de un token de acceso.They can be sent alongside or instead of an access token. El cliente usa los tokens de id. para autenticar al usuario.ID tokens are used by the client to authenticate the user. Para más información sobre cómo emite la Plataforma de identidad de Microsoft los tokens de id., consulte Tokens de id.To learn more about how the Microsoft identity platform issues ID tokens, see ID tokens.

Nota

En este artículo se describen los tokens de seguridad que usan los protocolos OAuth2 y OpenID Connect.This article discusses security tokens used by the OAuth2 and OpenID Connect protocols. Muchas aplicaciones empresariales usan SAML para autenticar a los usuarios.Many enterprise applications use SAML to authenticate users. Para información sobre las aserciones de SAML, vea Referencia de tokens SAML de Azure AD.For information on SAML assertions, see Azure Active Directory SAML token reference.

Validación del token de seguridadValidate security tokens

La validación del token corresponde a la aplicación para la que se generó el token, la aplicación web en la que inició sesión el usuario o la API web que se está llamando.It's up to the app for which the token was generated, the web app that signed in the user, or the web API being called to validate the token. El token está firmado por el servidor de autorización con una clave privada.The token is signed by the authorization server with a private key. El servidor de autorización publica la clave pública correspondiente.The authorization server publishes the corresponding public key. Para validar un token, la aplicación comprueba la firma utilizando la clave pública del servidor de autorización a fin de validar que la firma se creó con la clave privada.To validate a token, the app verifies the signature by using the authorization server public key to validate that the signature was created using the private key.

Los tokens son válidos solo durante un período de tiempo limitado.Tokens are valid for only a limited amount of time. Normalmente, el servidor de autorización proporciona un par de tokens, como:Usually, the authorization server provides a pair of tokens, such as:

  • Un token de acceso, que accede a la aplicación o al recurso protegido.An access token, which accesses the application or protected resource.
  • Un token de actualización, que se usa para actualizar el token de acceso cuando este está próximo a expirar.A refresh token, which is used to refresh the access token when the access token is close to expiring.

Los tokens de acceso se pasan a una API web en el encabezado de Authorization como un token de portador.Access tokens are passed to a web API as the bearer token in the Authorization header. Una aplicación puede proporcionar un token de actualización al servidor de autorización.An app can provide a refresh token to the authorization server. Si el acceso del usuario a la aplicación no se ha revocado, recibirá un nuevo token de acceso y un nuevo token de actualización.If the user access to the app wasn't revoked, it will get back a new access token and a new refresh token. Así es cómo se administran los casos cuando alguien abandona la empresa.This is how the scenario of someone leaving the enterprise is handled. Cuando el servidor de autorización recibe el token de actualización, si el usuario ya no está autorizado, no emitirá otro token de acceso válido.When the authorization server receives the refresh token, it won't issue another valid access token if the user is no longer authorized.

Instancias de JSON Web Token y notificacionesJSON Web Tokens and claims

La Plataforma de identidad de Microsoft implementa los tokens de seguridad como instancias de JSON Web Tokens (JWT) que contienen notificaciones.The Microsoft identity platform implements security tokens as JSON Web Tokens (JWTs) that contain claims. Dado que los JWT se usan como tokens de seguridad, esta forma de autenticación se denomina a veces autenticación de JWT.Since JWTs are used as security tokens, this form of authentication is sometimes called JWT authentication.

Una notificación proporciona aserciones sobre una entidad, como una aplicación cliente o un propietario de recursos, a otra entidad, como un servidor de recursos.A claim provides assertions about one entity, such as a client application or resource owner, to another entity, such as a resource server. También se puede hacer referencia a una notificación como una notificación de JWT o de JSON Web Token.A claim might also be referred to as a JWT claim or a JSON Web Token claim.

Las notificaciones son pares de nombres o valores que retransmiten datos sobre el firmante del token.Claims are name or value pairs that relay facts about the token subject. Por ejemplo, una notificación puede contener datos sobre la entidad de seguridad autenticada por el servidor de autorización.For example, a claim might contain facts about the security principal that was authenticated by the authorization server. Las notificaciones presentes en un token específico dependen de muchas cosas, entre las que se incluyen el tipo de token, el tipo de credencial usada para autenticar al firmante y la configuración de la aplicación.The claims present in a specific token depend on many things, such as the type of token, the type of credential used to authenticate the subject, and the application configuration.

Las aplicaciones pueden usar notificaciones para diversas tareas, como:Applications can use claims for various tasks, such as to:

  • Validar el token.Validate the token.
  • Identificar el inquilino del firmante del token.Identify the token subject's tenant.
  • Mostrar información de usuario.Display user information.
  • Determinar la autorización del firmante.Determine the subject's authorization.

Una notificación se compone de pares clave-valor que proporcionan información, como:A claim consists of key-value pairs that provide information such as the:

  • El servidor de tokens de seguridad que generó el token.Security Token Server that generated the token.
  • La fecha en la que se generó el token.Date when the token was generated.
  • El firmante (por ejemplo, el usuario, excepto en el caso de los demonios).Subject (such as the user--except for daemons).
  • La audiencia, que es la aplicación para la que se generó el token.Audience, which is the app for which the token was generated.
  • La aplicación (el cliente) que solicitó el token.App (the client) that asked for the token. En el caso de las aplicaciones web, la aplicación puede ser la misma que la audiencia.In the case of web apps, this app might be the same as the audience.

Para más información sobre cómo implementa la Plataforma de identidad de Microsoft los tokens y la información de notificaciones, consulte Tokens de acceso y Tokens de id.To learn more about how the Microsoft identity platform implements tokens and claim information, see Access tokens and ID tokens.

Cómo emite cada flujo los tokens y los códigosHow each flow emits tokens and codes

En función de cómo se compile el cliente, puede usar uno o varios de los flujos de autenticación admitidos por la Plataforma de identidad de Microsoft.Depending on how your client is built, it can use one (or several) of the authentication flows supported by the Microsoft identity platform. Estos flujos pueden generar varios tokens (tokens de id., tokens de actualización, tokens de acceso) y códigos de autorización.These flows can produce various tokens (ID tokens, refresh tokens, access tokens) and authorization codes. Requieren distintos tokens para que funcionen.They require different tokens to make them work. En esta tabla se proporciona información general.This table provides an overview.

FlujoFlow RequiereRequires token de identificadorID token Access tokenAccess token Token de actualizaciónRefresh token Código de autorizaciónAuthorization code
Flujo de código de autorizaciónAuthorization code flow xx xx xx xx
Flujo implícitoImplicit flow xx xx
Flujo de OIDC híbridoHybrid OIDC flow xx xx
Redención de token de actualizaciónRefresh token redemption Token de actualizaciónRefresh token xx xx xx
Flujo en nombre deOn-behalf-of flow Access tokenAccess token xx xx xx
Credenciales de clienteClient credentials x (solo aplicación)x (App only)

Los tokens emitidos a través del modo implícito tienen una limitación de longitud porque se pasan al explorador a través de la dirección URL (donde response_mode es query o fragment).Tokens issued via the implicit mode have a length limitation because they're passed back to the browser via the URL, where response_mode is query or fragment. Algunos exploradores tienen un límite en el tamaño de la dirección URL que se puede colocar en la barra del explorador y producen un error cuando es demasiado larga.Some browsers have a limit on the size of the URL that can be put in the browser bar and fail when it's too long. Como resultado, estos tokens no tienen notificaciones groups o wids.As a result, these tokens don't have groups or wids claims.

Pasos siguientesNext steps

Para más información sobre la autenticación y la autorización en la Plataforma de identidad de Microsoft, consulte los siguientes artículos:For more information about authentication and authorization in the Microsoft identity platform, see the following articles: