Мне необходимо использовать AD для авторизации в некоторых онлайн-инструментах, чтобы облегчить разработку программного обеспечения в трех странах в крупной международной компании.
В разделе инструментов AD/LDAP есть одна строка для указания BASE DN и еще одна строка для применения фильтра пользователя.
Фильтр пользователя по умолчанию: (&(objectCategory=Person)(sAMAccountName=*))
Люди, с которыми мне нужно связаться, находятся в следующих местах AD:
- MyCompany.com/AAA/EMA/RS/Aarhus/Accounts
- MyCompany.com/BBB/AMR/RS/Atlanta/Accounts
- MyCompany.com/CCC/AP/COR/Xian/Accounts
Каждая запись в аккаунте содержит 4–5 более глубоких слоев, и мне нужны все эти люди.
Если я просто установлю BASE DN какDC=МояКомпания,DC=com(я считаю, что так и должно быть) У меня возвращено более 250000 пользователей, из которых только около 2000 должны иметь доступ. :-( Мои инструменты кэшируют записи, и синхронизация занимает довольно много времени. :-(
Я бы хотел использовать более точный фильтр для более точного определения местоположений.
Я перепробовал все возможные варианты, искал везде и всюду, а также спрашивал разработчиков инструментов и наш ИТ-отдел о том, как это сделать, но ничего хотя бы отдаленно пригодного к использованию не нашел.
Я считаю, что фильтр должен быть примерно таким, за исключением того, что теперь я знаю, что memberOf проверяет членство в группе, а не местоположение в иерархии AD.
(&(objectCategory=Person)(sAMAccountName=*)
(|
(memberOf:=OU=Accounts,OU=Aarhus,OU=RS,OU=EMA,OU=AAA,DC=MyCompany,DC=com)
(memberOf:=OU=Accounts,OU=Atlanta,OU=RS,OU=AMR,OU=BBB,DC=MyCompany,DC=com)
(memberOf:=OU=Accounts,OU=Xian,OU=COR,OU=AP,OU=CCC,DC=MyCompany,DC=com)
)
)
И еще раз хочу уточнить: я не могу создать (и обновлять) группу всех людей и подразделений, которые должны иметь доступ.
Я с нетерпением жду ваших предложений...
Примечание: Это мое первое знакомство с AD/LDAP, поэтому я, возможно, что-то упустил из виду в этом объяснении — попробуйте заполнить пробелы. Спасибо.