クライアント登録フロー
■ フロー概要
OAuth 2.1 準拠のクライアント登録フローを定義する。client_master.client_type = 0 を Public、client_master.client_type = 1 を Confidential、client_master.client_type = 99 を InnerClient とする。
本フローで登録可能なのは Public / Confidential のみとし、InnerClient は IdP 直轄の内部専用クライアントとしてSQL追加のみとする。
■ 登録対象
| 項目 | 内容 |
|---|---|
| client_master | クライアント本体。client_type を保持する |
| client_redirect_uri | 認可後の戻り先URIを完全一致で登録する |
| client_scope | クライアントが要求可能な scope を登録する |
| client_data_key | クライアントで利用可能な属性キーを登録する |
■ シーケンス
■ 補足
- OAuth 2.1 前提として、Public / Confidential を問わず認可要求時の PKCE を必須とする。
redirect_uriは client_redirect_uri の完全一致で検証する。scope_master.confidential_only=1の scope は Confidential Client と InnerClient のみ利用可能とし、通常の登録画面と登録APIでは Public への設定を禁止する。- Public Client は
client_secretを利用しないため、登録時は空文字または未使用値を保存する。 - Confidential Client は登録完了時に
client_secretを払い出し、POST /tokenでクライアント認証を行う。 - InnerClient は IdP 直轄の特権クライアントであり、通常の外部登録フローでは作成しない。