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.

OAuth 2.0 アクセストークンを取得する

D1 API は OAuth 2.0 JWT ベアラーフロー(RFC 7523).

あなたの イシュアバックエンド は JSON Web Token (JWT) に署名し、それを D1 アクセストークンと交換します。

D1 アクセストークンを使用して D1 API を呼び出します。

イシュアバックエンドと D1 バックエンドの間の OAuth 2.0 JWT ベアラーフロー。

API リファレンスのリクエストおよびレスポンスフィールドを参照してください: 認可トークンを取得する.

D1 アクセストークンを使用する

イシュアバックエンドから D1 バックエンドへのすべての API では、D1 アクセストークンが必要です。

それを Authorization ヘッダーに Bearer スキームを使って送信します:

Authorization: Bearer <Base64_Encoded_JWT>

D1 アクセストークンの有効期限は 15 分です。

トークンは期限切れになるまで再利用してください。

呼び出さないでください /oauth2/token を毎回の D1 API 呼び出し前に。

JWT アサーション

その /oauth2/token API は JWT アサーション(RFC 7519).

イシュアバックエンドは、有効な JWT を生成して署名する必要があります。

次のことができます:

  • ID プロバイダー(たとえば Keycloak)を使用して JWT を生成する。

  • イシュアバックエンドで JWT を生成する。

どちらの場合も、署名検証に使用する公開鍵を D1 バックエンドにプロビジョニングします。

ID プロバイダーを使用しない場合は、以下の説明に従って鍵ペアと JWT を生成します。

サポートされているアルゴリズム

で署名された JWT のみが ES256 サポートされます(RFC 7518).

D1 は非対称暗号方式を使用します。

D1 バックエンドは公開鍵のみを保存します。

JWT の形式

JWT は、ドット(.):

  • ヘッダー

  • ペイロード

  • 署名

例: hhhhhhh.pppppppp.ssssssssss

ヘッダー

ヘッダーにはアルゴリズムとトークンタイプが含まれます。

kid は必須です。

D1 バックエンドはこれを使用して適切な公開鍵を選択します。

ヘッダーの例:

ペイロード

ペイロードは次のクレームをサポートします:

クレーム
必須
説明

iss

文字列

はい

D1 のオンボーディング中に提供された issuerId を使用します。D1 はこれを使ってプロビジョニング済みの公開鍵を検索します。アグリゲーターモデルを使用する場合は、これを aggregatorId に設定してください。

sub

文字列

はい

issuerId を使用します。(アグリゲーターの場合、この値は aggregatorId と同じです。)

exp

整数

はい

UTC のエポック秒での有効期限。最大値は現在時刻 + 15 分です。

aud

文字列

いいえ

D1 認可サーバーのベース URL。対象環境の URL を使用してください: Sandbox = https://api.d1-stg.thalescloud.io、本番 = https://api.d1.thalescloud.io.

D1 は最大有効期限を強制します。もし exp 許可されたウィンドウを超えると、D1はリクエストを拒否します。

ペイロードの例:

署名

署名は、Base64URLでエンコードされたヘッダーとペイロードに対して計算されます。

3つの JWT 部分はドット(.).

鍵ペアを生成します

OpenSSL を使用して P-256 鍵ペアを生成します:

イシュア側のバックエンド用の秘密鍵を生成します。

環境内で安全に保管してください。

D1 バックエンドに配置する公開鍵を生成します:

イシュア側のバックエンドは、JWT に署名するために秘密鍵を使用します。

D1 バックエンドは公開鍵(およびその kid)JWT署名を検証するために。

公開鍵を共有し、 kid D1オンボーディング中にThalesのデリバリーチームとともに。

JWTを生成する

JWTを生成する方法はたくさんあります。

この例では次を使用します: jose Node.jsライブラリ:

JWT出力例:

最終更新

役に立ちましたか?