Hue 로그에 Failed to bind to LDAP server 와 함께 AD 오류가 찍힌다.
LdapErr: DSID-0C090569, comment: AcceptSecurityContext error, data 52e, v4563
data 코드는 AD 가 돌려주는 실패 사유다.
| data | 의미 |
|---|---|
525 |
사용자(DN) 를 찾을 수 없음 |
52e |
DN 은 맞지만 비밀번호 불일치 |
530 |
로그인 허용 시간 아님 |
532 |
비밀번호 만료 |
533 |
계정 비활성화 |
701 |
계정 만료 |
775 |
계정 잠김 |
LDAP 서버 연결은 됐고 bind 단계에서 자격증명이 거부된 것이다. 가장 흔한 원인은 bind_dn 을 AD 가 받아들이는 형식(전체 DN 또는 UPN user@domain) 이 아니라 cdpadmin 같은 짧은 이름으로 넣은 경우다.
Hue 호스트에서 직접 bind 해 본다. 여기서 통과하면 Hue 설정(특히 bind_dn 형식) 문제, 실패하면 계정 · 비밀번호 문제로 좁혀진다.
ldapwhoami -x -H ldap://<ad-host> -D "CN=cdpadmin,CN=Users,DC=example,DC=com" -W
ldapsearch -x -H ldap://<ad-host> \
-D "CN=cdpadmin,CN=Users,DC=example,DC=com" -W \
-b "DC=example,DC=com" "(sAMAccountName=cdpadmin)"
-b 를 빼고 검색하면 result: 32 No such object 가 나온다. AD 는 OpenLDAP 과 달리 빈 base + subtree 검색을 허용하지 않기 때문이며, 인증 실패가 아니라 검색 실패다.
Cloudera Manager → Hue → Configuration → "Hue Service Advanced Configuration Snippet (Safety Valve) for hue_safety_valve.ini" 에 bind 에 성공한 전체 DN 을 그대로 넣는다.
[desktop]
[[ldap]]
ldap_url=ldap://<ad-host>
search_bind_authentication=true
base_dn="DC=example,DC=com"
bind_dn="CN=cdpadmin,CN=Users,DC=example,DC=com"
bind_password_script=/path/to/secure/get_ldap_pw.sh
nt_domain=example.com
create_users_on_login=true
[[[users]]]
user_filter="objectclass=user"
user_name_attr=sAMAccountName
[[[groups]]]
group_filter="objectclass=group"
group_name_attr=cn
search_bind_authentication=false 로 사용자 비밀번호를 직접 bind 하는 모드라면 ldap_username_pattern · nt_domain 이 맞는지 본다. 운영에서는 도메인 관리자 성격의 계정 대신 읽기 전용 서비스 계정을 bind 계정으로 쓰고, ldap://(389) 대신 ldaps://(636) 또는 StartTLS 를 쓴다.