OIDC 1.0認可処理
OIDC 1.0で定められた認可処理を行う(認可コードを返却する)
このエンドポイントは、ブラウザを介したリダイレクト(HTTP GET)で実行され、状況に応じてログイン画面や同意画面を返す、または、リダイレクトする
📬 リクエスト
Section titled “📬 リクエスト”GET {authorization_endpoint}
リクエストヘッダ
Section titled “リクエストヘッダ”なし
パスパラメータ
Section titled “パスパラメータ”なし
クエリパラメータ
Section titled “クエリパラメータ”| パラメータ | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| response_type | code(固定値) | YES | 使用する認証処理フロー | code |
| client_id | 文字列 | YES | OAuth 2.0クライアント識別子 | client-00000001 |
| redirect_uri | 文字列 | YES | 認可コードが返却されるリダイレクションURL | https://sample-app.upward.com/callback |
| scope | openid profile email offline_access(固定値) | YES | クライアントが要求するアクセス範囲 | openid profile email offline_access |
| state | 文字列 | YES | CSRF攻撃防止のために使用するランダムな文字列 | WVwJX4KDmLTs8piK |
| nonce | 文字列 | YES | リプレイアタック対策のために使用する推測不可能な文字列 | cma33PzyycBFb3LA |
| code_challenge | 文字列 | YES | 認可コード横取り攻撃防止のために使用するハッシュ文字列 | E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM |
| code_challenge_method | S256(固定値) | YES | PKCEで使用するアルゴリズム | S256 |
✨ 成功レスポンス
Section titled “✨ 成功レスポンス”ステータスコード
Section titled “ステータスコード”302 : Found
or
直接リダイレクト
レスポンスヘッダ
Section titled “レスポンスヘッダ”| キー | 値 |
|---|---|
| Content-Type | text/html |
レスポンスクエリ
Section titled “レスポンスクエリ”| フィールド | 形式 | 必須 | 説明 | 値の例 |
|---|---|---|---|---|
| code | 文字列 | YES | 認可コード | xJ1pprG9aRO8WYesHQXc7t7jBb8XBhMjbHcw8s1YT_zrSKxWdZFs-qKv51l0dK9ufodw0RLQkIZerPGEcl5GFiaFR8vN0nSKh8UgSvdU4YbIKxydQgOcaTHWA3i10EqZ |
| state | 文字列 | YES | リクエストで受け取ったstateパラメータの値 | WVwJX4KDmLTs8piK |
レスポンスのサンプル
Section titled “レスポンスのサンプル”💬 具体的な要求事項
Section titled “💬 具体的な要求事項”- OIDC 1.0トークンエンドポイント仕様(OAuth 2.0の拡張)、および、PKCEの仕様に従い実装してください
- 処理パターン
- 有効なユーザーセッションが存在しない場合: ログイン処理を経由
- パラメータ検証成功時: 「redirect_uri」へ成功リダイレクト(w/ code、state)
- パラメータ検証失敗時
- 「redirect_uri」以外のパラメータに不備がある場合: 「redirect_uri」へエラーリダイレクト(w/ error, error_description, state)
- 「redirect_uri」パラメータに不備がある場合: エラー内容を画面に表示(オープンリダイレクト攻撃防止の観点で、リダイレクトを行わない)
- ユーザーアクセス拒否時: 「redirect_uri」へエラーリダイレクト(w/ error, error_description, state)
その他(補足等)
Section titled “その他(補足等)”- UPWARDからのリクエストは、ブラウザを介したリダイレクト(HTTP GET)で実行されます。HTTP POSTメソッドを考慮した実装は不要です。
- UPWARDからのリクエストは、クエリパラメータに記載されたパラメータのみ送信します。それ以外のパラメータを考慮した実装は不要です。
📚 参考資料
Section titled “📚 参考資料”- OpenID Connect Core 1.0
- The OAuth 2.0 Authorization Framework
- Proof Key for Code Exchange by OAuth Public Clients