Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Generar token de autenticación (antiguo)

Descripción general

Para admitir la inscripción en el flujo verde, el backend del emisor debe generar un token de autenticación.

El token demuestra que el emisor autenticó previamente al usuario final y aprobó la solicitud de tokenización.

Firma el token de autenticación con la clave privada del backend del emisor.

El backend de NFC Wallet valida el token con la clave pública correspondiente proporcionada durante la incorporación.

Requisitos del token de autenticación

El token de autenticación es un JWT (RFC 7519).

JWT es un formato estándar para transmitir afirmaciones firmadas entre sistemas.

Algoritmos compatibles

El backend de NFC Wallet admite estos algoritmos de firma:

  • RS256

  • PS256

  • PS512

Formato JWT

Un JWT contiene tres partes codificadas en Base64URL separadas por puntos (.):

  • Encabezado

  • Carga útil

  • Firma

El formato compacto es:

<encabezado>.<carga útil>.<firma>

Encabezado

El encabezado define el tipo de token y el algoritmo de firma.

kid es obligatorio. El backend de NFC Wallet lo usa para seleccionar la clave pública correcta.

Ejemplo de encabezado:

Codifica el encabezado en Base64URL como una sola línea antes de generar la firma.

Carga útil

La carga útil admite estas afirmaciones:

Campo
Requisito
Descripción

iss

Obligatorio

Identificador del emisor. Usa el issuerId asignado durante la incorporación.

sub

Condicional

Proporciona esta afirmación solo si nonce está presente en los datos cifrados de la tarjeta. Establece el valor en el hash SHA-256 de la nonce.

iat

Obligatorio

Hora de emisión del token, con formato según lo definido en RFC 7519.

exp

Obligatorio

Hora de expiración del token, con formato según lo definido en RFC 7519.

Ejemplo de carga útil:

En este ejemplo, sub contiene el hash SHA-256 de la nonce valor abdda9cfbe2fdce335290773ba6f56a9c5ebe64910.

Firma

Calcula la firma sobre el encabezado y la carga útil codificados en Base64URL con la clave privada del backend del emisor.

El backend de NFC Wallet valida la firma con la clave pública proporcionada durante la incorporación.

El JWT final es la concatenación del encabezado codificado, la carga útil y la firma, separados por puntos.

Generar el JWT

Puedes usar cualquier biblioteca JWT que admita firmas RSA y encabezados personalizados.

Este ejemplo usa la jose4j biblioteca Java:

Consulta Bibliotecas JWT por lenguaje para ver las implementaciones compatibles.

Última actualización

¿Te fue útil?