A autenticação do PowerFlex usando LDAP não funciona quando o usuário é membro de um caminho de OU diferente do grupo
Summary: O usuário que é membro do grupo de distribuição atribuído à configuração do serviço LDAP não conseguiu fazer login depois de habilitar a autenticação LDAP no cluster ScaleIO.
Symptoms
Situação
Configurar serviços LDAP para ScaleIO no cluster do MDM ou no gateway com um único domínio do Active Directory. Ao configurar usuários e o grupo do ScaleIO em diferentes UOs dentro do mesmo domínio, esse problema pode ocorrer.
Sintomas
O usuário está em CN=testuser,OU=Users,OU=IT Dept,DC=swlab,DC=local
O grupo é: CN=Sio_Admin_Role,OU=GlobalGroups,OU=Grupos,DC=swlab,DC=local
Podemos encontrar as seguintes mensagens de advertência no log de rastreamento do gateway ou MDM.
A mensagem de erro no gateway-trace.log é: 2017-06-14 11:49:46,587 [http-nio-443-exec-6] ERRO c.e.s.s.w.s.ScaleIOSecurityUtils - Usuário testuser não foi encontrado no grupo CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Impacto
Alguns usuários não conseguem fazer login no sistema ScaleIO ou no gateway usando a autenticação LDAP.
Cause
Causa raiz
A causa raiz desse problema é que o parâmetro "--ldap_base_dn" usado quando o serviço LDAP foi adicionado ao cluster do ScaleIO estava em um nível muito baixo.
Consulte a configuração abaixo para o exemplo de problema acima:
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
Isso coloca o DN base para começar a pesquisar muito baixo no esquema de hive do AD. Ao começar em "swlab.local/Groups/GlobalGroups", o LDAP não pode consultar um usuário em um nível superior.
Então, neste caso, o "testuser" existe em "swlab.local/IT Dept/Users/testuser", então quando o grupo "Sio_Admin_Role" é consultado, ele tenta encontrar o usuário membro sob o base_dn novamente.
O usuário não existe lá, e o login não é bem-sucedido.
Resolution
Solução temporária
Para resolver esse problema, recrie o serviço LDAP no ScaleIO e use um base_dn de nível superior. Para o exemplo acima, o seguinte poderia ser alterado no comando "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
Alterando o base_dn para ser a raiz do domínio, o LDAP pode consultar qualquer OU ou CN para o usuário apropriado que é membro do grupo de funções do SIO.