
# Scegli un'organizzazione

`POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization` · chiamato dall'host di accesso dell'ambiente

Associa alla richiesta di autorizzazione l'organizzazione che l'utente ha scelto nel selettore ospitato. Il server verifica di nuovo la scelta. Viene accettata solo se `organization_id` è presente nell'elenco di [Elenca le organizzazioni tra cui scegliere](/docs/api/fapi/authorization-requests/organizations/list) per questo utente e questa applicazione al momento della chiamata. Qualsiasi altro valore riceve `422 validation_failed` e non viene associato nulla, inclusi i casi seguenti:

- un'organizzazione di un altro utente
- un'organizzazione di un altro ambiente
- un'organizzazione in cui l'applicazione non è abilitata
- un identificativo malformato

In caso di successo, l'organizzazione viene scritta nella richiesta una sola volta e non può più cambiare. La risposta contiene `continue_url`, l'URL di ripresa dell'endpoint di autorizzazione. Il browser vi si reindirizza e l'autorizzazione prosegue con l'organizzazione associata.

Le condizioni della richiesta e la risposta `404` sono le stesse dell'elenco. Richiede il cookie `__Host-idp_session` dell'utente autenticato; se il cookie manca, è scaduto o è stato revocato, restituisce `401 unauthenticated`.

## Richiesta

Parametro di percorso:

| Parametro | Descrizione |
| --- | --- |
| `authorization_request_id` | Il valore `authorization_request` dell'URL del selettore (`azr_…`). |

Intestazioni:

| Intestazione | Obbligatoria | Descrizione |
| --- | --- | --- |
| `Idp-Client` | sì | Identificativo dell'SDK. |
| `Origin` | sì | Deve essere esattamente `https://<host di accesso>`. |
| `Content-Type` | sì | `application/json`. |

Corpo:

| Campo | Tipo | Obbligatorio | Descrizione |
| --- | --- | --- | --- |
| `organization_id` | string | sì | L'`id` di un'organizzazione elencata (`org_…`). |

## Risposta

`200 OK`:

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `continue_url` | string | Dove prosegue il browser: l'URL di ripresa dell'endpoint di autorizzazione. |

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

## Errori

| Stato | Codice | Quando |
| --- | --- | --- |
| 400 | `malformed_request` | Il corpo non è un JSON valido. |
| 400 | `unknown_field` | Il corpo contiene un campo diverso da `organization_id`. |
| 401 | `unauthenticated` | Nessun cookie di sessione valido. |
| 403 | `origin_not_allowed` | `Origin` manca o è errato. |
| 404 | `not_found` | La richiesta è malformata, sconosciuta, scaduta, conclusa, di un altro host o di un altro browser. |
| 409 | `conflict` | La richiesta ha già un'organizzazione. |
| 413 | `payload_too_large` | Il corpo è troppo grande. |
| 415 | `unsupported_media_type` | `Content-Type` non è `application/json`. |
| 422 | `validation_failed` | `organization_id` manca o non è una delle organizzazioni elencate. |
| 503 | `temporarily_unavailable` | Non è stato possibile leggere l'elenco delle organizzazioni. |

## Esempio

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