Organisation auswählen
POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization · wird vom Anmeldehost der Umgebung aufgerufen
Bindet die Organisation, die der Benutzer im gehosteten Auswahlfenster gewählt hat, an die Autorisierungsanfrage. Der Server prüft die Wahl erneut. Sie wird nur angenommen, wenn organization_id zum Zeitpunkt des Aufrufs in der Liste aus Auswählbare Organisationen auflisten für diesen Benutzer und diese Anwendung enthalten ist. Jeder andere Wert erhält 422 validation_failed, und es wird nichts gebunden, auch in den folgenden Fällen:
- die Organisation eines anderen Benutzers
- eine Organisation aus einer anderen Umgebung
- eine Organisation, in der die Anwendung nicht aktiviert ist
- eine fehlerhafte Kennung
Bei Erfolg wird die Organisation einmalig in die Anfrage geschrieben und kann nicht mehr geändert werden. Die Antwort enthält continue_url, die Fortsetzungs-URL des Autorisierungsendpunkts. Der Browser geht dorthin, und die Autorisierung wird mit gebundener Organisation fortgesetzt.
Die Bedingungen der Anfrage und die 404-Antwort sind dieselben wie bei der Liste. Erfordert das Cookie __Host-idp_session des authentifizierten Benutzers; fehlt das Cookie, ist es abgelaufen oder widerrufen, wird 401 unauthenticated zurückgegeben.
Anfrage
Pfadparameter:
| Parameter | Beschreibung |
|---|---|
authorization_request_id |
Der Wert authorization_request der URL des Auswahlfensters (azr_…). |
Header:
| Header | Erforderlich | Beschreibung |
|---|---|---|
Idp-Client |
ja | SDK-Kennung. |
Origin |
ja | Muss genau https://<Anmeldehost> sein. |
Content-Type |
ja | application/json. |
Body:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
organization_id |
string | ja | Die id einer aufgelisteten Organisation (org_…). |
Antwort
200 OK:
| Feld | Typ | Beschreibung |
|---|---|---|
continue_url |
string | Wohin der Browser weitergeht: die Fortsetzungs-URL des Autorisierungsendpunkts. |
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
Fehler
| Status | Code | Wann |
|---|---|---|
| 400 | malformed_request |
Der Body ist kein gültiges JSON. |
| 400 | unknown_field |
Der Body enthält ein anderes Feld als organization_id. |
| 401 | unauthenticated |
Kein gültiges Sitzungs-Cookie. |
| 403 | origin_not_allowed |
Origin fehlt oder ist falsch. |
| 404 | not_found |
Die Anfrage ist fehlerhaft, unbekannt, abgelaufen, abgeschlossen, gehört zu einem anderen Host oder zu einem anderen Browser. |
| 409 | conflict |
Die Anfrage hat bereits eine Organisation. |
| 413 | payload_too_large |
Der Body ist zu groß. |
| 415 | unsupported_media_type |
Content-Type ist nicht application/json. |
| 422 | validation_failed |
organization_id fehlt oder ist nicht eine der aufgelisteten Organisationen. |
| 503 | temporarily_unavailable |
Die Organisationsliste konnte nicht gelesen werden. |
Beispiel
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"}'