access_tokenを取得することができます。access_tokenは、xID Liteの全てのAPIへのリクエスト時に必要となります。access_tokenを取得するまでの流れを説明します。{
"alg": "RS256",
"kid": "my-key-2026-03",
"typ": "JWT"
}| フィールド | 値 |
|---|---|
alg | 登録された署名アルゴリズム (xIDに登録したアルゴリズムと一致する必要があります) |
kid | JWKセットのキーと一致するキーID |
typ | 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秒以上未来の値を設定してはいけません。 有効期間の長いアサーションは拒否されます。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_type | client_credentials (リテラル) |
client_id | 発行されたクライアント情報登録されたあなたの client_id |
client_assertion_type | urn: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 ステータス | エラー | 原因 |
|---|---|---|
401 | invalid_client | JWTの署名が無効、アルゴリズムが間違っている、JWKセットにキーが見つからない、または client_id が一致しない |
401 | invalid_client | JWTアサーションの期限切れ (exp が過去)、または jti の再利用が検出された |
400 | invalid_request | 必須パラメータが欠落している |
400 | invalid_scope | 要求されたスコープがこのクライアントに登録されていない |
access_tokenが獲得できました。access_tokenをリクエストヘッダ Authorization: Bearer {access_token}として含めることで、各APIエンドポイントの利用が可能になります。