Obtener token de acceso OAuth2.0
Las API de D1 utilizan el flujo JWT bearer de OAuth 2.0 (RFC 7523).
Su backend emisor firma un JSON Web Token (JWT) y lo intercambia por un token de acceso D1.
Use el token de acceso D1 para llamar a las API de D1.

Vea los campos de solicitud y respuesta en la referencia de la API: Obtener token de autorización.
Usar el token de acceso D1
Todas las API de backend emisor a backend D1 requieren un token de acceso D1.
Envíelo en el Authorization encabezado usando el Bearer esquema:
Authorization: Bearer <Base64_Encoded_JWT>
El token de acceso D1 es válido por 15 minutos.
Reutilice el token hasta que expire.
No llame a /oauth2/token antes de cada llamada a la API de D1.
Aserción JWT
El /oauth2/token API espera una aserción JWT (RFC 7519).
Su backend emisor debe generar un JWT válido y firmarlo.
Usted puede:
Generar JWTs usando un proveedor de identidad (por ejemplo, Keycloak).
Generar JWTs en su backend emisor.
En ambos casos, proporcione la clave pública utilizada para la verificación de la firma en el backend de D1.
Si no utiliza un proveedor de identidad, genere el par de claves y los JWTs como se describe a continuación.
Algoritmos compatibles
Solo se admiten JWTs firmados con ES256 son compatibles (RFC 7518).
D1 utiliza criptografía asimétrica.
El backend de D1 almacena solo 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 utiliza para seleccionar la clave pública correcta.
Ejemplo de encabezado:
Carga útil
La carga útil admite las siguientes claims:
iss
cadena
Sí
Use el issuerId proporcionado durante el onboarding de D1. D1 lo usa para buscar la clave pública aprovisionada. Si utiliza un modelo de agregador, establezca esto en el aggregatorId.
sub
cadena
Sí
Use el issuerId. (En caso de agregador, este valor es igual al aggregatorId.)
exp
entero
Sí
Hora de expiración en segundos epoch UTC. El valor máximo es la hora actual + 15 minutos.
aud
cadena
No
URL base del servidor de autorización de D1. Use la URL para su entorno objetivo: Sandbox = https://api.d1-stg.thalescloud.io, Producción = https://api.d1.thalescloud.io.
D1 impone el período máximo de expiración. Si exp excede 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 (.).
Generar el par de claves
Use OpenSSL para generar un par de claves P-256:
Genere una clave privada para el backend emisor.
Protéjala en su entorno.
Genere una clave pública para aprovisionar en el backend de D1:
El backend emisor usa la clave privada para firmar los JWTs.
El backend de D1 utiliza la clave pública (y su kid) para verificar las firmas JWT.
Comparta la clave pública y kid con el equipo de entrega de Thales durante el onboarding de D1.
Generar el JWT
Hay muchas formas de generar JWTs.
Este ejemplo usa la jose biblioteca de Node.js:
Ejemplo de salida JWT:
Última actualización
¿Te fue útil?