
# 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 리소스가 사용할 수 있도록 상태에 보관됩니다.

## 캡처와 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 라우팅도 함께 중단됩니다.
- 조직을 삭제하면 그 도메인도 삭제됩니다. 프로바이더 밖에서 삭제된 도메인은 상태에서 제거되고 다시 계획됩니다.

## 가져오기

ID 또는 `<org_id>/<domain>`으로 가져오세요:

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