Appliquer un profil de correspondance d'attributs prédéfini
POST /v1/connections/{connection_id}/attribute-mappings:apply-profile · autorisation connections:write
Remplace les règles à cible fixe (e-mail, noms, groupes…) d'une connexion d'entreprise par les règles d'un profil prédéfini : entra, okta, google, ping, jumpcloud ou keycloak pour SAML, generic pour OIDC. Les règles user_metadata.<key> stockées sont conservées. L'attribut de sujet SAML n'est pas modifié : le sujet est configuré séparément, et le changer rendrait orphelines les identités liées. If-Match est requis, comme pour le remplacement de la liste. Appliquer un profil déjà appliqué n'écrit rien. L'écriture est journalisée sous connection.attribute_mappings_replaced avec le nom du profil.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
connection_id |
path | oui | Identifiant de la connexion d'entreprise (conn_…). |
If-Match |
header | oui | L'ETag de la dernière lecture. Absent : 428 ; obsolète : 412. |
profile |
string | oui | entra, okta, google, ping, jumpcloud, keycloak (SAML) ou generic (OIDC). |
Réponse
200 OK avec la liste enregistrée (voir Récupérer les correspondances d'attributs) et le nouvel ETag.
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 404 | not_found |
La connexion n'existe pas dans cet environnement ou n'est pas une connexion d'entreprise. |
| 409 | conflict |
Le protocole de la connexion ne prend pas en charge les correspondances d'attributs (LDAP). |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle, ou la liste a été modifiée simultanément. |
| 422 | validation_failed |
profile est absent, inconnu ou n'est pas un profil prédéfini du protocole de la connexion (/profile), ou une règle user_metadata conservée lit un attribut du profil avec un autre NameFormat (/profile, conflicts_with_stored_mappings). |
| 428 | precondition_required |
L'en-tête If-Match est absent. |
| 401 | unauthenticated |
L'identifiant d'accès est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant d'accès ne dispose pas de l'autorisation requise. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la durée indiquée par Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la durée indiquée par Retry-After. |
Exemple
curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/attribute-mappings:apply-profile" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H 'If-Match: "6f1c…"' \
-d '{"profile":"entra"}'
keenauth connections attribute-mappings apply-profile conn_01j9xp6q0r1s5t7v9w1x3y5z7b --profile entra --if-match '"6f1c…"'