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.
Genera el token de autenticación en el backend del emisor. Luego pásalo a la aplicación del emisor.
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:
RS256PS256PS512
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:
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.
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?