Hue의 기본 인증 방식은 최초 로그인하는 시점에 Username/Password를 임의로 지정 선택가능하며, 이 때 사용된 사용자 계정에게는 자동적으로 관리자(superuser) 권한이 부여됩니다.일반적으로 admin 계저을 많이 사용하며, 이 admin 계정을 사용하여 다른 사용자 계정을 생성하거나 생성된 계정에 관리자 권한을 부여할 수 있습니다.
Hue User는 Linux username과 동일한 사용자여야 합니다.
기본 Hue의 인증 시스템으로 Hue DB를 사용하지만, PAM, SPNEGO, OpenID, OAuth, SAML 및 LDAP과 같은 외부 인증 시스템과 연계가 가능하며, 본 문서에서는 기업용 인증 시스템으로 가장 많이 활용되는 LDAP 디렉토리 서비스(Microsoft AD나 OpenLDAP)를 활용하여 LDAP 디렉터리에 사전에 구성된 사용자나 그룹 정보를 참조(Import)하거나 LDAP을 활용한 외부 인증 시스템 통합 구성에 대한 내용에 대해 설명할 예정입니다.
Hue의 기본 인증 메커니즘은 다음 그림과 같이 Hue DB를 활용하여 사용자 자격증명의 유효성을 로그인하는 시점에 검증합니다:

하지만, 일반적인 기업 환경에서는 RBAC 기반의 사용자 통합 관리의 용도나 디렉터리 서비스에 정의된 그룹 기반으로 권한을 부여하는 용도로 활용하기 위해 Hue와 LDAP을 연계하려는 요구사항이 점차 많아지고 있으며, 실제 LDAP을 활용하여 운영환경을 구축한 많은 사례를 보유하고 있습니다:

위의 그림과 같이 Hue의 인증 방식(Authentication backend)를 LDAP으로 구성된 경우, Hue는 로그인하는 시점에 Hue DB가 아닌 LDAP에서 사용자 자격증명에 대한 유효성을 확인합니다:
[desktop] [[auth]] backend=desktop.auth.backend.LdapBackend |
Note: Hue에서 제공되는 Authentication Backend 옵션 Hue에서는 9가지의 Authentication Backend 옵션을 지원합니다. 본 문서에서는 가장 많이 활용되는 세 가지 옵션에 대해서만 설명합니다.
주의: 외부 인증 서버로 인증을 위임하도록 구성하더라도 인증의 메타 정보는 Hue DB에 명시적으로 통합됩니다. 인증 메타 정보가 Hue DB에 존재하더라도, 사용자 인증은 외부 시스템에서 수행됩니다. |
LDAP Authentication backend는 기본 설정 값으로 Hue에 존재하지 않는 사용자를 자동으로 생성하며, Hue 내부적으로 인증이 올바르게 수행되기 위해 LDAP에만 존재하는 사용자 인증 메타 정보를 Hue DB로 가져와야 합니다(사용자 메타 정보를 가져올 때 해당 사용자의 패스워드 정보는 Hue에 통합되지 않습니다.). 운영 환경 및 보안 요구사항에 따라 LDAP의 사용자 정보가 Hue에 자동으로 매핑되지 않고 수동으로 통합된 사용자에 대해서만 LDAP에서 인증을 수행할 필요가 있는 경우가 존재합니다. 이런 경우에는 Automatic Import 기능을 disable하여 요구사항을 충족할 수 있습니다:
[desktop] [[ldap]] create_users_on_login=false |
Hue에 수동으로 생성된 사용자나 LDAP과 같이 외부 인증 시스템에 정의된 사용자 정보를 Hue로 통합한 경우 해당 사용자는 default 그룹으로 자동 할당됩니다:
[useradmin] create_users_on_login=default (기본값) |
Hue에서 LDAP(MS AD나 openLDAP)을 다음과 같은 두 가지 용도로 활용할 수 있습니다:
· Hue의 LDAP Import 기능을 사용하여 AD / LDAP에 정의된 사용자나 그룹 정보를 가져온 후, 가져온 사용자와 패스워드 정보 기반으로 Hue User Admin에서 사용자 인증을 수행합니다.
· 모든 인증이 외부 LDAP 서버에서 수행되도록 Authentication Backend로 LDAP 서버를 사용하도록 구성할 수 있습니다. 즉, 모든 사용자는 LDAP 디렉터리에 사전에 구성되어야 합니다.
1. Integrating Hue with LDAP
Hue를 LDAP과 통합하면, 기존 LDAP의 사용자 및 그룹 정보를 활용할 수 있으며, 사용자 인증 정보를 복수의 시스템에서 관리할 필요가 없습니다(비록, LDAP의 사용자 인증 정보가 Hue DB로 통합되지만, 패스워드는 Hue에 Import 되지 않습니다.)
Hue와 LDAP이 통합된 환경에서는 1) Search Bind와 2) Direct Bind의 2가지 방식의 인증 방식을 지원합니다:
[desktop] [[ldap]] Search_bind_authentication(default: true) – true로 설정되면 search bind 방식이며, false이면 direct bind 방식 |
1) Search Bind: Hue에서 LDAP을 연동한 경우 기본 인증 방식으로, Search Bind 인증 메커니즘은 bind_dn(Distinguished Name)과 bind_password 옵션에 정의된 자격증명을 사용하여 ldapsearch를 실행하는 것을 의미합니다. Hue는 base_dn 옵션에 지정된 기본 DN에서 시작하여 하위 트리 검색을 수행합니다. 로그인 시 제공된 short name과 user_name_attr 옵션에 지정된 속성과 동일한 엔터티가 존재하는지 여부에 대해 base DN에서부터 검색을 수행합니다. 관리자는 user_filter를 사용하여 검색 범위를 제한하도록 구성할 수 있습니다.
2) Direct Bind: Direct Bind 인증 메커니즘은 사용자가 로그인할 때 입력한 username과 password를 사용하여 LDAP 서버에 바인딩합니다. Direct Bind 구성을 위해서는 다음 세 가지 옵션을 설정에 따라 동작합니다:
l Search_bind_authentication(default:true): false로 설정, bind_dn과 bind_password에 설정된 값을 사용하지 않음.
l nt_domain(default: mycompany.com): Active Directory 환경일 때만 사용되며, 접속할 NT 도메인 정보를 의미합니다.
ü nt_domain 옵션을 지정한 경우: Hue는 UPN(User Principal Names)을 사용하여 직접 LDAP 서비스에 바인드합니다
ü nt_domain 옵션을 지정하지 않은 경우: AD가 아닌 다른 LDAP 디렉터리 서비스의 경우 이 옵션을 지정하지 않으며, ldap_username_pattern 옵션이 사용됩니다. 예) 로그인시 제공된 username이 ldap_username_pattern(예: cn=<username>,dc=example,dc=com)의 <username> 값으로 치환되어 활용됩니다.
l ldap_username_pattern(Default: "uid=<username>,ou=People,dc=mycompany,dc=com"):
2. Enabling Import of Users and Groups from an LDAP Directory
LDAP 프로토콜을 사용하여 AD에 정의된 사용자 및 그룹 정보를 가져올 수 있습니다. 이 기능을 사용하기 위해서는 Hue에 LDAP 관련 설정을 해야 합니다.
주의: LDAP에서 사용자를 가져온 경우, 패스워드 정보는 포함되지 않기 때문에 수동으로 패스워드를 설정해야 합니다. |
Microsoft Active Directory 환경에서 LDAP Sync를 위한 필수 구성 옵션은 다음과 같습니다:
1) ldap_url: LDAP 서버의 URL 정보(예: ldap_url=ldap://auth.mycompany.com)
2) nt_domain: 접속할 NT Domain(MS AD를 사용하는 경우에만 구성 – 예: nt_domain=mycompany.com)
3) Search Bind 또는 Direct Bind 구성(search_bind_authentication 옵션이 값이 true 또는 false)
4) LDAP Search Base(base_dn): user와 group을 찾기 위한 search base.(예: base_dn=”DC=mycompany,DC=com”)
5) LDAP Bind User(bind_dn): 바인드할 사용자의 고유 이름(Disginguised name)으로 anonymous bind를 허용하지 않는 경우 사용하며, 대다수의 AD 환경에서는 anonymous bind를 허용하지 않음(예: bind_dn=”CN=ServiceAccount,DC=mycompany,DC=com”
6) LDAP Bind Password(bind_password): Bind User의 패스워드(예: bind_password=P@ssw0rd”).
환경에 따라 다음의 추가 옵션을 구성해야지 연동이 될 수도 있습니다:
1) user_filter: 사용자를 검색하기 위한 기본 필터(예: user_filter="objectclass=*")
A. user_name_attr: LDAP 스키마의 username 속성(예: user_name_attr=sAMAccountName)
2) group_filter: 그룹을 검색하기 위한 기본 필터(예: group_filter="objectclass=*")
A. group_name_attr: LDAP 스키마의 group 속성(예: roup_name_attr=cn)
추가적으로 LDAP 디렉터리 서비스와 TLS 연결이 필요한 경우, ldap_cert 옵션을 지정해야 하며, TLS 구성을 위해서는 LDAP 서버에서 신뢰한 CA 파일이 필요합니다.
3. Enabling the LDAP Server for User Authentication
LDAP 프로토콜을 사용하여 AD에 정의된 사용자 및 그룹 정보를 가져올 수 있습니다. 이 기능을 사용하기 위해서는 Hue에 LDAP 관련 설정을 해야 합니다.
중요: 사용자 인증 구성을 LDAP Backend를 사용하도록 변경하는 경우, Hue User Admin의 사용자 인증 기능이 비활성화 됩니다. 즉, 다음과 같은 조치를 하지 않는 경우에는 Hue에서 사용할 superuser 계정이 없음을 의미합니다. • AD에서 하나 이상의 superuser 계정으로 사용할 사용자를 Import 후, superuser 권한을 할당. • 이미 LDAP authentication backend를 사용하도록 구성한 경우에는, LDAP backend를 사용하여 Hue에 로그온할 수 있습니다: 즉, Hue DB에 LDAP user가 생성됩니다. 이후, LDAP authentication backend를 비활성화하고, LDAP에서 가져온 사용자에게 superuser 권한을 부여합니다. Superuser 권한을 할당한 후에 인증 구성을 "LDAP authentication backend"로 변경합니다. |
전체적인 작업 순서는 다음과 같습니다.
① Hue와 LDAP과 연동 구성
② Superuser로 사용할 사용자 Import 및 superuser 권한 부여
③ 인증 구성을 LDAP으로 변경
1) Hue와 LDAP 연동 구성: “2. Enabling Import of Users and Groups from an LDAP Directory”에서 설명한 Hue와 LDAP과의 연동 구성 참조
2) superuser로 사용할 사용자 Import 및 superuser 권한 부여:
① Hue 웹 UI에 “admin” 계정으로 로그온
② UserAdmin 환경으로 이동하기 위해, 로그인한 사용자 이름을 클릭하여 “Manage Users”를 선택
③ “Add / Sync LDAP User”를 클릭
④ 관리자로 설정할 사용자를 입력하고, “Create home directory” 옵션을 선택
⑤ “Add/Sync User” 버튼을 클릭
⑥ LDAP의 사용자가 동기화된 후, 가져온 사용자에게 superuser 권한을 부여하기 위해 User 화면에서 동기화된 사용자 링크를 클릭하여 사용자 편집 화면으로 이동
⑦ 권한을 편집하기 위해 “Step3: Advanced”로 이동 후, “Superuser status” 체크박스 선택
3) 인증 구성을 LDAP으로 변경: Authentication backend 구성을 LDAP으로 변경
기본 백-앤드 정보인 “desktop.auth.backend.AllowFirstUserDjangoBackend을 LDAP으로 변경 [desktop] [[auth]] backend=desktop.auth.backend.LdapBackend |
참고
Importing LDAP Users and Groups
Hue User Admin 인터페이스를 사용하여, LDAP의 사용자나 그룹을 Import 할 수 있습니다. Groups can also be imported using the User Admin interface, and users can be added to this group. As in the image below, not only can groups be discovered using DN and rDN search, but users that are members of the group or members of its subordinate groups can be imported as well.![]() You have the following options available when importing a user/group: |
'Big DATA > Hue&Oozie' 카테고리의 다른 글
Cloudera 5.10 업그레이드 후, Hue 콘솔 400 Bad Request 에러. (0) | 2017.02.02 |
---|---|
Oozie Timezoe 변경 - Hue (0) | 2016.11.16 |