
# keenauth_organization_domain

La ressource `keenauth_organization_domain` ajoute un domaine à une organisation. Un domaine vérifié permet aux utilisateurs ayant une adresse e-mail dans ce domaine de rejoindre l'organisation et oriente leur connexion vers la connexion SSO de l'organisation.

```terraform
resource "keenauth_organization_domain" "acme" {
  organization_id = keenauth_organization.acme.id
  domain          = "acme.example.com"
}

output "txt_record" {
  value = {
    name  = keenauth_organization_domain.acme.txt_record_name
    value = keenauth_organization_domain.acme.txt_record_value
  }
}
```

## Vérification

- Un domaine `dns_txt` (par défaut) commence à `pending`. Publiez `txt_record_name` avec la valeur `txt_record_value` comme enregistrement TXT chez votre fournisseur DNS. La plateforme le vérifie selon un calendrier ; pour le vérifier immédiatement, exécutez `keenauth organization-domains verify <id>`.
- Un domaine non vérifié dans les 72 heures devient `expired`. Exécutez `keenauth organization-domains verify <id>` pour recommencer ; cela émet une nouvelle `txt_record_value`.
- Si l'enregistrement TXT d'un domaine vérifié disparaît, le domaine devient `unverified`, puis `revoked` après 30 jours.
- La vérification est une action, pas un attribut. Le fournisseur ne l'exécute jamais ; il lit seulement `status`.
- `verification_method = "manual"` est votre déclaration que vous possédez le domaine. Le domaine est `verified` immédiatement et la déclaration est écrite dans le journal d'audit de gestion.
- La valeur TXT est une valeur DNS publique, pas un secret. Elle est conservée dans l'état afin qu'une ressource DNS puisse l'utiliser.

## Capture et routage SSO

- `capture_mode` vaut `off` (par défaut), `suggest` ou `auto_join`. `sso_routing_enabled` oriente les adresses e-mail du domaine vers la connexion SSO de l'organisation.
- Les deux ne peuvent être activés que sur un domaine `verified` ; sinon l'API répond `409 domain_not_verified`. La désactivation est toujours permise.
- Pour un nouveau domaine `dns_txt`, gardez les valeurs par défaut : le plan échoue si vous les activez avant que le domaine n'existe. Créez le domaine, publiez l'enregistrement, attendez que `status` soit `verified`, puis activez-les et appliquez à nouveau.

## Cycle de vie

- Écrivez `domain` en minuscules, sans point final. Écrivez les noms internationalisés sous forme de A-labels (`xn--…`).
- Modifier `organization_id`, `domain` ou `verification_method` remplace le domaine et lance une nouvelle vérification.
- Supprimer la ressource supprime le domaine ; la capture et le routage SSO s'arrêtent avec lui.
- Supprimer l'organisation supprime ses domaines. Un domaine supprimé hors du fournisseur est retiré de l'état puis replanifié.

## Import

Importez par ID ou par `<org_id>/<domain>` :

```shell
tofu import keenauth_organization_domain.acme odm_01j9zq3v8c5m2x7k4t6r1n0b3d
tofu import keenauth_organization_domain.acme org_01j9zq3v8c5m2x7k4t6r1n0b3d/acme.example.com
```
