
# keenauth_directory_role_mapping

El recurso `keenauth_directory_role_mapping` asigna un grupo de un directorio SCIM a un rol. Los miembros del grupo obtienen el rol en la organización del directorio.

```terraform
resource "keenauth_role" "engineer" {
  key  = "engineer"
  name = "Engineer"
}

resource "keenauth_directory_role_mapping" "engineering" {
  directory_id       = keenauth_directory.acme_okta.id
  directory_group_id = "dsg_01j9zq3v8c5m2x7k4t6r1n0b3d"
  role_id            = keenauth_role.engineer.id
}
```

## Los grupos vienen del proveedor de identidad

El proveedor de identidad aprovisiona los grupos al directorio por SCIM, así que el grupo debe existir antes de asignarlo. Para listar los grupos de un directorio:

```shell
keenauth directories groups list <directory_id>
```

Un grupo que no está en el directorio se rechaza con `422` (`unknown_group`). Un grupo solo puede asignarse una vez por directorio, y un directorio tiene como máximo 500 asignaciones.

## Solo crear, leer y eliminar

La API de administración no puede cambiar una asignación. Cada argumento (`directory_id`, `directory_group_id`, `role_id`) reemplaza la asignación cuando lo cambias. El proveedor lee la asignación de la lista de asignaciones del directorio en cada actualización; una asignación o un directorio eliminado fuera del proveedor se quita del estado y se vuelve a planificar.

## Roles privilegiados

Asignar un rol privilegiado requiere una clave de API con `roles:write` además de `directories:write`; sin ella, la API responde `403` (`privileged_role_mapping_forbidden`). Una asignación así se crea aprobada.

Si un rol pasa a ser privilegiado después de crear la asignación, esta queda sin aprobar: `approved_at` está vacío y el rol no se concede. El proveedor no aprueba asignaciones; vuelve a crearla con una clave que tenga `roles:write`.

## Argumentos

- `role_id` es un rol del entorno o un rol de la organización del directorio; cualquier otro rol se rechaza con `422` (`unknown_role`).
- `organization_id`, `role_privileged`, `approved_at`, `created_at` e `id` son de solo lectura.

## Importación

Importa con el ID del directorio y el ID de la asignación:

```shell
tofu import keenauth_directory_role_mapping.engineering dir_01j9zq3v8c5m2x7k4t6r1n0b3d/rmp_01j9zq4a2b3c4d5e6f7g8h9j0k
```
