PowerFlex-autentisering med LDAP fungerar inte när användaren är medlem i en annan organisationsenhetssökväg än gruppen
Summary: Användaren som är medlem i distributionsgruppen som tilldelades LDAP-tjänstkonfigurationen kunde inte logga in efter att ha aktiverat LDAP-autentisering i ScaleIO-klustret.
Symptoms
Scenario
Konfigurera LDAP-tjänster för ScaleIO i antingen MDM-klustret eller gatewayen med en enda Active Directory-domän. Det här problemet kan uppstå när du konfigurerar användare och ScaleIO-gruppen i olika organisationsenheter inom samma domän.
Symptom
Användaren finns i CN=testuser,OU=Users,OU=IT-avdelningen,DC=swlab,DC=local
Gruppen är: CN=Sio_Admin_Role,OU=GlobalGroups,OU=Grupper,DC=swlab,DC=local
Vi hittar följande varningsmeddelanden i MDM- eller gatewayspårningsloggen.
Felmeddelandet i gateway-trace.log är: 2017-06-14 11:49:46,587 [http-nio-443-exec-6] FEL c.e.s.s.w.s.ScaleIOSecurityUtils – Det gick inte att hitta användartestanvändaren i gruppen CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Påverkan
Vissa användare kan inte logga in på ScaleIO-systemet eller gatewayen med LDAP-autentisering.
Cause
Orsaken
Rotorsaken till det här problemet är att parametern "--ldap_base_dn" som användes när LDAP-tjänsten lades till i ScaleIO-klustret var på en för låg nivå.
Se konfigurationen nedan för exempelproblemet ovan:
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
Detta placerar bas-dn för att börja söka för lågt i AD Hive-schemat. När du börjar på "swlab.local/Groups/GlobalGroups" kan LDAP inte fråga efter en användare på en högre nivå.
Så i det här fallet finns "testuser" i "swlab.local/IT Dept/Users/testuser", så när gruppen "Sio_Admin_Role" efterfrågas försöker den hitta medlemsanvändaren under base_dn igen.
Användaren finns inte där och inloggningen lyckas inte.
Resolution
Alternativ lösning
Lös problemet genom att återskapa LDAP-tjänsten i ScaleIO och använda en base_dn på högre nivå. I exemplet ovan kan följande ändras i scli-kommandot "add_ldap_service".
scli --add_ldap_service --ldap_service_uri "ldap://swlab.local" --ldap_base_dn "DC=swlab,DC=local" --ldap_service_name testldap
Genom att ändra base_dn till domänens rot kan LDAP fråga vilken organisationsenhet eller CN som helst efter lämplig användare som är medlem i SIO-rollgruppen.