
# Sitzungs- und MFA-Richtlinien der Organisation

Die Ressourcen `keenauth_session_policy` und `keenauth_mfa_policy` legen die eigenen Sitzungslaufzeiten und Multi-Faktor-Regeln einer Organisation fest. Eine Richtlinie der Organisation kann nur strenger sein als die Einstellung der Umgebung (`keenauth_environment_settings`). Ein lockererer Wert schlägt mit `422 policy_weaker_than_parent` fehl.

```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
}
```

## Sitzungsrichtlinie

| Attribut | Bereich | Beschreibung |
|---|---|---|
| `idle_minutes` | 5–144000 | Leerlaufzeitlimit der Sitzung. Höchstens `absolute_minutes`. |
| `absolute_minutes` | 60–525600 | Absolute Lebensdauer der Sitzung. |
| `refresh_idle_days` | 1–365 | Leerlaufdauer des Refresh-Tokens. Höchstens `refresh_absolute_days`. |
| `refresh_absolute_days` | 1–365 | Absolute Lebensdauer des Refresh-Tokens. |

- Setzen Sie mindestens ein Attribut. Ein weggelassenes Attribut wird von der Umgebung übernommen.
- Eine Verkürzung einer Laufzeit beendet den Organisationskontext bestehender Sitzungen.
- Die Sitzungsrichtlinie benötigt den Enterprise-Plan (`403 plan_feature_unavailable`). In Entwicklungsumgebungen ist sie offen.

## MFA-Richtlinie

| Attribut | Werte | Beschreibung |
|---|---|---|
| `required_for` | `none`, `admins`, `all` | Wer einen zweiten Faktor verwenden muss. `admins` umfasst Administratorrollen der Organisation und Mitglieder mit `idp_`-Systemberechtigungen. |
| `allowed_factors` | `totp`, `webauthn`, `sms`, `email` | Zweite Faktoren, die Mitglieder verwenden dürfen. Mindestens einer; jeder muss in der Umgebung aktiviert sein. |
| `enrollment_grace_days` | 0–30 | Tage, in denen sich ein Mitglied anmelden darf, bevor es einen erforderlichen Faktor registriert. Standard: `0`. |

## Lebenszyklus

- Eine Organisation hat je Art genau eine Richtlinie. Die Ressourcen-ID ist die ID der Organisation.
- Jeder Schreibvorgang sendet die vollständige Richtlinie. Ein Anlegen überschreibt keine bestehende Richtlinie: Hat die Organisation bereits eine (gesetzt im Dashboard oder im Admin-Portal), antwortet die API mit `428`, und Sie importieren sie stattdessen.
- Aktualisierungen und Löschungen senden `If-Match`. Eine außerhalb des Providers geänderte Richtlinie erscheint beim nächsten `plan` als Drift; eine außerhalb des Providers gelöschte Richtlinie wird neu angelegt.
- Das Entfernen der Ressource löscht die Richtlinie, und die Organisation übernimmt wieder die Einstellung der Umgebung.

## Import

Import mit der ID der Organisation:

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