組織を選択
POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization · 環境のサインインホストから呼び出されます
ホスト型の組織選択画面でユーザーが選んだ組織を、認可リクエストにバインドします。サーバーは選択内容を再度検証します。呼び出し時点で organization_id が、このユーザーとこのアプリケーションについて 選択可能な組織の一覧取得 の一覧に含まれる場合にのみ受け付けます。それ以外の値は 422 validation_failed となり、次の場合を含めて何もバインドされません。
- 別のユーザーの組織
- 別の環境の組織
- アプリケーションが有効になっていない組織
- 形式が不正な識別子
成功すると、組織はリクエストに一度だけ書き込まれ、以後変更できません。レスポンスには認可エンドポイントの再開 URL である continue_url が含まれます。ブラウザはその URL に移動し、バインドされた組織を使って認可が続行されます。
リクエストの条件と 404 の応答は一覧取得と同じです。認証済みユーザーの __Host-idp_session Cookie が必要です。Cookie がない、期限切れ、または失効している場合は 401 unauthenticated を返します。
リクエスト
パスパラメータ:
| パラメータ | 説明 |
|---|---|
authorization_request_id |
組織選択画面の URL の authorization_request の値(azr_…)。 |
ヘッダー:
| ヘッダー | 必須 | 説明 |
|---|---|---|
Idp-Client |
はい | SDK の識別子。 |
Origin |
はい | 正確に https://<サインインホスト> である必要があります。 |
Content-Type |
はい | application/json。 |
本文:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
organization_id |
string | はい | 一覧に含まれる組織の id(org_…)。 |
レスポンス
200 OK:
| フィールド | 型 | 説明 |
|---|---|---|
continue_url |
string | ブラウザが進む先。認可エンドポイントの再開 URL です。 |
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
エラー
| ステータス | コード | 発生条件 |
|---|---|---|
| 400 | malformed_request |
本文が有効な JSON ではない。 |
| 400 | unknown_field |
本文に organization_id 以外のフィールドがある。 |
| 401 | unauthenticated |
有効なセッション Cookie がない。 |
| 403 | origin_not_allowed |
Origin がない、または不正である。 |
| 404 | not_found |
リクエストが不正、不明、期限切れ、終了済み、別のホストのもの、または別のブラウザのものである。 |
| 409 | conflict |
リクエストに既に組織がある。 |
| 413 | payload_too_large |
本文が大きすぎる。 |
| 415 | unsupported_media_type |
Content-Type が application/json ではない。 |
| 422 | validation_failed |
organization_id がないか、一覧に含まれる組織ではない。 |
| 503 | temporarily_unavailable |
組織の一覧を読み取れなかった。 |
例
curl -X POST https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w:select-organization \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"organization_id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w"}'