Здравствуйте, Виталий!
У меня под рукой нет двух AD-контроллеров, есть один, и тот на samba4 =) . Поэтому я сделал метакаталог, который два раза подключается к одному и тому же серверу (но к разным веткам). slapd.conf:
include /etc/openldap/schema/core.schema
moduleload back_ldap.la
moduleload back_meta.la
database meta
suffix "dc=example,dc=com"
bind-timeout 1000000
uri "ldap://192.168.0.1/ou=FirstDC-Users,dc=example,dc=com"
suffixmassage "ou=FirstDC-Users,dc=example,dc=com" "CN=Users,DC=mycompany,DC=ru"
idassert-bind bindmethod=simple
binddn="CN=Administrator,CN=Users,DC=mycompany,DC=ru"
credentials="somePassword"
mode=self
idassert-authzFrom "dn:*"
uri "ldap://192.168.0.1/ou=SecondDC-Users,dc=example,dc=com"
suffixmassage "ou=SecondDC-Users,dc=example,dc=com" "CN=Computers,DC=mycompany,DC=ru"
idassert-bind bindmethod=simple
binddn="CN=Administrator,CN=Users,DC=mycompany,DC=ru"
credentials="somePassword"
mode=self
idassert-authzFrom "dn:*"
Вам, соответственно, нужно будет подключаться к разным серверам и указывать нужные параметры подлючения.
Анонимные запросы в метакаталог (используются параметры подключения из slapd.conf):
# ldapsearch -x -LLL -H ldap://127.0.0.1 -b dc=example,dc=com -s one dn
dn: ou=FirstDC-Users,dc=example,dc=com
dn: ou=SecondDC-Users,dc=example,dc=com
# ldapsearch -x -LLL -H ldap://127.0.0.1 -b dc=example,dc=com -o ldif-wrap=no 'samaccountname=egor' | perl -MMIME::Base64 -wpe 's/^([^:]+):: (.+)$/"$1: " . decode_base64($2)/e'
dn: cn=Левинца Егор,ou=FirstDC-Users,dc=example,dc=com
sn: Левинца
givenName: Егор
INSTANCETYPE: 4
WHENCREATED: 20131216040219.0Z
...
Запросы в метакаталог с аутентификацией:
# ldapsearch -x -LLL -H ldap://127.0.0.1 -b dc=example,dc=com -D "CN=Левинца Егор,ou=FirstDC-Users,dc=example,dc=com" -W -s one dn
Enter LDAP Password:
dn: ou=FirstDC-Users,dc=example,dc=com
# ldapsearch -x -LLL -H ldap://127.0.0.1 -b dc=example,dc=com -D "CN=Левинца Егор,ou=FirstDC-Users,dc=example,dc=com" -W -o ldif-wrap=no 'samaccountname=egor' | \
perl -MMIME::Base64 -wpe 's/^([^:]+):: (.+)$/"$1: " . decode_base64($2)/e'
Enter LDAP Password:
dn: cn=Левинца Егор,ou=FirstDC-Users,dc=example,dc=com
sn: Левинца
givenName: Егор
INSTANCETYPE: 4
WHENCREATED: 20131216040219.0Z
...
Обратите внимание: DN аутентификации нужно указывать с учётом преобразования suffixmassage.
Егор