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 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. |
{"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
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"}'