
# Attributzuordnungen einer Verbindung abrufen

`GET /v1/connections/{connection_id}/attribute-mappings` · Berechtigung `connections:read`

Gibt die Attributzuordnungsregeln einer Unternehmensverbindung (SAML oder OIDC) zurück, sortiert nach Ziel. Jede Regel ordnet ein Attribut oder einen Claim, das der Identitätsanbieter sendet (`source_name`), einem Benutzerfeld (`target`) zu. Der Header `ETag` enthält die Version der Liste; senden Sie ihn als `If-Match`, wenn Sie die Liste ersetzen oder ein Voreinstellungsprofil anwenden. Eine Verbindung ohne gespeicherte Regeln liefert eine leere Liste: Bei der Anmeldung gilt der Standard der Vorlage (das Profil `generic` für OIDC; bei SAML wird nichts zugeordnet). Lesezugriffe werden nicht protokolliert.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `connection_id` | Pfad | ja | ID der Unternehmensverbindung (`conn_…`). |

## Antwort

`200 OK` mit der Liste und einem `ETag`.

```json
{
  "attribute_mappings": [
    {
      "target": "email",
      "source_name": "email",
      "source_name_format": null,
      "overwrite": "always",
      "profile": "okta"
    },
    {
      "target": "user_metadata.department",
      "source_name": "department",
      "source_name_format": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
      "overwrite": "if_empty",
      "profile": "generic"
    }
  ]
}
```

| Feld | Beschreibung |
|---|---|
| `target` | `email`, `given_name`, `family_name`, `name`, `locale`, `zoneinfo`, `phone`, `groups` oder `user_metadata.<key>`. |
| `source_name` | SAML-Attribut `Name` oder OIDC-Claim-Name (gepunkteter Pfad, Tiefe ≤ 3). |
| `source_name_format` | SAML-`NameFormat`, mit dem das Attribut gelesen wird; `null` gleicht nur nach Name ab. |
| `overwrite` | `always` (bei jeder Anmeldung), `if_empty` (nur wenn das Feld leer ist) oder `never` (nur bei der Erstellung). |
| `profile` | Voreinstellung, aus der die Regel stammt; `generic` für manuell geschriebene Regeln. |

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 404 | `not_found` | Die Verbindung existiert in dieser Umgebung nicht oder ist keine Unternehmensverbindung. |
| 401 | `unauthenticated` | Das Zugangsdatum fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Dem Zugangsdatum fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Zeit aus `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Zeit aus `Retry-After`. |

## Beispiel

```bash
curl -i "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/attribute-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections attribute-mappings get conn_01j9xp6q0r1s5t7v9w1x3y5z7b
```
