Как обрабатывать повторяющиеся имена пользователей AD из разных доменов для аутентификации с использованием ldap proxy + nslcd

У меня есть сценарий, в котором есть одна машина ubuntu, которая служит прокси-сервером ldap с использованием ldap в качестве backend, и у меня есть две машины Windows 2008 r2 с активным каталогом с разными доменами, пусть говорят abc.com и xyz.com .

Оба они разные, с уникальным именем пользователя в каждом.

Но, возможно, случайно, что в обоих объявлениях может быть одинаковое имя пользователя, скажем, имя пользователя test_ad1 в abc.com и то же имя пользователя test_ad1 в xyz.com с разными uid / gid, где есть вкладки атрибутов unix в свойствах пользователя.

Итак, как обращаться с дублирующимися пользователями из разных AD для аутентификации?

Вот что я до сих пор пытался: установив правильный прокси ldap с помощью nslcd, pam, я могу получить обоих пользователей AD соответственно, то есть используя команду «getent passwd» на моем прокси-машине ubuntu, показывает, что пользователям нравится

test_ad3:*:20001:666:test ad3:/home/test_ad3:/bin/bash // this users are of ad1 (abc.com) test_ad4:*:20002:666:test ad4:/home/test_ad4:/bin/bash // this users are of ad1 (abc.com) test_ad1:*:20003:666:test ad11:/home/test_ad1:/bin/bash // this users are of ad1 (abc.com) password at AD1 is 123@test test_ad1:*:10010:777:test ad1:/home/test_ad1:/bin/bash // this users are of ad2 (xyz.com) password at AD2 is test@1234 test_ad2:*:10011:777:test ad2:/home/test_ad2:/bin/bash // this users are of ad2 (xyz.com) 

поскольку мы видим, что у всех пользователей есть разные uid / gid, т. е. они уникальны.

Поэтому для проверки подлинности я попытался использовать единое имя домена на моем прокси-сервере ubuntu ldap, но не смог,

 1) su abc.com\\test_ad1---> auth.log shows me "No passwd entry for user test_ad1" 2) su xyz.com\\test_ad1---> auth.log shows me "No passwd entry for user test_ad1" 

но когда я попробую только su test_ad1 и введите пароль 1-го объявления (abc.com), то есть 123 @ test, чем он успешно вступил в систему, и когда я ввожу пароль второго объявления (xyz.com), то есть test @ 1234 для того же su test_ad1, чем он показывает su: Ошибка аутентификации ", хотя пароль отличается от cli.

Я думаю, потому что другой test_ad1 (10011: 777, т.е. пользователь ad2) приходит после test_ad1 (20003: 666, т.е. пользователь ad1) в списке getent passwd , это, вероятно, связано с последовательным рабочим поведением nslcd, я думаю, исправьте, если ошибаетесь.

Вот мой slapd.conf

 ################ LDAP MULTIPLE BACK END ########## ######## 1st AD ########## moduleload back_ldap backend ldap database ldap suffix "dc=ad2,dc=com" uri ldap://192.168.1.189:389/ rebind-as-user idassert-bind bindmethod=SIMPLE binddn="CN=Administrator,CN=Users,DC=ad2,DC=com" credentials=Admin@1234 #mode=none idassert-authzFrom "*" access to * by * read moduleload rwm.la overlay rwm rwm-map attribute uid sAMAccountName rwm-map attribute homeDirectory unixHomeDirectory rwm-map objectClass posixAccount person ######## 1st AD ########## ######## 2nd AD ########## database ldap suffix "dc=ad1,dc=com" uri ldap://192.168.1.185:389/ rebind-as-user idassert-bind bindmethod=SIMPLE binddn="CN=Administrator,CN=Users,DC=ad1,DC=com" credentials=Admin@1234 #mode=none idassert-authzFrom "*" access to * by * read overlay rwm rwm-map attribute uid sAMAccountName rwm-map attribute homeDirectory unixHomeDirectory rwm-map objectClass posixAccount person ######## 2nd AD ########## 

Вот nslcd.conf

 # Mappings for Active Directory pagesize 1000 referrals off #nss_nested_groups yes # Passwd filter passwd (&(objectClass=posixAccount)(objectClass=USER)(!(objectClass=computer))(uidNumber=*)) map passwd homeDirectory unixHomeDirectory map passwd gecos displayName map passwd gidNumber primaryGroupID map shadow uid sAMAccountName # Shadow filter shadow (&(objectClass=posixAccount)(!(objectClass=computer))(uidNumber=*)) map shadow shadowLastChange pwdLastSet # Groups filter group (&(objectClass=posixGroup)(gidNumber=*)) #map group uniqueMember member # Local account for nsclcd uid nslcd gid openldap # Where is the LDAP Proxy #LDAP uri ldap://192.168.1.186:389 base dc=ad1,dc=com base dc=ad2,dc=com #Note when i change base to reverse order than user test_ad1 logon successfully with ad2 password and ad1 password fails #base dc=ad2,dc=com #base dc=ad1,dc=com base group ou=Groups,dc=ad1,dc=com base group ou=Groups,dc=ad2,dc=com # Connect-Account of ad1 binddn cn=administrator,cn=Users,dc=ad1,dc=com bindpw Admin@1234 # Connect-Account of ad2 binddn cn=administrator,cn=Users,dc=ad2,dc=com bindpw Admin@1234 

Примечание. Я следую этому документу для аутентификации прокси-сервера ldap до 1 AD.

Я новичок в этом, и я знаю, что это может быть запутанным !!!

Таким образом, любой специалист LDAP / AD может помочь справиться с этим типом сценария?

Любая помощь будет оценена по достоинству. Благодарю.

Linux и Unix - лучшая ОС в мире.