Aplicar un perfil predefinido de asignación de atributos

POST /v1/connections/{connection_id}/attribute-mappings:apply-profile · permiso connections:write

Reemplaza las reglas de destino fijo (correo electrónico, nombres, grupos…) de una conexión empresarial con las reglas de un perfil predefinido: entra, okta, google, ping, jumpcloud o keycloak para SAML, generic para OIDC. Las reglas user_metadata.<key> almacenadas se conservan. El atributo de sujeto de SAML no se modifica: el sujeto se configura por separado y cambiarlo dejaría huérfanas las identidades vinculadas. If-Match es obligatorio, igual que al reemplazar la lista. Aplicar un perfil que ya está aplicado no escribe nada. La escritura se audita como connection.attribute_mappings_replaced con el nombre del perfil.

Solicitud

Campo Tipo Obligatorio Descripción
connection_id path sí ID de la conexión empresarial (conn_…).
If-Match header sí El ETag de la última lectura. Si falta: 428; si está obsoleto: 412.
profile string sí entra, okta, google, ping, jumpcloud, keycloak (SAML) o generic (OIDC).

Respuesta

200 OK con la lista almacenada (véase Obtener las asignaciones de atributos) y el nuevo ETag.

Errores

HTTP código Cuándo
404 not_found La conexión no existe en este entorno o no es una conexión empresarial.
409 conflict El protocolo de la conexión no tiene asignaciones de atributos (LDAP).
412 precondition_failed If-Match no coincide con la versión actual, o la lista cambió de forma concurrente.
422 validation_failed profile falta, es desconocido o no es un perfil predefinido del protocolo de la conexión (/profile), o una regla user_metadata conservada lee un atributo del perfil con otro NameFormat (/profile, conflicts_with_stored_mappings).
428 precondition_required Falta el encabezado If-Match.
401 unauthenticated La credencial falta, no es válida o ha sido revocada.
403 insufficient_permissions La credencial no tiene el permiso requerido.
429 rate_limited Se superó el límite de frecuencia; reintente después del periodo Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente después del periodo Retry-After.

Ejemplo

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…"'