Código de autorización (formato JWT)
El código de autorización es un JSON Web Token (JWT) generado por el emisor. Sigue la RFC 7519 especificación y proporciona protección de identidad e integridad para el servidor TSH.
JWT se utiliza ampliamente para gestionar la autorización y propagar la identidad. Para implementaciones, consulte las bibliotecas listadas en jwt.io.
Un JSON Web Token tiene tres partes: encabezado, declaraciones (claims) y firma. Cada parte es un objeto JSON que está codificado en base64url.
Parte 1: el encabezado
El encabezado define el algoritmo de firma utilizado para el token.
Estos son los campos y valores compatibles:
typ
valor estático 'JWT'
alg
'RS256' donde RSA 2048 se utiliza para el cálculo de la firma y SHA256 para el hash.
kid
Identificador de la clave utilizada para la firma del JWT. Se comparte durante el proceso de incorporación entre el emisor y el servidor TSH. RFU para la gestión de la rotación de claves. Valor que básicamente puede ser cualquier valor que desee, siempre que identifique de forma única su clave. Puede ser huella digital, aleatorio ...
Ejemplo:
// S{ "typ": "JWT", "alg": "RS256" }{ "typ": "JWT", "alg": "RS256" }
el encabezado (en base64) es:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9
Parte 2: las declaraciones (claims)
El código de autorización contiene declaraciones sobre el usuario autenticado. También define el período de validez del token. Estos son los campos de claim y valores compatibles:
iss
El valor issuerId proporcionado durante el proceso de incorporación.
sub
Deberá ser ya sea el valor issuerCardRefId (ya proporcionado en la carga útil JWE) que identifica el PAN autorizado para la solicitud de provisión push o el tokenId para la operación LCM.
aud
La 'audiencia' es el solicitante del token, por lo que el tokenRequestorId se proporciona en este campo. valores como: GOOGLE_PAY / APPLE_PAY / SAMSUNG_PAY
exp
La fecha de expiración del JWT, el formato de fecha está definido en la especificación RFC 7519. El valor máximo recomendado es la fecha/hora actual + 5 minutos.
iat
El momento en el que se emitió el JWT.
jti
El identificador único del JWT. Este es un campo opcional pero si se establece DEBE ser único para cada solicitud.
Parte 3: la firma
La firma se calcula usando RSA-2048 y SHA-256 sobre el encabezado y las declaraciones concatenadas, usando la clave privada del emisor PRIVATE_KEY. El servidor TSH valida la firma usando el certificado proporcionado por el emisor durante el proceso de incorporación.
El siguiente ejemplo en Node.js muestra cómo generar un JWT:
Ejemplo de código de autorización:
Última actualización
¿Te fue útil?