keenauth_directory

Die Ressource keenauth_directory erstellt ein SCIM-2.0-Verzeichnis für eine Organisation. Ein Verzeichnis ist der Endpunkt, an den der Identitätsanbieter der Organisation (Okta, Entra ID und andere) Benutzer und Gruppen bereitstellt.

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 lautet https://<scim_host>/scim/v2/<id>. Geben Sie sie zusammen mit einem SCIM-Token an den Identitätsanbieter weiter.

Änderungen an Ort und Stelle und Ersetzungen

name und die Verzeichniseinstellungen werden an Ort und Stelle geändert. Der Provider sendet einen JSON-Merge-Patch mit nur den geänderten Feldern und dem ETag des letzten Lesevorgangs als If-Match. Wurde das Verzeichnis nach diesem Lesevorgang außerhalb dieser Konfiguration geändert, antwortet die API mit 412, es wird nichts geändert, und Sie führen plan erneut aus. Die API nimmt beim Erstellen eines Verzeichnisses keine Einstellungen entgegen; die konfigurierten Einstellungen werden deshalb direkt nach dem Erstellen im selben Apply angewendet.

Das Ändern von organization_id, scim_host oder type ersetzt das Verzeichnis.

Einstellungen

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
  }
}
Einstellung Werte Standard
provisioning_mode user_store (Umgebungsbenutzer, Organisationsmitgliedschaften und Gruppenrollen werden geschrieben) oder mirror (nur Verzeichniseinträge werden gespeichert) user_store
attribute_allowlist Bis zu 40 optionale SCIM-Attribute, die bei Verzeichnisbenutzern erhalten bleiben: title, usertype, phonenumbers und die Schlüssel der Enterprise-Erweiterung leer
unverified_domain_action invite oder mirror_only für einen Benutzer, dessen E-Mail-Domain für die Organisation nicht verifiziert ist invite
delete_action remove_membership oder delete_user für ein SCIM-DELETE /Users remove_membership
on_delete_memberships keep, suspend oder remove für Mitgliedschaften aus dem Verzeichnis, wenn es gelöscht wird keep
mass_deprovision_guard enabled, percent (5 bis 50) und absolute_min (10 bis 1000); mehr Deprovisionierungen als beide Werte innerhalb von 5 Minuten werden zur Genehmigung zurückgehalten aktiviert, 10, 25
send_welcome_email true oder false: eine E-Mail zur Kontoaktivierung für neue Verzeichnisbenutzer false

SCIM-Tokens

Das SCIM-Token ist ein Geheimnis. Die API gibt es einmal zurück, und zwar in der Antwort, die das Verzeichnis erstellt; danach kann kein Endpunkt es mehr lesen. Der Provider schreibt es niemals in den State, eine Plan-Datei, eine Ausgabe oder ein Log. Damit diese Garantie gilt und kein gültiges Zugangsdatum existiert, das niemand besitzt, widerruft der Provider das beim Erstellen zurückgegebene Token sofort.

Erstellen Sie das Token für Ihren Identitätsanbieter mit keenauth_directory_token. Es wird nur verschlüsselt mit Ihrem öffentlichen RSA-Schlüssel im State gespeichert, und Sie entschlüsseln es mit Ihrem privaten Schlüssel.

Wenn der Provider das initiale Token nicht widerrufen kann, war das Apply trotzdem erfolgreich, und es erscheint eine Warnung mit dem Befehl zum Widerrufen (keenauth directories tokens delete <directory_id> <token_id>).

Argumente

Import

Importieren Sie anhand der Verzeichnis-ID:

tofu import keenauth_directory.acme_okta dir_01j9zq3v8c5m2x7k4t6r1n0b3d