Lister les organisations au choix
GET /fapi/v1/authorization-requests/{authorization_request_id}/organizations · appelé depuis l'hôte de connexion de l'environnement
Appelé par le sélecteur d'organisation hébergé à /u/organization. Lorsque organization_usage d'une application vaut require et que la demande d'autorisation ne nomme aucune organization, le point de terminaison d'autorisation recherche les organisations de l'utilisateur une fois celui-ci connecté. S'il n'en a aucune, la demande se termine par access_denied avec error_description=no_organization_membership. S'il n'en a qu'une, cette organisation est liée sans afficher d'écran. S'il en a deux ou plus, le navigateur passe au sélecteur, qui lit cette liste.
La liste contient les organisations où l'utilisateur a une adhésion active, où l'organisation est active et où l'application est activée. Elle est triée par slug et contient au plus 100 entrées ; truncated: true signifie qu'il en existe davantage. L'organisation choisie en dernier dans cette session vient en premier et porte last_used: true. name est une donnée client dont les caractères de contrôle et de direction ont été retirés. Lorsqu'une organisation n'a pas de nom, name est son slug. Lire la liste ne lie rien.
La demande d'autorisation doit être en attente, ouverte sur cet hôte de connexion et accompagnée du cookie de liaison défini par le point de terminaison d'autorisation dans ce navigateur. Les cas suivants reçoivent tous la même réponse 404 not_found :
- une demande mal formée ou inconnue
- une demande expirée ou terminée
- une demande ouverte sur un autre hôte
- une demande ouverte dans un autre navigateur
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. |
Pas de corps.
Réponse
200 OK :
| Champ | Type | Description |
|---|---|---|
data[].id |
string | Identifiant de l'organisation (org_…). |
data[].slug |
string | Slug de l'organisation. |
data[].name |
string | Nom d'affichage, en texte brut. |
data[].last_used |
boolean | Indique s'il s'agit de l'organisation choisie en dernier dans cette session. |
truncated |
boolean | Indique si l'utilisateur possède davantage d'organisations éligibles que celles listées. |
{
"data": [
{"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w", "slug": "acme", "name": "Acme", "last_used": false},
{"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9x", "slug": "globex", "name": "Globex", "last_used": false}
],
"truncated": false
}
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 401 | unauthenticated |
Aucun cookie de session valide. |
| 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. |
| 503 | temporarily_unavailable |
La liste des organisations n'a pas pu être lue. |
Exemple
curl https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w/organizations \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-b cookies.txt