keenauth_directory

La ressource keenauth_directory crée un répertoire SCIM 2.0 pour une organisation. Un répertoire est le point de terminaison auquel le fournisseur d'identité de l'organisation (Okta, Entra ID et d'autres) provisionne les utilisateurs et les groupes.

resource "keenauth_directory" "acme_okta" {
  organization_id = keenauth_organization.acme.id
  name            = "Okta"
  scim_host       = "acme.eu.keenauth.app"
}

output "scim_base_url" {
  value = keenauth_directory.acme_okta.base_url
}

base_url est https://<scim_host>/scim/v2/<id>. Transmettez-la au fournisseur d'identité avec un jeton SCIM.

Modifications sur place et remplacements

name et les paramètres du répertoire sont modifiés sur place. Le provider envoie un JSON merge patch ne contenant que les champs modifiés, ainsi que l'ETag de la dernière lecture dans If-Match ; si le répertoire a été modifié en dehors de cette configuration après cette lecture, l'API répond 412, rien n'est modifié, et vous devez relancer plan. L'API n'accepte aucun paramètre à la création d'un répertoire : les paramètres configurés sont donc appliqués juste après la création, dans le même apply.

La modification de organization_id, scim_host ou type remplace le répertoire.

Paramètres

resource "keenauth_directory" "acme_okta" {
  organization_id = keenauth_organization.acme.id
  name            = "Okta"
  scim_host       = "acme.eu.keenauth.app"

  provisioning_mode   = "user_store"
  attribute_allowlist = ["title", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:user:department"]
  delete_action       = "remove_membership"

  mass_deprovision_guard = {
    percent      = 20
    absolute_min = 50
  }
}
Paramètre Valeurs Valeur par défaut
provisioning_mode user_store (les utilisateurs de l'environnement, les appartenances aux organisations et les rôles de groupe sont écrits) ou mirror (seuls les enregistrements du répertoire sont conservés) user_store
attribute_allowlist Jusqu'à 40 attributs SCIM facultatifs conservés sur les utilisateurs du répertoire : title, usertype, phonenumbers et les clés de l'extension entreprise vide
unverified_domain_action invite ou mirror_only, pour un utilisateur dont le domaine d'e-mail n'est pas vérifié pour l'organisation invite
delete_action remove_membership ou delete_user, pour un DELETE /Users SCIM remove_membership
on_delete_memberships keep, suspend ou remove, pour les appartenances issues du répertoire lorsqu'il est supprimé keep
mass_deprovision_guard enabled, percent (5 à 50) et absolute_min (10 à 1000) ; les déprovisionnements dépassant les deux seuils dans un délai de 5 minutes sont retenus pour approbation activé, 10, 25
send_welcome_email true ou false : un e-mail d'activation de compte pour les nouveaux utilisateurs du répertoire false

Jetons SCIM

Le jeton SCIM est un secret. L'API le renvoie une seule fois, dans la réponse qui crée le répertoire, et aucun point de terminaison ne peut le lire ensuite. Le provider ne l'écrit jamais dans le state, un fichier de plan, une sortie ou un journal. Pour préserver cette garantie, et pour qu'aucun identifiant valide ne reste inconnu de tous, le provider révoque immédiatement le jeton renvoyé lors de la création.

Créez le jeton de votre fournisseur d'identité avec keenauth_directory_token. Il conserve le jeton dans le state, chiffré uniquement avec votre clé publique RSA, que vous déchiffrez avec votre clé privée.

Si le provider ne peut pas révoquer le jeton initial, l'apply réussit tout de même et affiche un avertissement contenant la commande qui le révoque (keenauth directories tokens delete <directory_id> <token_id>).

Arguments

Import

Importez par ID de répertoire :

tofu import keenauth_directory.acme_okta dir_01j9zq3v8c5m2x7k4t6r1n0b3d