
# Eine voreingestellte Attributzuordnungs-Vorlage anwenden

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

Ersetzt die Regeln mit festem Ziel (E-Mail, Namen, Gruppen …) einer Unternehmensverbindung durch die Regeln einer voreingestellten Vorlage: `entra`, `okta`, `google`, `ping`, `jumpcloud` oder `keycloak` für SAML, `generic` für OIDC. Gespeicherte Regeln `user_metadata.<key>` bleiben erhalten. Das SAML-Subjekt-Attribut wird nicht geändert: Das Subjekt wird separat konfiguriert, und eine Änderung würde verknüpfte Identitäten verwaisen lassen. `If-Match` ist erforderlich, wie beim [Ersetzen der Liste](put.md). Eine Vorlage, die bereits angewendet ist, erneut anzuwenden, schreibt nichts. Der Schreibvorgang wird als `connection.attribute_mappings_replaced` mit dem Namen der Vorlage protokolliert.

## Anfrage

| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `connection_id` | path | ja | ID der Unternehmensverbindung (`conn_…`). |
| `If-Match` | header | ja | Das `ETag` aus dem letzten Lesevorgang. Fehlt es: `428`; veraltet: `412`. |
| `profile` | string | ja | `entra`, `okta`, `google`, `ping`, `jumpcloud`, `keycloak` (SAML) oder `generic` (OIDC). |

## Antwort

`200 OK` mit der gespeicherten Liste (siehe [Attributzuordnungen abrufen](get.md)) und dem neuen `ETag`.

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 404 | `not_found` | Die Verbindung existiert in dieser Umgebung nicht oder ist keine Unternehmensverbindung. |
| 409 | `conflict` | Das Protokoll der Verbindung kennt keine Attributzuordnungen (LDAP). |
| 412 | `precondition_failed` | `If-Match` stimmt nicht mit der aktuellen Version überein, oder die Liste wurde parallel geändert. |
| 422 | `validation_failed` | `profile` fehlt, ist unbekannt oder ist keine Vorlage für das Protokoll der Verbindung (`/profile`), oder eine beibehaltene Regel `user_metadata` liest ein Vorlagenattribut mit einem anderen NameFormat (`/profile`, `conflicts_with_stored_mappings`). |
| 428 | `precondition_required` | Der Header `If-Match` fehlt. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder wurden widerrufen. |
| 403 | `insufficient_permissions` | Den Anmeldedaten fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach dem Zeitraum aus `Retry-After`. |

## Beispiel

```bash
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"}'
```

```bash
keenauth connections attribute-mappings apply-profile conn_01j9xp6q0r1s5t7v9w1x3y5z7b --profile entra --if-match '"6f1c…"'
```
