
# Politiques de session et MFA d'organisation

Les ressources `keenauth_session_policy` et `keenauth_mfa_policy` définissent les durées de session et les règles d'authentification multifacteur propres à une organisation. Une politique d'organisation ne peut être que plus stricte que le paramètre de l'environnement (`keenauth_environment_settings`). Une valeur moins stricte échoue avec `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
}
```

## Politique de session

| Attribut | Plage | Description |
|---|---|---|
| `idle_minutes` | 5–144000 | Délai d'inactivité de la session. Au plus `absolute_minutes`. |
| `absolute_minutes` | 60–525600 | Durée absolue de la session. |
| `refresh_idle_days` | 1–365 | Durée d'inactivité du jeton d'actualisation. Au plus `refresh_absolute_days`. |
| `refresh_absolute_days` | 1–365 | Durée absolue du jeton d'actualisation. |

- Définissez au moins un attribut. Un attribut omis est hérité de l'environnement.
- Raccourcir une durée met fin au contexte d'organisation des sessions existantes.
- La politique de session nécessite le plan Enterprise (`403 plan_feature_unavailable`). Elle est ouverte dans les environnements de développement.

## Politique MFA

| Attribut | Valeurs | Description |
|---|---|---|
| `required_for` | `none`, `admins`, `all` | Qui doit utiliser un second facteur. `admins` couvre les rôles d'administrateur de l'organisation et les membres ayant des permissions système `idp_`. |
| `allowed_factors` | `totp`, `webauthn`, `sms`, `email` | Seconds facteurs que les membres peuvent utiliser. Au moins un ; chacun doit être activé dans l'environnement. |
| `enrollment_grace_days` | 0–30 | Nombre de jours pendant lesquels un membre peut se connecter avant d'enregistrer un facteur requis. Valeur par défaut : `0`. |

## Cycle de vie

- Une organisation a une politique de chaque type. L'ID de la ressource est l'ID de l'organisation.
- Chaque écriture envoie la politique complète. Une création n'écrase pas une politique existante : si l'organisation en a déjà une (définie dans le tableau de bord ou le portail d'administration), l'API répond `428` et vous devez l'importer.
- Les mises à jour et suppressions envoient `If-Match`. Une politique modifiée hors du fournisseur apparaît comme dérive au prochain `plan` ; une politique supprimée hors du fournisseur est recréée.
- Supprimer la ressource supprime la politique, et l'organisation hérite de nouveau du paramètre de l'environnement.

## Import

Importez avec l'ID de l'organisation :

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