
# keenauth_connection_oidc_config

`keenauth_connection_oidc_config` kaynağı, kurumsal bir OIDC bağlantısının taraf (relying party) yapılandırmasını ayarlar: kimlik sağlayıcının veren (issuer) bilgisi, orada kayıtlı istemci kimliği, istemci kimlik doğrulama yöntemi, sağlayıcı profili ve istemci gizli anahtarı.

## İstemci gizli anahtarı yalnızca yazılabilirdir

`client_secret_wo` yalnızca yazılabilir bir argümandır. Sağlayıcı bunu API'ye gönderir, state veya plan dosyalarına asla yazmaz ve API bunu hiçbir zaman geri döndürmez. Yalnızca yazılabilir argümanlar için OpenTofu 1.11 veya Terraform 1.11 ya da daha yeni bir sürüm gerekir. Daha eski bir sürüm, hiçbir şey gönderilmeden yapılandırmayı reddeder; bu durumda gizli anahtarı bunun yerine `keenauth connections oidc put` ile ayarlayın.

Gizli anahtarı geçici bir değişkenden verin; böylece OpenTofu onu plana da kaydetmez:

```terraform
variable "corp_idp_client_secret" {
  type      = string
  sensitive = true
  ephemeral = true
}

resource "keenauth_connection" "corp" {
  key      = "corp-oidc"
  type     = "enterprise"
  strategy = "oidc"
  name     = "corp-oidc"
}

resource "keenauth_connection_oidc_config" "corp" {
  connection_id      = keenauth_connection.corp.id
  sp_host            = "acme.eu.keenauth.app"
  issuer             = "https://login.idp.example.com"
  client_id          = "keenauth-rp"
  client_auth_method = "client_secret_basic"

  client_secret_wo         = var.corp_idp_client_secret
  client_secret_wo_version = 1
}
```

`redirect_uri` (`https://<sp_host>/sso/<connection_id>/callback`) adresini kimlik sağlayıcıda kaydedin. Kimlik sağlayıcınız destekliyorsa `client_auth_method = "private_key_jwt"` seçeneğini tercih edin: ortamın anahtarı istemci onayını imzalar ve hiç gizli anahtar kalmaz.

## Anahtar döndürme

Sağlayıcı gizli anahtarı geri okuyamaz, dolayısıyla değişikliğini göremez. Kaynak oluşturulduğunda ve `client_secret_wo_version` her değiştiğinde `client_secret_wo` değerini gönderir. Döndürmek için yeni gizli anahtarı yerine koyun ve sürümü aynı değişiklikte artırın.

`client_secret_expires_at`, kimlik sağlayıcının gizli anahtarı ne zaman geçersiz kılacağının bir hatırlatıcısıdır. API bunu yalnızca gizli anahtarla birlikte yazar; bu nedenle onu sürümle aynı değişiklikte değiştirin.

## Plan zamanında kontrol edilen kurallar

| Kural | Neden |
|---|---|
| `client_secret_wo`, `private_key_jwt` ile kullanılamaz. | Bu yöntem gizli anahtar kullanmaz; bu yönteme geçmek, saklanan gizli anahtarı siler. |
| Bir `client_secret_*` yöntemi, oluşturmada `client_secret_wo` gerektirir; gizli anahtar saklı değilse yeni bir sürüm de gerekir. | Kimlik sağlayıcı belirteç isteğini reddeder. |
| `sp_host`, ilk yazmadan sonra değiştirilemez. | Geri çağırma adresi, yapılandırma ilk kez yazıldığında sabitlenir. |
| `provider_profile = "entra"` ile `entra_tenant_id` zorunludur ve yalnızca bu durumda izin verilir. | API kuralı. |
| `client_secret_expires_at`, tam saniyeli UTC biçimindedir; örneğin `2027-01-31T00:00:00Z`. | API bunu bu biçimde döndürür; başka bir biçim her planda fark gösterir. |

## İçe aktarma ve yok etme

Bağlantı kimliğiyle içe aktarın. API `sp_host`, `entra_tenant_id` veya gizli anahtarı döndürmediği için bir sonraki plan, yapılandırmanızın değerleriyle yapılandırmayı bir kez yazar.

API'de bu yapılandırma için bir silme işlemi yoktur. Kaynağı yok etmek yalnızca state'ten kaldırır; yapılandırma, bağlantısıyla birlikte silinir.
