Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.

OAuth2.0 アクセストークンを取得する

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

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

D1 API を呼び出すには D1 アクセストークンを使用してください。

イシュアのバックエンドと 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 はドットで区切られた 3 つの部分で構成されます(.):

  • ヘッダー

  • ペイロード

  • 署名

例: 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 の出力例:

最終更新

役に立ちましたか?