xID Lite API Doc
ガイド
API仕様よくある質問リリースノート
ガイド
API仕様よくある質問リリースノート
  1. APIの利用を開始する
  • xID Lite for Developersへようこそ
  • APIの利用を開始する
    • クライアント統合要件: Private Key JWT
    • 認可クライアントを取得する
    • 検証環境を利用する
    • アクセストークンを取得する
  1. APIの利用を開始する

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

利用者の access_tokenを取得することができます。access_tokenは、xID Liteの全てのAPIへのリクエスト時に必要となります。
この記事ではaccess_tokenを取得するまでの流れを説明します。

JWTアサーションの構築と署名#

各トークンリクエストの前に、プライベートキーで署名されたJWTアサーションを構築します。

JWTヘッダー#

{
  "alg": "RS256",
  "kid": "my-key-2026-03",
  "typ": "JWT"
}
フィールド値
alg登録された署名アルゴリズム (xIDに登録したアルゴリズムと一致する必要があります)
kidJWKセットのキーと一致するキーID
typJWT

JWTペイロード#

{
  "iss": "testClient",
  "sub": "testClient",
  "aud": "https://hydra.x-id.io/oauth2/token",
  "exp": 1741234800,
  "iat": 1741234500,
  "jti": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
クレーム必須説明
iss✓あなたの client_id (xIDに登録されたものと完全に一致すること)
sub✓あなたの client_id (iss と同じ)
aud✓xIDから提供されたトークンエンドポイントURL。完全に一致する必要があります。
exp✓有効期限 (Unixタイムスタンプ)。現在時刻から5分以内である必要があります。
iat✓発行日時 (Unixタイムスタンプ)。
jti✓このアサーションの一意の識別子 — UUIDを使用してください。JTIを再利用しないでください。
exp は iat から300秒以上未来の値を設定してはいけません。 有効期間の長いアサーションは拒否されます。

署名#

登録されたアルゴリズムとプライベートキーを使用してJWTに署名します。ほとんどの言語/ライブラリでは、これは単一の関数呼び出しで行われます:
Go
Python
JavaScript

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

JWTアサーションを使用して、トークンエンドポイントに POST リクエストを送信します:
POST /oauth2/token HTTP/1.1
Host: hydra.x-id.io
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id=testClient
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsImtpZCI6Im15LWtleS0yMDI2LTAzIiwidHlwIjoiSldUIn0...
&scope=cfjpki
パラメータ値
grant_typeclient_credentials (リテラル)
client_id発行されたクライアント情報登録されたあなたの client_id
client_assertion_typeurn:ietf:params:oauth:client-assertion-type:jwt-bearer (リテラル)
client_assertionステップ3で構築した署名付きJWT
scopeクライアント発行時にご指定いただいた scope です。項目間のスペースはURLエンコードした文字列(%20)に置き換えてください。 例: cfjpki

アクセストークンの取得例#

成功時のレスポンス#

{
  "access_token": "ory_at_ZXhhbXBsZS1hY2Nlc3MtdG9rZW4...",
  "token_type": "bearer",
  "expires_in": 3600,
  "scope": "cfjpki"
}
フィールド説明
access_token不透明な(Opaque)アクセストークン (形式: ory_at_...)。これをすべてのAPI呼び出しで Bearer として使用します。
expires_in秒単位の有効期間 (3600 = 1時間)。有効期限が切れるまでトークンをキャッシュして再利用してください。リクエストごとに新しいトークンを取得しないでください。

エラーレスポンス#

HTTP ステータスエラー原因
401invalid_clientJWTの署名が無効、アルゴリズムが間違っている、JWKセットにキーが見つからない、または client_id が一致しない
401invalid_clientJWTアサーションの期限切れ (exp が過去)、または jti の再利用が検出された
400invalid_request必須パラメータが欠落している
400invalid_scope要求されたスコープがこのクライアントに登録されていない

ここまでのステップで、access_tokenが獲得できました。
access_tokenをリクエストヘッダ Authorization: Bearer {access_token}として含めることで、各APIエンドポイントの利用が可能になります。
更新日時 2026-08-17 02:31:30
前へ
検証環境を利用する
Built with