La autenticación de PowerFlex mediante LDAP no funciona cuando el usuario es miembro de una ruta de OU diferente del grupo
Summary: El usuario que es miembro del grupo de distribución que se asignó a la configuración del servicio LDAP no pudo iniciar sesión después de habilitar la autenticación LDAP en el clúster ScaleIO. ...
Symptoms
Situación
Configuración de servicios de LDAP para ScaleIO en el clúster del MDM o el gateway con un solo dominio de Active Directory. Al configurar usuarios y el grupo de ScaleIO en diferentes unidades organizativas dentro del mismo dominio, este problema puede ocurrir.
Síntomas
El usuario está en CN=testuser,OU=Users,OU=IT Dept,DC=swlab,DC=local
El grupo está formado por: CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Podemos encontrar los siguientes mensajes de advertencia en el MDM o el registro de seguimiento de la puerta de enlace.
El mensaje de error en gateway-trace.log es el siguiente: 2017-06-14 11:49:46,587 [http-nio-443-exec-6] ERROR c.e.s.s.w.s.ScaleIOSecurityUtils - El usuario testuser no se encontró en el grupo CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Impacto
Algunos usuarios no pueden iniciar sesión en el sistema ScaleIO o en el gateway mediante la autenticación LDAP.
Cause
Causa raíz
La causa raíz de este problema es que el parámetro "--ldap_base_dn" que se utilizó cuando se agregó el servicio LDAP al clúster de ScaleIO se encontraba en un nivel demasiado bajo.
Consulte la siguiente configuración para ver el problema de ejemplo anterior:
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
Esto coloca el dn base para comenzar a buscar demasiado bajo en el esquema de subárbol de AD. Cuando se inicia en "swlab.local/Groups/GlobalGroups", LDAP no puede consultar a un usuario en un nivel superior.
Por lo tanto, en este caso, el "testuser" existe en "swlab.local/IT Dept/Users/testuser", de modo que cuando se consulta al grupo "Sio_Admin_Role", intenta encontrar al usuario miembro en el base_dn nuevamente.
El usuario no existe allí y el inicio de sesión no se realiza correctamente.
Resolution
Solución alternativa
Para resolver este problema, vuelva a crear el servicio LDAP en ScaleIO y utilice un base_dn de nivel superior. Para el ejemplo anterior, se podría cambiar lo siguiente en el comando scli "add_ldap_service".
scli --add_ldap_service --ldap_service_uri "ldap://swlab.local" --ldap_base_dn "DC=swlab,DC=local" --ldap_service_name testldap
Si se cambia el base_dn para que sea la raíz del dominio, LDAP puede consultar cualquier OU o CN en busca del usuario adecuado que sea miembro del grupo de roles de SIO.