и работают два LDAP сервера одновременно? Делал как в доке, первый работает, а второй ни в какую. Хотя если поменять их тупо местами, то тот, который был вторым до этого, заводится.
Не работает мапинг ролей, а сам сервер работает, можно вручную создать профиль связанный с этим сервером
т.е. проблема не в самих серверах а в маппинге?
Да, это можно проверить создав профиль в ад, клике, и залогиниться
Я сделал следующее: два разных домена AD добавил в конфиг кх, и попробовал подключиться через УЗ каждого из них, и все подключилось через оба сервера. А когда у меня стоят два сервера, но одного домена и с разными base_dn, то он подключается только через первый, через второй не хочет.
Подключение через мапинг или заведением учётки в клике?
Интересно, я правильно понял что мапинг ссылается на разные серверы из секции ldap_servers и в случае, если там одинаковые хосты, то залогиниться не получается, а если разные то все проходит?
в user_directories две разнвх записи под каждый сервер
В общем, вот так это изначально предполагается сделать: <ldap_servers> <service> <host>xxx.xxx.xxx.xxx</host> <port>389</port> <bind_dn>esia\{user_name}</bind_dn> <user_dn_detection> <base_dn>OU=Clickhouse,OU=Service Accounts,OU=Users,OU=Universe,DC=XXX,DC=XXX,DC=XXX,DC=XXX</base_dn> <search_filter>(&(objectClass=user)(sAMAccountName={user_name}))</search_filter> </user_dn_detection> <enable_tls>no</enable_tls> </service> <users> <host>xxx.xxx.xxx.xxx</host> <port>389</port> <bind_dn>esia\{user_name}</bind_dn> <user_dn_detection> <base_dn>OU=xxx,OU=Clients,OU=Users,OU=Universe,DC=xxx,DC=xxx,DC=xxx,DC=xxx</base_dn> <search_filter>(&(objectClass=user)(sAMAccountName={user_name}))</search_filter> </user_dn_detection> <enable_tls>no</enable_tls> </users> </ldap_servers> <user_directories> <ldap> <server>service</server> <roles> <ldap_user_role/> </roles> <role_mapping> <base_dn>OU=ClickHouse,OU=Roles,OU=Universe,DC=xxx,DC=xxx,DC=xxx,DC=xxx</base_dn> <attribute>CN</attribute> <scope>subtree</scope> <search_filter>(&(objectClass=group)(member={user_dn}))</search_filter> <prefix>gg-ch-test-</prefix> </role_mapping> </ldap> <!-- <ldap> <server>users</server> <roles> <ldap_user_role/> </roles> <role_mapping> <base_dn>OU=ClickHouse,OU=Roles,OU=Universe,DC=xxx,DC=xxx,DC=xxx,DC=xxx</base_dn> <attribute>CN</attribute> <scope>subtree</scope> <search_filter>(&(objectClass=group)(member={user_dn}))</search_filter> <prefix>gg-ch-test-</prefix> </role_mapping> </ldap> --> </user_directories>
И в такой настройке, если в service и users хосты будут разные, то мапинг ролей будет работать?
Дак у вас же сервисные учётки находятся в другой директории base_dn Тут <base_dn>OU=Clickhouse,OU=ServiceAccounts,OU=Users,OU=Universe,DC=XXX,DC=XXX,DC=XXX,DC=XXX</base_dn> И тут <base_dn>OU=xxx,OU=Clients,OU=Users,OU=Universe,DC=xxx,DC=xxx,DC=xxx,DC=xxx</base_dn> Вам же физически нужно смотреть в разные директории, или я что-то не так понял?
я оставил на уровне Users, а не Users/Clients or Users/Service accounts. просто мне нельзя было оставлять так, т.к. там есть директории, пользователи из которых даже не должны получить доступа, поэтому я поставил материнскую директорию, и сделал фильтр по роли, которая позволит авторизироваться.
Понял, спасибо за информацию)
да не за что :)
Обсуждают сегодня