
# Politiche di sessione e MFA dell'organizzazione

Le risorse `keenauth_session_policy` e `keenauth_mfa_policy` impostano durate di sessione e regole di autenticazione a più fattori proprie di un'organizzazione. Una politica dell'organizzazione può essere solo più restrittiva dell'impostazione dell'ambiente (`keenauth_environment_settings`). Un valore meno restrittivo fallisce 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
}
```

## Politica di sessione

| Attributo | Intervallo | Descrizione |
|---|---|---|
| `idle_minutes` | 5–144000 | Timeout di inattività della sessione. Al massimo `absolute_minutes`. |
| `absolute_minutes` | 60–525600 | Durata assoluta della sessione. |
| `refresh_idle_days` | 1–365 | Durata di inattività del token di aggiornamento. Al massimo `refresh_absolute_days`. |
| `refresh_absolute_days` | 1–365 | Durata assoluta del token di aggiornamento. |

- Imposti almeno un attributo. Un attributo omesso è ereditato dall'ambiente.
- Accorciare una durata termina il contesto di organizzazione delle sessioni esistenti.
- La politica di sessione richiede il piano Enterprise (`403 plan_feature_unavailable`). È aperta negli ambienti di sviluppo.

## Politica MFA

| Attributo | Valori | Descrizione |
|---|---|---|
| `required_for` | `none`, `admins`, `all` | Chi deve usare un secondo fattore. `admins` comprende i ruoli di amministratore dell'organizzazione e i membri con permessi di sistema `idp_`. |
| `allowed_factors` | `totp`, `webauthn`, `sms`, `email` | Secondi fattori che i membri possono usare. Almeno uno; ciascuno deve essere attivo nell'ambiente. |
| `enrollment_grace_days` | 0–30 | Giorni in cui un membro può accedere prima di registrare un fattore richiesto. Predefinito: `0`. |

## Ciclo di vita

- Un'organizzazione ha una politica per tipo. L'ID della risorsa è l'ID dell'organizzazione.
- Ogni scrittura invia la politica completa. Una creazione non sovrascrive una politica esistente: se l'organizzazione ne ha già una (impostata nella dashboard o nel portale amministrativo), l'API risponde `428` e occorre importarla.
- Aggiornamenti ed eliminazioni inviano `If-Match`. Una politica modificata fuori dal provider compare come deriva nel `plan` successivo; una politica eliminata fuori dal provider viene ricreata.
- Rimuovere la risorsa elimina la politica, e l'organizzazione torna a ereditare l'impostazione dell'ambiente.

## Importazione

Importi con l'ID dell'organizzazione:

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