Автентифікація PowerFlex за допомогою LDAP не працює, якщо користувач є учасником іншого шляху OU з групи
Summary: Користувач, який є членом групи розсилки, якій було призначено конфігурацію служби LDAP, не зміг увійти в систему після ввімкнення автентифікації LDAP у кластері ScaleIO.
Symptoms
Сценарій
Налаштування служб LDAP для ScaleIO у кластері MDM або шлюзі з одним доменом Active Directory. Під час налаштування Users та групи ScaleIO в різних OU в межах одного домену ця проблема може виникнути.
Симптоми
Користувач знаходиться в CN=testuser,OU=Користувачі,OU=IT відділ,DC=swlab,DC=локальний
До складу групи входять: 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 - User testuser не знайдено в групі CN=Sio_Admin_Role,OU=GlobalGroups,OU=Groups,DC=swlab,DC=local
Вплив
Деякі користувачі не можуть увійти в систему ScaleIO або шлюз за допомогою аутентифікації LDAP.
Cause
Першопричина
Основна причина цієї проблеми полягає в тому, що параметр "--ldap_base_dn", який використовувався під час додавання служби LDAP до кластера ScaleIO, був занадто низьким на рівні.
Перегляньте наведену нижче конфігурацію для наведеного вище прикладу проблеми:
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
Це розміщує базовий dn для початку пошуку занадто низько в схемі вулика AD. При запуску з "swlab.local/Groups/GlobalGroups" LDAP не може надсилати запит до користувача на вищому рівні.
Отже, у цьому випадку "testuser" існує у "swlab.local/IT Dept/Users/testuser", тому при запиті групи "Sio_Admin_Role" він знову намагається знайти користувача-члена під base_dn.
Користувача там немає, і вхід не вдається.
Resolution
Спосіб вирішення проблеми
Щоб вирішити цю проблему, повторно створіть службу LDAP у ScaleIO та використовуйте base_dn вищого рівня. Для наведеного вище прикладу наступне може бути змінено в команді 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
Змінюючи base_dn як кореневий домен, LDAP може надсилати запити до будь-якого OU або CN відповідного користувача, який є членом рольової групи SIO.