Elegir una organización
POST /fapi/v1/authorization-requests/{authorization_request_id}:select-organization · llamado desde el host de inicio de sesión del entorno
Vincula a la solicitud de autorización la organización que el usuario eligió en el selector alojado. El servidor vuelve a comprobar la elección. Solo se acepta si organization_id figura en la lista de Listar las organizaciones entre las que elegir para este usuario y esta aplicación en el momento de la llamada. Cualquier otro valor recibe 422 validation_failed y no se vincula nada, incluidos los casos siguientes:
- una organización de otro usuario
- una organización de otro entorno
- una organización en la que la aplicación no está habilitada
- un identificador mal formado
Si tiene éxito, la organización se escribe en la solicitud una sola vez y no puede cambiar. La respuesta incluye continue_url, la URL de reanudación del endpoint de autorización. El navegador va a esa URL y la autorización continúa con la organización vinculada.
Las condiciones de la solicitud y la respuesta 404 son las mismas que para la lista. Requiere la cookie __Host-idp_session del usuario autenticado; si la cookie falta, ha caducado o ha sido revocada, devuelve 401 unauthenticated.
Solicitud
Parámetro de ruta:
| Parámetro | Descripción |
|---|---|
authorization_request_id |
El valor authorization_request de la URL del selector (azr_…). |
Encabezados:
| Encabezado | Obligatorio | Descripción |
|---|---|---|
Idp-Client |
sí | Identificador del SDK. |
Origin |
sí | Debe ser exactamente https://<host de inicio de sesión>. |
Content-Type |
sí | application/json. |
Cuerpo:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
organization_id |
string | sí | El id de una organización listada (org_…). |
Respuesta
200 OK:
| Campo | Tipo | Descripción |
|---|---|---|
continue_url |
string | Adonde continúa el navegador: la URL de reanudación del endpoint de autorización. |
{"continue_url": "/oauth2/authorize/resume?authorization_request=azr_01jbz6x8kq3m2n4p5r6s7t8v9w"}
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | malformed_request |
El cuerpo no es un JSON válido. |
| 400 | unknown_field |
El cuerpo tiene un campo distinto de organization_id. |
| 401 | unauthenticated |
No hay una cookie de sesión válida. |
| 403 | origin_not_allowed |
Origin falta o es incorrecto. |
| 404 | not_found |
La solicitud está mal formada, es desconocida, ha caducado, ha finalizado, o es de otro host u otro navegador. |
| 409 | conflict |
La solicitud ya tiene una organización. |
| 413 | payload_too_large |
El cuerpo es demasiado grande. |
| 415 | unsupported_media_type |
Content-Type no es application/json. |
| 422 | validation_failed |
organization_id falta o no es una de las organizaciones listadas. |
| 503 | temporarily_unavailable |
No se pudo leer la lista de organizaciones. |
Ejemplo
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"}'