ID Token
El ID Token es un token de seguridad que contiene Claims sobre la autenticación. Es un JWT (JSON Web Token) que puede ser decodificado y validado.
Estructura del JWT
El ID Token está compuesto por tres partes separadas por puntos:
header.payload.signature- header: Metadatos sobre el token
- payload: Las claims (información) del token
- signature: Firma para validación
Claims Estándar
Las Claims estándar son:
sub
Abreviatura de Subject Identifier. Identificador único del usuario en el sistema.
"sub": "000001"exp
Momento de expiración en que el ID Token deberá no ser más aceptado como válido. Su valor es del tipo JSON number que representa el número de segundos desde 1970-01-01T0:0:0Z.
"exp": 1697234567iat
Momento en que el JWT fue emitido. Su valor es del tipo JSON number que representa el número de segundos desde 1970-01-01T0:0:0Z.
"iat": 1697230967iss
Abreviatura de Issuer. Representa la entidad emisora del JWT.
"iss": "fanbase"aud
Audiencia para la cual el ID Token está destinado. Su propio client_id debe estar presente.
"aud": "exampleclient"profile
Objeto que contiene la información del usuario autenticado. Sus campos necesitan ser definidos conforme necesidad de cada sistema.
"profile": {
"name": "Juan Silva",
"email": "juan@ejemplo.com"
}Decodificación del JWT
El payload del JWT está codificado en Base64URL. Puede decodificarlo para visualizar las claims:
function decodificarJWT(token) {
const partes = token.split('.');
const payload = JSON.parse(atob(partes[1].replace(/-/g, '+').replace(/_/g, '/')));
return payload;
}
const idToken = 'qbcd.1234.xyz';
const claims = decodificarJWT(idToken);
console.log(claims);Validación
Antes de utilizar el ID Token, debe validarlo conforme descrito en Validación del ID Token.
