
# Eine externe Gruppe einer Rolle zuordnen

`POST /v1/connections/{connection_id}/role-mappings` · Berechtigung `connections:write`

Ordnet einen vom Identity Provider gesendeten Gruppenwert (`external_group_key`, exakt verglichen) einer Rolle zu; bei der Anmeldung erhält die Mitgliedschaft die Rolle mit der Quelle `idp_mapping`. Bei einer Organisationsverbindung muss die Rolle eine Umgebungsrolle oder eine Rolle dieser Organisation sein. Die Zuordnung zu einer privilegierten Rolle erfordert zusätzlich `roles:write`, und die Zuordnung wird genehmigt angelegt. Höchstens 500 Zuordnungen je Verbindung. Der Schreibvorgang wird als `role_mapping.created` protokolliert; der Gruppenwert wird nicht im Audit-Protokoll gespeichert.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `connection_id` | path | ja | Enterprise-Verbindungs-ID (`conn_…`). |
| `external_group_key` | string | ja | Gruppenwert aus dem IdP, bis zu 1024 Zeichen, ohne Steuerzeichen. |
| `role_id` | string | ja | Rollen-ID (`rol_…`). |

## Antwort

`201 Created` mit der Zuordnung.

```json
{
  "id": "rmp_01j9xw0x4y5z9a1b3c5d7e9f1h",
  "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
  "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "external_group_key": "cn=engineering,ou=groups,dc=example,dc=com",
  "role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
  "role_privileged": false,
  "approved_at": null,
  "created_at": "2026-10-12T09:31:00.123456Z"
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 404 | `not_found` | Die Verbindung existiert in dieser Umgebung nicht oder ist keine Enterprise-Verbindung. |
| 403 | `privileged_role_mapping_forbidden` | Die Rolle ist privilegiert und die Anmeldeinformation hat kein `roles:write`. |
| 409 | `conflict` | Der Gruppenwert ist auf dieser Verbindung bereits zugeordnet. |
| 409 | `role_mapping_limit_reached` | Die Verbindung hat bereits 500 Zuordnungen. |
| 422 | `validation_failed` | `external_group_key` oder `role_id` fehlt oder ist ungültig, oder die Rolle liegt außerhalb des Geltungsbereichs der Verbindung. |
| 401 | `unauthenticated` | Die Anmeldeinformation fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldeinformation hat nicht die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; nach der Dauer von `Retry-After` erneut versuchen. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; nach der Dauer von `Retry-After` erneut versuchen. |

## Beispiel

```bash
curl -i -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/role-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"external_group_key":"cn=engineering,ou=groups,dc=example,dc=com","role_id":"rol_01j9xr7s1t2w6x8y0z2a4b6c8e"}'
```
