認可エンドポイント

■ Endpoint

GET /authorize

Request

■ Header

Name Required Regex Description
x-auth-ui-session-mode - ^body$ body 指定時は 302 リダイレクトの代わりに JSON Body (redirect_url, session_id) を返す

■ Query

Name Required Regex Description
response_type ^code$ 認可コードフロー固定値
client_id ^[0-9]{32}$ クライアント識別子
redirect_uri ^(https://.+|http://(localhost|osolab-[A-Za-z0-9-]+-local)(:[0-9]+)?(/.*)?)$ 認可結果のリダイレクト先。通常は https、検証用途の localhost または osolab-*-local のみ http を許容
state ^.{1,255}$ CSRF対策用のクライアント状態値
scope ^[A-Za-z0-9_ ]+$ 要求するスコープの空白区切り文字列
code_challenge_method ^S256$ PKCE チャレンジ方式
code_challenge ^[A-Za-z0-9._~-]{43,128}$ PKCE コードチャレンジ
nonce ^.{1,255}$ IDトークン再生対策用ノンス

■ Body

なし

Response

■ Header

Name Description
Location リダイレクトレスポンス時のみ。ログイン画面、同意画面、または redirect_uri
Set-Cookie 認可セッション発行時に AuthRequestSessionId を設定(互換として session_id も設定)

■ Query

Name Type Description
code String 正常時のみ認可コードを設定
state String 正常時のみリクエストのstateを設定
error String エラー時のみ
error_description String エラー時のみ。エラー内容

■ ResponseCode

Code HttpStatusCode Description
00001 400 リクエストの内容が異常です
00002 400 不正なクライアント。client_id が未登録または無効
00005 400 リダイレクトURIが不正

■ 処理概要

  • 認可リクエストを検証する
  • Auth Session が有効なら規約・scope 同意状態を確認する
  • 未ログイン時は認可セッションを発行し、Set-CookieAuthRequestSessionId(互換で session_id)を払い出して GET /login に遷移させる
  • Portal UI 方式では認可セッションIDを URL query に付与せず、Cookieで引き継ぐ
  • 同意済みなら認可コードを発行して redirect_uri へリダイレクトする
  • 未同意なら規約同意画面に遷移させる
  • 検証エラー時はJSON Body付きで400を返却する

results matching ""

    No results matching ""