
# Eine Verzeichnisgruppe einer Rolle zuordnen

`POST /v1/directories/{directory_id}/role-mappings` · Berechtigung `directories:write`

Ordnet eine Gruppe eines SCIM-Verzeichnisses (`directory_group_id`) einer Rolle zu; Mitglieder der Gruppe erhalten die Rolle in der Organisation des Verzeichnisses. Die Gruppe muss zu diesem Verzeichnis gehören. Die Rolle muss eine Umgebungsrolle oder eine Rolle der Organisation des Verzeichnisses sein. Die Zuordnung zu einer privilegierten Rolle erfordert zusätzlich `roles:write`, und die Zuordnung wird bereits genehmigt angelegt. Ein Verzeichnis, das gelöscht wird, nimmt keine neuen Zuordnungen an. Höchstens 500 Zuordnungen je Verzeichnis. Der Schreibvorgang wird als `role_mapping.created` protokolliert.

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `directory_id` | path | ja | SCIM-Verzeichnis-ID (`dir_…`). |
| `directory_group_id` | string | ja | Verzeichnisgruppen-ID (`dsg_…`). |
| `role_id` | string | ja | Rollen-ID (`rol_…`). |

## Antwort

`201 Created` mit der Zuordnung.

```json
{
  "id": "rmp_01j9xw0x4y5z9a1b3c5d7e9f1h",
  "directory_id": "dir_01j9xm2n4p6q8r0s2t4v6w8y0z",
  "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "directory_group_id": "dsg_01j9xn3p5q7r9s1t3v5w7x9y1a",
  "role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
  "role_privileged": false,
  "approved_at": null,
  "created_at": "2026-10-13T09:31:00.123456Z"
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 404 | `not_found` | Das Verzeichnis existiert in dieser Umgebung nicht. |
| 403 | `privileged_role_mapping_forbidden` | Die Rolle ist privilegiert, und den Anmeldedaten fehlt `roles:write`. |
| 409 | `conflict` | Die Gruppe ist in diesem Verzeichnis bereits zugeordnet, oder das Verzeichnis wird gelöscht. |
| 409 | `role_mapping_limit_reached` | Das Verzeichnis hat bereits 500 Zuordnungen. |
| 422 | `validation_failed` | `directory_group_id` oder `role_id` fehlt oder ist ungültig, die Gruppe gehört nicht zu diesem Verzeichnis (`unknown_group`), oder die Rolle liegt außerhalb des Geltungsbereichs des Verzeichnisses. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Den Anmeldedaten fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; nach der Dauer aus `Retry-After` erneut versuchen. |
| 503 | `service_unavailable` | Der Verzeichnisdatensatz konnte nicht geprüft werden, oder eine Abhängigkeit ist vorübergehend nicht verfügbar; nach der Dauer aus `Retry-After` erneut versuchen. |

## Beispiel

```bash
curl -i -X POST "https://api.eu.keenauth.com/v1/directories/dir_01j9xm2n4p6q8r0s2t4v6w8y0z/role-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"directory_group_id":"dsg_01j9xn3p5q7r9s1t3v5w7x9y1a","role_id":"rol_01j9xr7s1t2w6x8y0z2a4b6c8e"}'
```
