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.
- Bei einer Ersetzung wird zuerst das alte Verzeichnis gelöscht. Das Löschen eines Verzeichnisses ist sofort und endgültig: Seine Tokens, bereitgestellten Benutzer, Gruppen, Gruppenmitgliedschaften und ausstehenden Deprovisionierungssperren werden mit entfernt, und SCIM-Anfragen des Identitätsanbieters erhalten
401. Ein neues Verzeichnis hat eine neue ID und eine neue Basis-URL; der Identitätsanbieter muss mit einem neuen Token darauf umgestellt werden. - Schützen Sie ein Verzeichnis, dessen Verlust Sie sich nicht leisten können, mit
lifecycle { prevent_destroy = true }. - Ein neues Verzeichnis ist
inactive. Der Provider aktiviert oder deaktiviert es nicht (dafür sindkeenauth directories activateunddeactivateda);statewird nur gelesen. - Das Löschen der Organisation löscht ihre Verzeichnisse. Ein Verzeichnis, das außerhalb des Providers gelöscht wurde, wird aus dem State entfernt und erneut geplant.
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 |
- Eine Einstellung, die Sie nicht konfigurieren, behält den Serverwert, und das Entfernen einer Einstellung aus der Konfiguration behält ihren letzten Wert. In
mass_deprovision_guardbehält ein Feld, das Sie nicht setzen, seinen Wert. - Das Entfernen eines Schlüssels aus
attribute_allowlistlöscht dieses Attribut im selben Update aus jedem Benutzerdatensatz des Verzeichnisses. Eine leere Menge ([]) leert die Liste. provisioning_modekann sich nicht ändern, solange das Verzeichnis Benutzerdatensätze enthält; die API antwortet mit409.
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
scim_hostist der primäre Host der Umgebung: ihre aktive benutzerdefinierte Domain, andernfalls<slug>.<region>.keenauth.app. Er muss ein kleingeschriebener DNS-Name sein, der zu dieser Umgebung führt, sonst antwortet die API mit422. Die API prüft nicht, ob es sich um den primären Host handelt, daher wird eine sekundäre benutzerdefinierte Domain akzeptiert.namehat 1 bis 64 Zeichen, ohne Steuerzeichen und ohne führende oder nachgestellte Leerzeichen. Er muss nicht eindeutig sein.typeistscimund kann in GA-1 nichts anderes sein.state,base_url,created_at,etagundidsind schreibgeschützt. Die API gibtscim_hostnicht zurück, daher leitet der Provider ihn aus dem Host vonbase_urlab.
Import
Importieren Sie anhand der Verzeichnis-ID:
tofu import keenauth_directory.acme_okta dir_01j9zq3v8c5m2x7k4t6r1n0b3d