keenauth_directory
keenauth_directory kaynağı bir organizasyon için SCIM 2.0 dizini oluşturur. Dizin, organizasyonun kimlik sağlayıcısının (Okta, Entra ID ve diğerleri) kullanıcı ve grupları sağladığı uç noktadır.
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 değeri https://<scim_host>/scim/v2/<id> biçimindedir. Kimlik sağlayıcıya bir SCIM token'ıyla birlikte verin.
Yerinde değişiklik ve yeniden oluşturma
name ve dizin ayarları yerinde değişir. Sağlayıcı yalnız değişen alanları taşıyan bir JSON birleştirme yaması ve son okumanın ETag değerini If-Match olarak gönderir; dizin bu okumadan sonra yapılandırma dışında değiştiyse API 412 döner, hiçbir şey değişmez ve plan'ı yeniden çalıştırırsınız. API dizini oluştururken ayar almaz; bu yüzden yapılandırdığınız ayarlar oluşturmanın hemen ardından aynı apply içinde uygulanır.
organization_id, scim_host ya da type değişirse dizin yeniden oluşturulur.
- Yeniden oluşturma önce eski dizini siler. Dizin silme anında ve kalıcıdır: token'ları, sağlanan kullanıcılar, gruplar, grup üyelikleri ve bekleyen pasifleştirme bekletmeleri onunla gider; kimlik sağlayıcının SCIM istekleri
401alır. Yeni dizinin kimliği ve taban URL'si yenidir; kimlik sağlayıcıyı yeni token ile ona yönlendirmeniz gerekir. - Kaybetmeyi göze alamayacağınız bir dizini
lifecycle { prevent_destroy = true }ile koruyun. - Yeni dizin
inactivedurumundadır. Sağlayıcı dizini etkinleştirmez ya da pasifleştirmez (bunukeenauth directories activatevedeactivateyapar);stateyalnız okunur. - Organizasyonu silmek dizinlerini de siler. Sağlayıcı dışında silinen dizin durumdan düşer ve yeniden planlanır.
Ayarlar
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
}
}
| Ayar | Değerler | Varsayılan |
|---|---|---|
provisioning_mode |
user_store (ortam kullanıcıları, organizasyon üyelikleri ve grup rolleri yazılır) ya da mirror (yalnız dizin kayıtları tutulur) |
user_store |
attribute_allowlist |
Dizin kullanıcılarında saklanan en çok 40 isteğe bağlı SCIM özniteliği: title, usertype, phonenumbers ve kurumsal uzantı anahtarları |
boş |
unverified_domain_action |
E-posta alan adı organizasyon için doğrulanmamış kullanıcı için invite ya da mirror_only |
invite |
delete_action |
SCIM DELETE /Users için remove_membership ya da delete_user |
remove_membership |
on_delete_memberships |
Dizin silinince dizinden gelen üyelikler için keep, suspend ya da remove |
keep |
mass_deprovision_guard |
enabled, percent (5–50) ve absolute_min (10–1000); 5 dakika içinde ikisini de aşan pasifleştirmeler onaya bekletilir |
açık, 10, 25 |
send_welcome_email |
true ya da false: yeni dizin kullanıcılarına hesap etkinleştirme e-postası |
false |
- Yapılandırmadığınız ayar sunucudaki değeri korur; bir ayarı yapılandırmadan çıkarmak son değerini korur.
mass_deprovision_guardiçinde yazmadığınız alan değerini korur. attribute_allowlist'ten çıkarılan anahtar, aynı güncellemede dizinin bütün kullanıcı kayıtlarından silinir. Boş küme ([]) listeyi temizler.- Dizinde kullanıcı kaydı varken
provisioning_modedeğişmez; API409döner.
SCIM token'ları
SCIM token'ı bir sırdır. API onu dizini oluşturan yanıtta bir kez döndürür ve sonradan hiçbir uç nokta onu okuyamaz. Sağlayıcı onu durum dosyasına, plan dosyasına, çıktıya ya da loga hiçbir zaman yazmaz. Bu güvenceyi korumak ve kimsenin elinde olmayan geçerli bir kimlik bilgisi kalmaması için sağlayıcı, oluşturmanın döndürdüğü token'ı hemen iptal eder.
Kimlik sağlayıcınız için token'ı keenauth_directory_token ile oluşturun. Bu kaynak token'ı durum dosyasında yalnız RSA ortak anahtarınızla şifrelenmiş olarak tutar; siz onu özel anahtarınızla çözersiniz.
Sağlayıcı ilk token'ı iptal edemezse apply yine başarılı olur ve iptal komutunu (keenauth directories tokens delete <directory_id> <token_id>) içeren bir uyarı yazar.
Argümanlar
scim_hostortamın birincil host'udur: etkin özel alan adı, yoksa<slug>.<region>.keenauth.app. Bu ortama yönlenen küçük harfli bir DNS adı olmalıdır; aksi halde API422döner. API bunun birincil host olup olmadığını denetlemez; bu yüzden ikincil bir özel alan adı da kabul edilir.name1 ile 64 karakter arasındadır; denetim karakteri ve baştaki ya da sondaki boşluk içeremez. Tekil olması gerekmez.typedeğeriscim'dir; GA-1'de başka değer olamaz.state,base_url,created_at,etagveidsalt okunurdur. APIscim_hostdeğerini döndürmez; sağlayıcı onubase_urlhost'undan türetir.
İçe aktarma
Dizin kimliğiyle içe aktarın:
tofu import keenauth_directory.acme_okta dir_01j9zq3v8c5m2x7k4t6r1n0b3d