Obtener token de acceso OAuth 2.0
Las API de D1 usan el flujo bearer JWT de OAuth 2.0 (RFC 7523).
Tu backend del emisor firma un JSON Web Token (JWT) y lo intercambia por un token de acceso de D1.
Usa el token de acceso de D1 para llamar a las API de D1.

Consulta los campos de solicitud y respuesta en la referencia de la API: Obtener token de autorización.
Usa el token de acceso de D1
Todas las API del backend del emisor al backend de D1 requieren un token de acceso de D1.
Envíalo en el Authorization encabezado usando el Bearer esquema:
Authorization: Bearer <Base64_Encoded_JWT>
El token de acceso de D1 es válido durante 15 minutos.
Reutiliza el token hasta que expire.
No llames a /oauth2/token antes de cada llamada a la API de D1.
Aserción JWT
El /oauth2/token La API espera una aserción JWT (RFC 7519).
Tu backend del emisor debe generar un JWT válido y firmarlo.
Puedes:
Generar JWT mediante un proveedor de identidades (por ejemplo, Keycloak).
Generar JWT en tu backend del emisor.
En ambos casos, aprovisiona la clave pública usada para la verificación de la firma en el backend de D1.
Si no usas un proveedor de identidades, genera el par de claves y los JWT como se describe a continuación.
Algoritmos compatibles
Solo se admiten JWT firmados con ES256 son compatibles (RFC 7518).
D1 usa criptografía asimétrica.
El backend de D1 solo almacena claves públicas.
Formato JWT
Un JWT consta de tres partes separadas por puntos (.):
Encabezado
Carga útil
Firma
Ejemplo: hhhhhhh.pppppppp.ssssssssss
Encabezado
El encabezado contiene el algoritmo y el tipo de token.
kid es obligatorio.
El backend de D1 lo usa para seleccionar la clave pública correcta.
Ejemplo de encabezado:
Carga útil
La carga útil admite las siguientes claims:
iss
cadena
Sí
Usa el issuerId proporcionado durante la incorporación a D1. D1 lo usa para buscar la clave pública aprovisionada. Si usas un modelo de agregador, establece esto como el aggregatorId.
sub
cadena
Sí
Usa el issuerId. (En caso de agregador, este valor es igual al aggregatorId.)
exp
entero
Sí
Tiempo de expiración en segundos de época UTC. El valor máximo es la hora actual + 15 minutos.
aud
cadena
No
URL base del servidor de autorización de D1. Usa la URL para tu entorno de destino: Sandbox = https://api.d1-stg.thalescloud.io, Production = https://api.d1.thalescloud.io.
D1 aplica el período máximo de expiración. Si exp supera la ventana permitida, D1 rechaza la solicitud.
Ejemplo de carga útil:
Firma
La firma se calcula sobre el encabezado y la carga útil codificados en Base64URL.
Las tres partes del JWT se unen usando puntos (.).
Genera el par de claves
Usa OpenSSL para generar un par de claves P-256:
Genera una clave privada para el backend del emisor.
Protégela en tu entorno.
Genera una clave pública para aprovisionar en el backend de D1:
El backend del emisor usa la clave privada para firmar JWT.
El backend de D1 usa la clave pública (y su kid) para verificar las firmas JWT.
Comparte la clave pública y kid con el equipo de entrega de Thales durante la incorporación a D1.
Genera el JWT
Hay muchas maneras de generar JWT.
Este ejemplo usa la jose biblioteca de Node.js:
Ejemplo de salida de JWT:
Última actualización
¿Te fue útil?