

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Descripción del token de identidad (ID)
<a name="amazon-cognito-user-pools-using-the-id-token"></a>

El token de ID es un [JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519) que contiene notificaciones acerca de la identidad del usuario autenticado, como por ejemplo, `name`, `email` y `phone_number`. Puede utilizar esta información de identidad dentro de la aplicación. El token de ID también puede utilizarse para autenticar a los usuarios en sus servidores de recursos o aplicaciones de servidor. También puede usar un token de ID fuera de la aplicación con sus operaciones de API web. En esos casos, debe verificar la firma del token de ID antes de poder confiar en las notificaciones que contiene. Consulte [Verificación de tokens web JSON](amazon-cognito-user-pools-using-tokens-verifying-a-jwt.md). 

Puede usar cualquier valor de entre 5 minutos y 1 día para establecer el vencimiento del token de ID. Puede configurar este valor por cliente de aplicación.

**importante**  
Cuando el usuario inicia sesión con un inicio de sesión administrado, Amazon Cognito establece cookies de sesión válidas durante 1 hora. Si utiliza el inicio de sesión administrado para la autenticación en su aplicación y especifica una duración mínima de menos de 1 hora para sus tokens de acceso e ID, los usuarios seguirán teniendo una sesión válida hasta que caduque la cookie. Si el usuario tiene tokens que caducan durante la sesión de una hora, podrá actualizar sus tokens sin necesidad de volver a autenticarse.

## Encabezado del token de ID
<a name="user-pool-id-token-header"></a>

El encabezado contiene dos bloques de información: el ID de clave (`kid`) y el algoritmo (`alg`).

```
{
"kid" : "1234example=",
"alg" : "RS256"
}
```

**`kid`**  
ID de la clave. Este valor indica la clave que se ha utilizado para proteger la firma web JSON (JWS) del token. Puede ver la clave de firma de su grupo de usuarios IDs en el `jwks_uri` punto final.  
Para obtener más información sobre el parámetro`kid`, consulte [Parámetro de encabezado de identificador de clave (kid)](https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41#section-4.5).

**`alg`**  
El algoritmo criptográfico que Amazon Cognito utilizó para proteger el token de acceso. Los grupos de usuarios utilizan un algoritmo RS256 criptográfico, que es una firma RSA con SHA-256.  
Para obtener más información sobre el `alg`parámetro, consulte [Parámetro de encabezado de algoritmos (alg).](https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41#section-4.4)

## Carga útil predeterminada del token de ID
<a name="user-pool-id-token-payload"></a>

Este es un ejemplo de carga útil de un token de ID. Contiene notificaciones sobre el usuario autenticado. Para obtener más información acerca de las notificaciones estándar de OpenID Connect (OIDC), consulte la lista [OIDC standard claims](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Puede añadir notificaciones de diseño propio con un [Desencadenador de Lambda anterior a la generación del token](user-pool-lambda-pre-token-generation.md).

```
<header>.{
    "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "cognito:groups": [
        "test-group-a",
        "test-group-b",
        "test-group-c"
    ],
    "email_verified": true,
    "cognito:preferred_role": "arn:aws:iam::111122223333:role/my-test-role",
    "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example",
    "cognito:username": "my-test-user",
    "middle_name": "Jane",
    "nonce": "abcdefg",
    "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "cognito:roles": [
        "arn:aws:iam::111122223333:role/my-test-role"
    ],
    "aud": "xxxxxxxxxxxxexample",
    "identities": [
        {
            "userId": "amzn1.account.EXAMPLE",
            "providerName": "LoginWithAmazon",
            "providerType": "LoginWithAmazon",
            "issuer": null,
            "primary": "true",
            "dateCreated": "1642699117273"
        }
    ],
    "event_id": "64f513be-32db-42b0-b78e-b02127b4f463",
    "token_use": "id",
    "auth_time": 1676312777,
    "exp": 1676316377,
    "iat": 1676312777,
    "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "email": "my-test-user@example.com"
}
.<token signature>
```

**`sub`**  
El identificador único ([UUID](cognito-terms.md#terms-uuid)) o asunto, para el usuario autenticado. Es posible que el nombre de usuario no sea único en el grupo de usuarios. La reclamación `sub` es la mejor forma de identificar a un usuario determinado.

**`cognito:groups`**  
Una matriz con los nombres de los grupos de usuarios que tienen a su usuario como miembro. Los grupos pueden ser un identificador que se presenta en la aplicación o pueden generar una solicitud para un rol de IAM preferido desde un grupo de identidades.

**`cognito:preferred_role`**  
El ARN del rol de IAM que asoció al grupo de usuarios de mayor prioridad de su usuario. Para obtener más información sobre cómo el grupo de usuarios selecciona esta reclamación de rol, consulte [Asignación de valores de prioridad a los grupos](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

**`iss`**  
El proveedor de identidad que emitió el token. La reclamación tiene el formato siguiente:  
`https://cognito-idp.<Region>.amazonaws.com/<your user pool ID>`

**`cognito:username`**  
El nombre de usuario del usuario en el grupo de usuarios.

**`nonce`**  
La `nonce` afirmación proviene de un parámetro del mismo nombre que puede añadir a las solicitudes de su terminal 2.0. OAuth `authorize` Cuando agrega el parámetro, la notificación `nonce` se incluye en el token de ID que emite Amazon Cognito y puede utilizarla para protegerse de los ataques de repetición. Si no proporciona un valor `nonce` en la solicitud, Amazon Cognito genera y valida de forma automática un nonce cuando se autentica a través de un proveedor de identidad de terceros y, a continuación, lo agrega como la notificación `nonce` al token de ID. La implementación de la notificación `nonce` en Amazon Cognito se basa en [estándares OIDC](https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation).

**`origin_jti`**  
Un identificador de revocación de tokens asociado al token de actualización del usuario. Amazon Cognito hace referencia a la `origin_jti` reclamación cuando comprueba si revocó el token de su usuario con la operación [Revocación de puntos de conexión](revocation-endpoint.md) o la [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)API. Al revocar un token, Amazon Cognito invalida todos los tokens de acceso e ID con el mismo valor `origin_jti`.

**`cognito:roles`**  
Una matriz con los nombres de los roles de IAM asociados a los grupos de su usuario. Cada grupo de usuarios puede tener un rol de IAM asociado. Esta matriz representa todos los roles de IAM de los grupos de usuarios, independientemente de su prioridad. Para obtener más información, consulte [Agregar grupos a un grupo de usuarios](cognito-user-pools-user-groups.md).

**`aud`**  
El cliente de la aplicación del grupo de usuarios que ha autenticado a su usuario. Amazon Cognito representa el mismo valor en la reclamación `client_id` del token de acceso.

**`identities`**  
El contenido del atributo `identities` del usuario. El atributo contiene información sobre cada perfil de proveedor de identidad externo que haya vinculado a un usuario, ya sea mediante un inicio de sesión federado o mediante la [vinculación de un usuario federado a un perfil local](cognito-user-pools-identity-federation-consolidate-users.md). Esta información contiene el nombre del proveedor, el identificador único del proveedor y otros metadatos.

**`token_use`**  
El objetivo para el que se creó el token. En un token de identificación, su valor es `id`.

**`auth_time`**  
La hora de autenticación, en formato de hora de Unix, a la que el usuario completó la autenticación.

**`exp`**  
La hora de caducidad, en formato de hora de Unix, en la que vence el token de su usuario.

**`iat`**  
La hora de emisión, en formato de hora de Unix, a la que Amazon Cognito emitió el token de su usuario.

**`jti`**  
El identificador único del JWT.

El token de ID puede contener notificaciones estándar de OIDC definidas en las [notificaciones estándar de OIDC](https://openid.net/specs/openid-connect-core-1_0.html#Claims). También puede contener atributos personalizados que se definen en el grupo de usuarios. Amazon Cognito escribe valores de atributos personalizados en el token de ID como cadenas, independientemente del tipo de atributo.

**nota**  
Los atributos personalizados de los grupos de usuarios siempre llevan el prefijo `custom:`. 

## Firma del token de ID
<a name="user-pool-id-token-signature"></a>

La firma del token de ID se calcula en función del encabezado y la carga útil del token JWT. Antes de aceptar las reclamaciones en cualquier token de ID que reciba su aplicación, verifique la firma del token. Para obtener más información, consulte Verificación de un JSON Web Token. [Verificación de tokens web JSON](amazon-cognito-user-pools-using-tokens-verifying-a-jwt.md)