keenauth_directory_token
keenauth_directory_token kaynağı, bir dizine kullanıcı ve grup sağlayan kimlik sağlayıcı için dizinin SCIM taşıyıcı token'ını oluşturur. Sağlayıcı token'ı durum dosyasında yalnız sizin verdiğiniz RSA ortak anahtarıyla şifrelenmiş olarak tutar.
resource "keenauth_directory_token" "okta" {
directory_id = keenauth_directory.acme_okta.id
label = "Okta"
expires_in_days = 180
public_key = file("${path.module}/scim-token-key.pub.pem")
lifecycle {
create_before_destroy = true
}
}
output "okta_scim_token_encrypted" {
value = keenauth_directory_token.okta.encrypted_token
}
Token hiçbir zaman düz metin saklanmaz
API bir SCIM token'ını onu oluşturan yanıtta bir kez döndürür ve sonradan hiçbir uç nokta onu okuyamaz. Sağlayıcı token'ı ortak anahtarınızla (SHA-256, MGF1 SHA-256 ve boş etiketle RSA-OAEP) şifreler ve encrypted_token alanına yalnız base64 şifreli metni yazar. Düz token durum dosyasına, plan dosyasına, çıktıya ya da loga hiçbir zaman ulaşmaz. Onu yalnız özel anahtarın sahibi çözebilir; bu yüzden durum dosyası sızsa da token sızmaz.
Anahtar çiftini bir kez, OpenTofu dışında oluşturun ve özel anahtarı yapılandırmanızın dışında tutun:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out scim-token-key.pem
openssl pkey -in scim-token-key.pem -pubout -out scim-token-key.pub.pem
tofu apply sonrasında token'ı çözün ve kimlik sağlayıcıya verin:
tofu output -raw okta_scim_token_encrypted | base64 -d | \
openssl pkeyutl -decrypt -inkey scim-token-key.pem \
-pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256
public_key en az 2048 bitlik, PEM biçiminde bir RSA ortak anahtarı (PUBLIC KEY ya da RSA PUBLIC KEY) olmalıdır. Özel anahtar ya da daha küçük bir anahtar plan aşamasında reddedilir. Sağlayıcı bir token'ı teslim edemezse token'ı hemen iptal eder ve apply başarısız olur; böylece kimsenin elinde olmayan geçerli bir token kalmaz.
Yalnız oluşturma ve iptal
Token değiştirilemez. Her argüman (directory_id, label, expires_in_days, public_key) değiştiğinde yeni bir token oluşturur ve eski token iptal edilir. Kaynağı yok etmek token'ı iptal eder.
Sağlayıcı dışında iptal edilen ya da süresi dolan token sonraki yenilemede durumdan düşer ve sonraki apply yeni bir token oluşturur. Dizini silmek token'larını da siler.
Döndürme
Bir dizinde en çok 2 geçerli token olur; üçüncüsü 409 ile reddedilir. Bu, kesintisiz döndürme için yeterlidir: create_before_destroy = true ile yeni token eski token iptal edilmeden önce oluşturulur. Yeni token'ı aynı değişiklik penceresinde kimlik sağlayıcıya verin.
Argümanlar
label1 ile 100 karakter arasıdır; denetim karakteri içermez, başında ya da sonunda boşluk olmaz. API varsayılanıToken'dır.expires_in_days30 ile 730 arasıdır. API varsayılanı 365'tir.encrypted_token,created_at,expires_atveidsalt okunurdur.
İçe aktarma
Kaynak içe aktarılamaz: mevcut bir token'ın değeri bir daha okunamaz, bu yüzden içe aktarılan token teslim edilemez. Eski token'ı keenauth directories tokens delete <directory_id> <token_id> ile iptal edin ve sağlayıcının yeni bir token oluşturmasına izin verin.