OIDC 1.0トークン交換処理
OIDC 1.0で定められた認可やトークン更新処理を行う(各種トークンを返却する)
📬 リクエスト
Section titled “📬 リクエスト”POST {token_endpoint}
リクエストヘッダ
Section titled “リクエストヘッダ”| キー | 値 |
|---|---|
| Content-Type | application/x-www-form-urlencoded |
リクエストボディ(grant_type: authorization_code)
Section titled “リクエストボディ(grant_type: authorization_code)”| キー | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| grant_type | authorization_code(固定値) | YES | 付与タイプ | authorization_code |
| client_id | 文字列 | YES | OAuth 2.0クライアント識別子 | client-00000001 |
| client_secret | 文字列 | YES | OAuth 2.0クライアントシークレット | BrRsFFh41tozvc4L1-F8PnqtcSYZEONb_g-roJjwBfly3bYHq2_ro8gw33EBKSEU3ntlKtUKeOZaCZxUefEoUKWNuprBTBJYkcbMPHGvSrma-2RNuUtq9hoNiYipkcji |
| code | 文字列 | YES | 認可処理でクライアントが取得した認可コード | xJ1pprG9aRO8WYesHQXc7t7jBb8XBhMjbHcw8s1YT_zrSKxWdZFs-qKv51l0dK9ufodw0RLQkIZerPGEcl5GFiaFR8vN0nSKh8UgSvdU4YbIKxydQgOcaTHWA3i10EqZ |
| redirect_uri | 文字列 | YES | 認可コードが返却されたリダイレクションURL | https://sample-app.upward.com/callback |
| code_verifier | 文字列 | YES | PKCEで使用するランダムな文字列 | dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk |
リクエストボディ(grant_type: refresh_token)
Section titled “リクエストボディ(grant_type: refresh_token)”| キー | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| grant_type | refresh_token(固定値) | YES | 付与タイプ | refresh_token |
| client_id | 文字列 | YES | OAuth 2.0クライアント識別子 | client-00000001 |
| client_secret | 文字列 | YES | OAuth 2.0クライアントシークレット | BrRsFFh41tozvc4L1-F8PnqtcSYZEONb_g-roJjwBfly3bYHq2_ro8gw33EBKSEU3ntlKtUKeOZaCZxUefEoUKWNuprBTBJYkcbMPHGvSrma-2RNuUtq9hoNiYipkcji |
| refresh_token | 文字列 | YES | クライアントが取得したリフレッシュトークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTg3OTQ5NjgsImV4cCI6MTc3NDM0Njk2OCwiYXVkIjoiaHR0cHM6Ly9hcHAudXB3YXJkLmpwIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiMjMyODEwY2YtNzdjMS00ZWI4LWI3YjItMTZjZTFlNTE0ZjA5In0.OYPKuLKBoAuLYwzrYPwp9U2_zLO_hU46SD2n7bZFuIc |
✨ 成功レスポンス
Section titled “✨ 成功レスポンス”ステータスコード
Section titled “ステータスコード”200 : OK
レスポンスヘッダ
Section titled “レスポンスヘッダ”| キー | 値 |
|---|---|
| Content-Type | application/json |
レスポンスボディ(grant_type: authorization_code)
Section titled “レスポンスボディ(grant_type: authorization_code)”| フィールド | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| token_type | Bearer(固定値) | YES | トークンタイプ | Bearer |
| access_token | 文字列 | YES | アクセストークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTg3OTQ5NjgsImV4cCI6MTc1OTM5NDkwOCwiYXVkIjoiaHR0cHM6Ly9hcHAudXB3YXJkLmpwIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiMjMyODEwY2YtNzdjMS00ZWI4LWI3YjItMTZjZTFlNTE0ZjA5In0.wRRaNDylg65bSayu5QHmWaYe2CQ_Gn7bgeKXilFgvL0 |
| id_token | 文字列 | YES | IDトークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFraXJhLW9zaGlyb0BleGFtcGxlLmNvbSIsImlhdCI6MTc1ODc5NDk2OCwiZXhwIjoxNzU5Mzk0OTA4LCJhdWQiOiJodHRwczovL2FwcC51cHdhcmQuanAiLCJpc3MiOiJodHRwczovL2F1dGguZXhhbXBsZS5jb20iLCJzdWIiOiIyMzI4MTBjZi03N2MxLTRlYjgtYjdiMi0xNmNlMWU1MTRmMDkifQ.HNYapda4s4dRZQHIcw-wxFVbtcLLLO0F7Pgnhk1LCxQ |
| refresh_token | 文字列 | YES | リフレッシュトークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTg3OTQ5NjgsImV4cCI6MTc3NDM0Njk2OCwiYXVkIjoiaHR0cHM6Ly9hcHAudXB3YXJkLmpwIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiMjMyODEwY2YtNzdjMS00ZWI4LWI3YjItMTZjZTFlNTE0ZjA5In0.OYPKuLKBoAuLYwzrYPwp9U2_zLO_hU46SD2n7bZFuIc |
| expires_in | 整数値 | YES | アクセストークンの有効期限(秒) | 600 |
レスポンスボディのサンプル
Section titled “レスポンスボディのサンプル”レスポンスボディ(grant_type: refresh_token)
Section titled “レスポンスボディ(grant_type: refresh_token)”| フィールド | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| token_type | Bearer(固定値) | YES | トークンタイプ | Bearer |
| access_token | 文字列 | YES | アクセストークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTg3OTQ5NjgsImV4cCI6MTc1OTM5NDkwOCwiYXVkIjoiaHR0cHM6Ly9hcHAudXB3YXJkLmpwIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiMjMyODEwY2YtNzdjMS00ZWI4LWI3YjItMTZjZTFlNTE0ZjA5In0.wRRaNDylg65bSayu5QHmWaYe2CQ_Gn7bgeKXilFgvL0 |
| refresh_token | 文字列 | YES | リフレッシュトークン | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NTg3OTQ5NjgsImV4cCI6MTc3NDM0Njk2OCwiYXVkIjoiaHR0cHM6Ly9hcHAudXB3YXJkLmpwIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLmV4YW1wbGUuY29tIiwic3ViIjoiMjMyODEwY2YtNzdjMS00ZWI4LWI3YjItMTZjZTFlNTE0ZjA5In0.OYPKuLKBoAuLYwzrYPwp9U2_zLO_hU46SD2n7bZFuIc |
| expires_in | 整数値 | YES | アクセストークンの有効期限(秒) | 600 |
レスポンスボディのサンプル
Section titled “レスポンスボディのサンプル”💬 具体的な要求事項
Section titled “💬 具体的な要求事項”- OIDC 1.0トークンエンドポイント仕様(OAuth 2.0の拡張)、および、PKCEの仕様に従い実装してください
📚 参考資料
Section titled “📚 参考資料”- OpenID Connect Core 1.0
- The OAuth 2.0 Authorization Framework
- Proof Key for Code Exchange by OAuth Public Clients