
# Políticas de sesión y MFA de la organización

Los recursos `keenauth_session_policy` y `keenauth_mfa_policy` establecen las duraciones de sesión y las reglas de autenticación multifactor propias de una organización. Una política de organización solo puede ser más estricta que la configuración del entorno (`keenauth_environment_settings`). Un valor menos estricto falla con `422 policy_weaker_than_parent`.

```terraform
resource "keenauth_session_policy" "acme" {
  organization_id   = keenauth_organization.acme.id
  idle_minutes      = 60
  absolute_minutes  = 720
  refresh_idle_days = 7
}

resource "keenauth_mfa_policy" "acme" {
  organization_id       = keenauth_organization.acme.id
  required_for          = "admins"
  allowed_factors       = ["webauthn", "totp"]
  enrollment_grace_days = 7
}
```

## Política de sesión

| Atributo | Rango | Descripción |
|---|---|---|
| `idle_minutes` | 5–144000 | Tiempo de espera por inactividad de la sesión. Como máximo `absolute_minutes`. |
| `absolute_minutes` | 60–525600 | Duración absoluta de la sesión. |
| `refresh_idle_days` | 1–365 | Duración por inactividad del token de actualización. Como máximo `refresh_absolute_days`. |
| `refresh_absolute_days` | 1–365 | Duración absoluta del token de actualización. |

- Establezca al menos un atributo. Un atributo omitido se hereda del entorno.
- Acortar una duración finaliza el contexto de organización de las sesiones existentes.
- La política de sesión requiere el plan Enterprise (`403 plan_feature_unavailable`). Está abierta en entornos de desarrollo.

## Política MFA

| Atributo | Valores | Descripción |
|---|---|---|
| `required_for` | `none`, `admins`, `all` | Quién debe usar un segundo factor. `admins` abarca los roles de administrador de la organización y los miembros con permisos de sistema `idp_`. |
| `allowed_factors` | `totp`, `webauthn`, `sms`, `email` | Segundos factores que los miembros pueden usar. Al menos uno; cada uno debe estar habilitado en el entorno. |
| `enrollment_grace_days` | 0–30 | Días en los que un miembro puede iniciar sesión antes de registrar un factor obligatorio. Predeterminado: `0`. |

## Ciclo de vida

- Una organización tiene una política de cada tipo. El ID del recurso es el ID de la organización.
- Cada escritura envía la política completa. Una creación no sobrescribe una política existente: si la organización ya tiene una (definida en el panel o en el portal de administración), la API responde `428` y debe importarla.
- Las actualizaciones y eliminaciones envían `If-Match`. Una política modificada fuera del proveedor aparece como desviación en el siguiente `plan`; una política eliminada fuera del proveedor se vuelve a crear.
- Eliminar el recurso borra la política, y la organización vuelve a heredar la configuración del entorno.

## Importación

Importe con el ID de la organización:

```shell
tofu import keenauth_session_policy.acme org_01j9zq3v8c5m2x7k4t6r1n0b3d
tofu import keenauth_mfa_policy.acme org_01j9zq3v8c5m2x7k4t6r1n0b3d
```
