Generar token de autenticación
Resumen
El backend de la billetera digital debe construir un token de autenticación en los siguientes casos:
Para admitir el registro del flujo verde.
Para proporcionar datos adicionales de la billetera (evaluación de riesgo del emisor).
El backend de la billetera digital firma el token de autenticación con su clave privada.
El backend de NFC Wallet valida el token con la clave pública correspondiente proporcionada durante la incorporación.
Construya el token de autenticación en el backend de la billetera digital. Luego páselo a la aplicación de la billetera digital.
Registro del flujo verde
El token demuestra que el emisor ya autenticó al usuario final y aprobó la solicitud de tokenización.
Datos adicionales de la billetera
El token de autenticación permite que la billetera digital proporcione datos adicionales de forma segura. Ayuda a garantizar que ningún intermediario altere los datos adicionales.
Requisitos del token de autenticación
El token de autenticación es un JWT (RFC 7519).
JWT es un formato estándar para transmitir reclamaciones 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:
<header>.<payload>.<signature>
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:
Codifique el encabezado en Base64URL como una sola línea antes de generar la firma.
Carga útil
La carga útil admite estas reclamaciones:
iss
Obligatorio
Identificador del emisor. Use el issuerId asignado durante la incorporación.
sub
Condicional
Obligatorio solo si nonce está presente en los datos de la tarjeta cifrada. Establezca el valor en el hash SHA-256 del nonce.
wallet
Opcional
Datos adicionales de la billetera en formato de carga útil JSON. Ver Proporcionar datos adicionales de la billetera.
Ejemplo de carga útil:
En el ejemplo anterior,
subesb776ce1e1b00be3f03c7fff59d872c32cfd65cc4377766f47af84f48ea8925f2. Es el hash SHA-256 delnoncevalorabdda9cfbe2fdce335290773ba6f56a9c5ebe64910.
Firma
Calcule 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, la carga útil y la firma codificados, separados por puntos.
Genere el JWT
Puede usar cualquier biblioteca JWT que admita firmas RSA y encabezados personalizados.
Este ejemplo usa la jose4j biblioteca Java:
Ver Bibliotecas JWT por idioma para implementaciones compatibles.
Última actualización
¿Te fue útil?