Choisir une organisation
POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization · appelé depuis l'hôte de connexion de l'environnement
Lie à la demande d'autorisation l'organisation que l'utilisateur a choisie sur le sélecteur hébergé. Le serveur vérifie de nouveau le choix. Il n'est accepté que si organization_id figure dans la liste de Lister les organisations au choix pour cet utilisateur et cette application au moment de l'appel. Toute autre valeur reçoit 422 validation_failed et rien n'est lié, y compris dans les cas suivants :
- une organisation d'un autre utilisateur
- une organisation d'un autre environnement
- une organisation où l'application n'est pas activée
- un identifiant mal formé
En cas de succès, l'organisation est écrite une seule fois dans la demande et ne peut plus changer. La réponse contient continue_url, l'URL de reprise du point de terminaison d'autorisation. Le navigateur s'y rend et l'autorisation se poursuit avec l'organisation liée.
Les conditions de la demande et la réponse 404 sont les mêmes que pour la liste. Nécessite le cookie __Host-idp_session de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie 401 unauthenticated.
Requête
Paramètre de chemin :
| Paramètre | Description |
|---|---|
authorization_request_id |
La valeur authorization_request de l'URL du sélecteur (azr_…). |
En-têtes :
| En-tête | Requis | Description |
|---|---|---|
Idp-Client |
oui | Identifiant du SDK. |
Origin |
oui | Doit être exactement https://<hôte de connexion>. |
Content-Type |
oui | application/json. |
Corps :
| Champ | Type | Requis | Description |
|---|---|---|---|
organization_id |
string | oui | L'id d'une organisation listée (org_…). |
Réponse
200 OK :
| Champ | Type | Description |
|---|---|---|
continue_url |
string | Où le navigateur poursuit : l'URL de reprise du point de terminaison d'autorisation. |
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | malformed_request |
Le corps n'est pas un JSON valide. |
| 400 | unknown_field |
Le corps contient un champ autre que organization_id. |
| 401 | unauthenticated |
Aucun cookie de session valide. |
| 403 | origin_not_allowed |
Origin est absent ou incorrect. |
| 404 | not_found |
La demande est mal formée, inconnue, expirée, terminée, ouverte sur un autre hôte ou dans un autre navigateur. |
| 409 | conflict |
La demande a déjà une organisation. |
| 413 | payload_too_large |
Le corps est trop volumineux. |
| 415 | unsupported_media_type |
Content-Type n'est pas application/json. |
| 422 | validation_failed |
organization_id est absent ou ne fait pas partie des organisations listées. |
| 503 | temporarily_unavailable |
La liste des organisations n'a pas pu être lue. |
Exemple
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"}'