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.

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.

Flujo bearer JWT de OAuth 2.0 entre el backend del emisor y el backend 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:

Claim
Tipo
Obligatorio
Descripción

iss

cadena

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

Usa el issuerId. (En caso de agregador, este valor es igual al aggregatorId.)

exp

entero

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?