Définir la connexion initiée par le fournisseur d'identité pour une connexion SAML
PUT /v1/connections/{connection_id}/idp-initiated · autorisation connections:write
Autorise ou désactive la connexion initiée par le fournisseur d'identité (une réponse SAML non sollicitée envoyée depuis le portail d'applications du fournisseur d'identité) pour une connexion SAML d'entreprise, et définit les applications dans lesquelles l'utilisateur peut arriver. Elle est désactivée par défaut.
- Remplacement complet : chaque requête écrit les trois champs. Un
idp_initiated_default_application_idomis et unidp_initiated_allowed_application_idsvide sont effacés. - Cibles : chaque application doit exister dans cet environnement, authentifier les utilisateurs via un navigateur (et non en machine à machine, de gestion ou via un document de métadonnées de client ID) et disposer d'un
initiate_login_uri. Après la connexion, le navigateur est redirigé vers cette adresse aveciss, et l'application lance sa propre requête d'autorisation avecstateet PKCE. - RelayState : lorsque le fournisseur d'identité envoie un RelayState, celui-ci ne sélectionne une application que s'il est identique octet par octet au
client_idde cette application, et si l'application est celle par défaut ou figure dans la liste autorisée. Le RelayState n'est jamais traité comme une URL. - Sécurité : ce paramètre accepte des réponses que vos utilisateurs n'ont pas initiées ; un utilisateur du tableau de bord doit donc effectuer une authentification renforcée récente et avoir le rôle
ownerouadmin. Le portail d'administration ne permet pas de le modifier.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
connection_id |
path | oui | Identifiant de la connexion SAML d'entreprise (conn_…). |
If-Match |
header | non | L'ETag de la connexion. Une valeur périmée échoue avec 412. |
allow_idp_initiated |
boolean | oui | Accepter les réponses SAML non sollicitées. true exige idp_initiated_default_application_id. |
idp_initiated_default_application_id |
string | null | si activé | Application (app_…) utilisée lorsque le RelayState est vide. |
idp_initiated_allowed_application_ids |
array | non | Applications (app_…) qu'un RelayState peut sélectionner ; valeurs uniques, 20 au maximum. |
Réponse
200 OK avec la connexion (voir Obtenir une connexion) et son nouvel ETag. La connexion affiche les valeurs enregistrées dans allow_idp_initiated, idp_initiated_default_application_id et idp_initiated_allowed_application_ids.
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 404 | not_found |
La connexion n'existe pas dans cet environnement. |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle. |
| 422 | validation_failed |
La connexion n'est pas une connexion SAML d'entreprise, l'application par défaut est absente alors que la fonctionnalité est activée, ou une application ne respecte pas les règles de cible ; errors[] indique le champ concerné. |
| 400 | unknown_field |
Le corps de la requête contient un champ inconnu. |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant ne dispose pas de l'autorisation requise. |
| 403 | step_up_required |
Un utilisateur du tableau de bord n'a pas effectué d'authentification renforcée récente. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la période indiquée par Retry-After. |
Exemple
curl -X PUT "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/idp-initiated" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"allow_idp_initiated":true,"idp_initiated_default_application_id":"app_01j9xp6q0r1s5t7v9w1x3y5z7c","idp_initiated_allowed_application_ids":["app_01j9xp6q0r1s5t7v9w1x3y5z7c"]}'
keenauth connections idp-initiated put conn_01j9xp6q0r1s5t7v9w1x3y5z7b --data '{"allow_idp_initiated":false}'