refs #744: document verified AD Bridge sync recovery
This commit is contained in:
@@ -23,6 +23,8 @@ Keycloak을 삭제하지 않는다. 아래 단계를 순서대로 끝내고 Alic
|
||||
- Bridge 설치 위치: 운영은 domain-joined Windows member server 권장. 이 PoC는 격리된 AD VM에서 설치 가능 여부를 검증한다.
|
||||
- 네트워크: Bridge host → OCI Domain HTTPS 443, Bridge host → AD LDAPS 636
|
||||
- AD Bridge service account: 동기화 대상 OU 읽기, `cn=Deleted Objects` 읽기, delegated authentication에 필요한 password/lockout attribute 최소 권한
|
||||
- 동기화 대상은 기본 `CN=Users` container가 아니라 Bridge가 선택 가능한 OU에 둔다. 이 PoC는 `OU=Users,OU=DDS-PoC,DC=dds,DC=test` 및 `OU=Groups,OU=DDS-PoC,DC=dds,DC=test`를 사용한다.
|
||||
- OCI User 생성에 필요한 AD 사용자 속성은 최소 `sAMAccountName`, Given Name, Surname, `mail`이다. `mail`은 OCI가 허용하는 RFC 5322 형식의 주소여야 하며, `.test` 같은 내부 TLD는 거부될 수 있다.
|
||||
|
||||
현재 PoC Windows VM은 WinRM HTTPS(5986) 원격 실행이 확인됐다. OCI Run Command는 여전히 `ACCEPTED`에 머물 수 있으므로 installer 실행 수단으로 사용하지 않고 WinRM을 사용한다.
|
||||
|
||||
@@ -69,6 +71,44 @@ Bridge client secret은 AIPF OAuth client secret 및 DB service client secret과
|
||||
|
||||
성공 후에만 [2. delegated authentication 활성화](#2-delegated-authentication-활성화)로 진행한다. silent response file을 확보한 경우에도 secret을 response file에 평문 보관하지 않으며, 사용 직후 삭제·rotation 절차를 적용한다.
|
||||
|
||||
### 1.3 LDAPS 인증서와 동기화 범위 구성
|
||||
|
||||
Bridge installer의 `LDAP server is unavailable`은 TCP 636이 열려 있더라도 AD DS가 유효한 LDAPS 인증서를 제공하지 않을 때 발생할 수 있다. PoC에서는 AD DS FQDN인 `hmm-ad-dss-test.dds.test`를 CN/SAN으로 하는 private server certificate를 Local Machine `My`에 설치하고, Bridge host의 Trusted Root에도 신뢰시켰다. AD DS가 새 인증서를 선택하도록 재부팅한 후 FQDN 기준 TLS handshake를 확인한다.
|
||||
|
||||
```powershell
|
||||
$fqdn = 'hmm-ad-dss-test.dds.test'
|
||||
$cert = New-SelfSignedCertificate -DnsName $fqdn, 'hmm-ad-dss-test' `
|
||||
-CertStoreLocation 'Cert:\LocalMachine\My' -Type SSLServerAuthentication
|
||||
Export-Certificate -Cert $cert -FilePath 'C:\DDS\certs\dds-ad-ldaps-root.cer'
|
||||
Import-Certificate -FilePath 'C:\DDS\certs\dds-ad-ldaps-root.cer' `
|
||||
-CertStoreLocation 'Cert:\LocalMachine\Root'
|
||||
```
|
||||
|
||||
운영에서는 self-signed 인증서 대신 사내 CA가 발급한 인증서를 사용한다. `ad.cloud-handson.com` 같은 OIDC 공개 로그인 주소는 LDAPS server name이 아니다. Bridge의 AD 연결은 내부 AD FQDN과 TCP 636을 사용한다.
|
||||
|
||||
Bridge의 OU 선택 화면은 **OU만** 표시하고 기본 `CN=Users` container는 표시하지 않는다. 테스트 계정이 기본 container에 있으면 다음과 같이 전용 OU와 그룹을 만든 뒤 이동한다.
|
||||
|
||||
```text
|
||||
DC=dds,DC=test
|
||||
└─ OU=DDS-PoC
|
||||
├─ OU=Users ← dds-alice, dds-bob
|
||||
└─ OU=Groups ← DDS-DDS-Users
|
||||
```
|
||||
|
||||
`Edit configuration`에서 Users pane에는 `Users`, Groups pane에는 `Groups`만 선택한다. 상위 `dds.test` 또는 `DDS-PoC`를 Include hierarchy와 함께 선택하면 모든 하위 OU가 자동 선택되므로 선택하지 않는다. Supported operations의 AD 역방향 변경 항목은 모두 해제한다. import frequency를 설정하고, delegated authentication을 사용할 계획이면 **Enable local authentication**을 선택하고 **Enable federated authentication**은 해제한다. `Save` 뒤의 **Save Configuration Changes? → OK**까지 눌러야 상태가 `Configured`가 된다.
|
||||
|
||||
### 1.4 Import와 사용자 속성 검증
|
||||
|
||||
Bridge Action 메뉴의 **Import** 또는 configuration 저장으로 full sync를 실행한다. 성공 판정은 OCI Console의 Last import status에서 `Users imported from Active directory = 2`, `Groups imported from Active directory = 1`, failed 값이 모두 `0`인 것이다.
|
||||
|
||||
| AD 사용자 속성 | PoC 예시 | OCI 매핑 목적 |
|
||||
|---|---|---|
|
||||
| `sAMAccountName` | `dds-alice` | OCI User Name |
|
||||
| Given Name / Surname | `Alice` / `DDS` | OCI 필수 `name` |
|
||||
| `mail` | `dds-alice@cloud-handson.com` | OCI Primary Email |
|
||||
|
||||
속성을 보완한 뒤에도 이전 실패 사용자가 재시도되지 않으면 Users/Groups OU 선택을 모두 해제해 Save/OK하고, 다시 필요한 OU만 선택해 Save/OK한다. 이 절차는 full sync를 강제한다. 성공 여부는 OCI Domain Users/Groups와 [동기화 문제 해결](troubleshooting.md#동기화와-delegated-authentication)을 함께 확인한다.
|
||||
|
||||
## 2. delegated authentication 활성화
|
||||
|
||||
1. OCI Domain에서 동기화된 `dds-alice`, `dds-bob`을 확인한다.
|
||||
|
||||
Reference in New Issue
Block a user