
# keenauth_organization_domain

`keenauth_organization_domain` リソースは、組織にドメインを追加します。検証済みのドメインを使うと、そのドメインのメールアドレスを持つユーザーが組織に参加でき、そのユーザーのサインインは組織の SSO 接続へルーティングされます。

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

## 検証

- `dns_txt` ドメイン（既定値）は `pending` で始まります。DNS プロバイダーで、`txt_record_name` に `txt_record_value` の値を TXT レコードとして公開してください。プラットフォームはスケジュールに従って確認します。すぐに確認するには `keenauth organization-domains verify <id>` を実行します。
- 72 時間以内に検証されなかったドメインは `expired` になります。やり直すには `keenauth organization-domains verify <id>` を実行します。これにより新しい `txt_record_value` が発行されます。
- 検証済みドメインの TXT レコードが消えると、ドメインは `unverified` になり、30 日後に `revoked` になります。
- 検証はアトリビュートではなくアクションです。プロバイダーは実行せず、`status` を読み取るだけです。
- `verification_method = "manual"` は、ドメインの所有者であるという宣言です。ドメインは直ちに `verified` になり、宣言は管理監査ログに記録されます。
- TXT の値は公開された DNS の値であり、秘密情報ではありません。DNS リソースが使えるように state に保持されます。

## キャプチャと SSO ルーティング

- `capture_mode` は `off`（既定値）、`suggest`、`auto_join` のいずれかです。`sso_routing_enabled` は、ドメインのメールアドレスを組織の SSO 接続へルーティングします。
- どちらも `verified` のドメインでのみ有効にできます。そうでない場合、API は `409 domain_not_verified` を返します。無効にすることは常に可能です。
- 新しい `dns_txt` ドメインでは既定値のままにしてください。ドメインが存在する前に有効にすると、プランが失敗します。ドメインを作成し、レコードを公開して、`status` が `verified` になるまで待ってから、有効にして再度 apply してください。

## ライフサイクル

- `domain` は小文字で、末尾にドットを付けずに書いてください。国際化ドメイン名は A ラベル（`xn--…`）で書いてください。
- `organization_id`、`domain`、`verification_method` を変更すると、ドメインは置き換えられ、新しい検証が始まります。
- リソースを削除するとドメインも削除され、キャプチャと SSO ルーティングも同時に停止します。
- 組織を削除すると、その組織のドメインも削除されます。プロバイダーの外で削除されたドメインは state から取り除かれ、次の plan で再計画されます。

## インポート

ID または `<org_id>/<domain>` でインポートします。

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