keenauth_directory_role_mapping

La ressource keenauth_directory_role_mapping associe un groupe d'un annuaire SCIM à un rôle. Les membres du groupe reçoivent le rôle dans l'organisation de l'annuaire.

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
}

Les groupes viennent du fournisseur d'identité

Le fournisseur d'identité provisionne les groupes vers l'annuaire par SCIM ; le groupe doit donc exister avant que vous l'associiez. Pour lister les groupes d'un annuaire :

keenauth directories groups list <directory_id>

Un groupe absent de l'annuaire est refusé avec 422 (unknown_group). Un groupe ne peut être associé qu'une fois par annuaire, et un annuaire compte au plus 500 associations.

Créer, lire et supprimer uniquement

L'API de gestion ne peut pas modifier une association. Chaque argument (directory_id, directory_group_id, role_id) remplace l'association lorsque vous le changez. Le fournisseur lit l'association dans la liste des associations de l'annuaire à chaque actualisation ; une association ou un annuaire supprimé en dehors du fournisseur est retiré de l'état et replanifié.

Rôles privilégiés

Associer un rôle privilégié exige une clé d'API dotée de roles:write en plus de directories:write ; sans elle, l'API répond 403 (privileged_role_mapping_forbidden). Une telle association est créée approuvée.

Si un rôle devient privilégié après la création de l'association, celle-ci reste non approuvée : approved_at est vide et le rôle n'est pas accordé. Le fournisseur n'approuve pas les associations ; recréez l'association avec une clé dotée de roles:write.

Arguments

Importation

Importez avec l'identifiant de l'annuaire et l'identifiant de l'association :

tofu import keenauth_directory_role_mapping.engineering dir_01j9zq3v8c5m2x7k4t6r1n0b3d/rmp_01j9zq4a2b3c4d5e6f7g8h9j0k