L’authentification PowerFlex à l’aide de LDAP ne fonctionne pas lorsque l’utilisateur est membre d’un chemin d’UO différent de celui du groupe
Summary: L’utilisateur membre du groupe de distribution affecté à la configuration du service LDAP n’a pas pu se connecter après l’activation de l’authentification LDAP dans le cluster ScaleIO.
Symptoms
Scénario
Configuration des services LDAP pour ScaleIO dans le cluster MDM ou la passerelle avec un domaine Active Directory unique. Ce problème peut se produire lors de la configuration des utilisateurs et du groupe ScaleIO dans différentes unités d’organisation au sein du même domaine.
Symptômes
L’utilisateur se trouve dans CN=testuser,OU=Users,OU=IT Dept,DC=swlab,DC=local
Le groupe est le suivant : CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Les messages d’avertissement suivants apparaissent dans le journal de suivi du MDM ou de la passerelle.
Le message d’erreur gateway-trace.log est le suivant : 2017-06-14 11:49:46,587 [http-nio-443-exec-6] ERROR c.e.s.s.w.s.ScaleIOSecurityUtils - User testuser was not found in group CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Impact
Certains utilisateurs ne parviennent pas à se connecter au système ScaleIO ou à la passerelle à l’aide de l’authentification LDAP.
Cause
Cause première
La cause première de ce problème est que le paramètre « --ldap_base_dn » utilisé lors de l’ajout du service LDAP au cluster ScaleIO était à un niveau trop bas.
Consultez la configuration ci-dessous pour connaître l’exemple de problème ci-dessus :
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
Cela place le nom unique de base pour commencer la recherche trop bas dans le schéma de ruche AD. Lorsque vous démarrez à l’emplacement « swlab.local/Groups/GlobalGroups », LDAP ne peut pas interroger un utilisateur à un niveau supérieur.
Dans ce cas, le « testuser » existe dans « swlab.local/IT Dept/Users/testuser », de sorte que lorsque le groupe « Sio_Admin_Role » est interrogé, il tente à nouveau de trouver l’utilisateur membre sous le base_dn.
L’utilisateur n’existe pas à cet endroit et la connexion échoue.
Resolution
Solution
Pour résoudre ce problème, recréez le service LDAP dans ScaleIO et utilisez une base_dn de niveau supérieur. Pour l’exemple ci-dessus, les éléments suivants peuvent être modifiés dans la commande 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
En modifiant le base_dn pour qu’il s’agisse de la racine du domaine, LDAP peut interroger n’importe quelle unité d’organisation ou nc pour connaître l’utilisateur approprié qui est membre du groupe de rôles SIO.