
# 조직 선택

`POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization` · 환경의 로그인 호스트에서 호출됩니다

호스팅 선택기에서 사용자가 고른 조직을 인가 요청에 바인딩합니다. 서버는 선택을 다시 검사합니다. 호출 시점에 `organization_id`가 이 사용자와 이 애플리케이션에 대해 [선택할 수 있는 조직 목록 조회](/docs/api/fapi/authorization-requests/organizations/list)의 목록에 있을 때만 받아들입니다. 그 밖의 값은 `422 validation_failed`를 받으며, 다음 경우를 포함해 아무것도 바인딩되지 않습니다:

- 다른 사용자의 조직
- 다른 환경의 조직
- 애플리케이션이 활성화되지 않은 조직
- 형식이 잘못된 식별자

성공하면 조직은 요청에 한 번 기록되며 이후 바꿀 수 없습니다. 응답에는 인가 엔드포인트의 재개 URL인 `continue_url`이 포함됩니다. 브라우저는 그곳으로 이동하고, 인가는 바인딩된 조직과 함께 계속됩니다.

요청 조건과 `404` 응답은 목록 조회와 같습니다. 인증된 사용자의 `__Host-idp_session` 쿠키가 필요합니다. 쿠키가 없거나, 만료되었거나, 폐기되었으면 `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. |

```json
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
```

## 오류

| 상태 | 코드 | 발생 조건 |
| --- | --- | --- |
| 400 | `malformed_request` | 본문이 올바른 JSON이 아님. |
| 400 | `unknown_field` | 본문에 `organization_id` 외의 필드가 있음. |
| 401 | `unauthenticated` | 유효한 세션 쿠키가 없음. |
| 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` | 조직 목록을 읽을 수 없음. |

## 예시

```bash
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"}'
```
