사용자가 그룹과 다른 OU 경로의 구성원인 경우 LDAP를 사용한 PowerFlex 인증이 작동하지 않음
Summary: LDAP 서비스 구성에 할당된 메일 그룹의 구성원인 사용자가 ScaleIO 클러스터에서 LDAP 인증을 활성화한 후 로그인할 수 없습니다.
Symptoms
시나리오
MDM 클러스터 또는 단일 Active Directory 도메인이 있는 게이트웨이에서 ScaleIO용 LDAP 서비스를 구성합니다. 동일한 도메인 내의 서로 다른 OU에서 사용자와 ScaleIO 그룹을 구성하는 동안에도 이 문제가 발생할 수 있습니다.
증상
사용자가 CN=testuser,OU=Users,OU=IT Dept,DC=swlab,DC=local에 있습니다.
그룹은 다음과 같습니다. CN=Sio_Admin_Role, OU=글로벌 그룹, OU=그룹, DC=swlab, DC=로컬
MDM 또는 게이트웨이 추적 로그에서 다음과 같은 경고 메시지를 찾을 수 있습니다.
gateway-trace.log의 오류 메시지는 다음과 같습니다. 2017-06-14 11:49:46,587 [http-nio-443-exec-6] 오류 c.e.s.s.w.s.ScaleIOSecurityUtils - 그룹 CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
영향
일부 사용자는 LDAP 인증을 사용하여 ScaleIO 시스템 또는 게이트웨이에 로그인할 수 없습니다.
Cause
근본 원인
이 문제의 근본 원인은 LDAP 서비스가 ScaleIO 클러스터에 추가될 때 사용된 "--ldap_base_dn" 매개변수의 수준이 너무 낮기 때문입니다.
위의 예제 문제에 대해서는 아래 구성을 참조하십시오.
scli --add_ldap_service --ldap_service_uri "ldap://swlab.local" --ldap_base_dn "OU=GlobalGroups,OU=Groups,DC=swlab,DC=local" --ldap_service_name testldap scli --assign_ldap_groups_to_roles --administrator_role_dn "CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local" --monitor_role_dn "CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local" --ldap_service_name testldap
이렇게 하면 AD 하이브 스키마에서 검색을 시작하는 기본 dn이 너무 낮게 배치됩니다. "swlab.local/Groups/GlobalGroups"에서 시작하는 경우 LDAP가 상위 레벨의 사용자를 쿼리할 수 없습니다.
따라서 이 경우 "testuser"는 "swlab.local/IT Dept/Users/testuser"에 있으므로 그룹 "Sio_Admin_Role"를 쿼리하면 base_dn 아래에서 구성원 사용자를 다시 찾으려고 시도합니다.
사용자가 존재하지 않으며 로그인이 성공하지 못합니다.
Resolution
해결 방법
이 문제를 해결하려면 ScaleIO에서 LDAP 서비스를 다시 생성하고 더 높은 수준의 base_dn 사용하십시오. 위의 예에서는 "add_ldap_service" scli 명령에서 다음을 변경할 수 있습니다.
scli --add_ldap_service --ldap_service_uri "ldap://swlab.local" --ldap_base_dn "DC=swlab,DC=local" --ldap_service_name testldap
base_dn 도메인의 루트로 변경하면 LDAP는 SIO 역할 그룹의 구성원인 적절한 사용자에 대해 OU 또는 CN을 쿼리할 수 있습니다.