keenauth_connection_oidc_config
El recurso keenauth_connection_oidc_config define la configuración de la parte que confía (relying party) de una conexión OIDC empresarial: el emisor del proveedor de identidad, el ID de cliente registrado allí, el método de autenticación del cliente, el perfil del proveedor y el secreto del cliente.
El secreto del cliente es de solo escritura
client_secret_wo es un argumento de solo escritura. El proveedor lo envía a la API y nunca lo escribe en los archivos de estado ni de plan, y la API nunca lo devuelve. Los argumentos de solo escritura requieren OpenTofu 1.11 o Terraform 1.11 o posterior. Una versión anterior rechaza la configuración antes de enviar nada; en ese caso, establezca el secreto con keenauth connections oidc put.
Proporcione el secreto desde una variable efímera, de modo que OpenTofu tampoco lo almacene en el plan:
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
}
Registre redirect_uri (https://<sp_host>/sso/<connection_id>/callback) en el proveedor de identidad. Si su proveedor de identidad lo admite, prefiera client_auth_method = "private_key_jwt": la clave del entorno firma la aserción del cliente y no existe ningún secreto.
Rotación
El proveedor no puede leer el secreto de vuelta, por lo que no puede detectar un cambio en él. Envía client_secret_wo al crear el recurso y cada vez que cambia client_secret_wo_version. Para rotarlo, coloque el nuevo secreto y aumente la versión en el mismo cambio.
client_secret_expires_at es un recordatorio de cuándo el proveedor de identidad invalida el secreto. La API lo escribe únicamente junto con el secreto, así que cámbielo en el mismo cambio que la versión.
Reglas verificadas en el momento del plan
| Regla | Motivo |
|---|---|
client_secret_wo no se permite con private_key_jwt. |
Ese método no usa secreto; cambiar a él elimina el secreto almacenado. |
Un método client_secret_* requiere client_secret_wo al crear, y una nueva versión cuando no hay ningún secreto almacenado. |
El proveedor de identidad rechazaría la solicitud de token. |
sp_host no puede cambiar después de la primera escritura. |
La URL de callback se fija cuando se escribe la configuración por primera vez. |
entra_tenant_id es obligatorio con provider_profile = "entra" y solo se permite en ese caso. |
Regla de la API. |
client_secret_expires_at está en UTC con segundos enteros, por ejemplo 2027-01-31T00:00:00Z. |
La API lo devuelve en este formato; otro formato mostraría una diferencia en cada plan. |
Importación y destrucción
Importe con el ID de la conexión. La API no devuelve sp_host, entra_tenant_id ni el secreto, así que el siguiente plan escribirá la configuración una vez con los valores de su configuración.
La API no tiene una operación de eliminación para esta configuración. Destruir el recurso solo lo elimina del estado; la configuración se elimina junto con su conexión.