LDAP 프록시 + nslcd를 사용하여 인증을 위해 다른 도메인의 중복 AD 사용자 이름을 처리하는 방법

LDAP 프록시 + nslcd를 사용하여 인증을 위해 다른 도메인의 중복 AD 사용자 이름을 처리하는 방법

LDAP를 백엔드로 사용하여 LDAP 프록시 역할을 하는 우분투 시스템이 있고 각각 서로 다른 도메인을 가진 활성 디렉터리가 있는 두 개의 Windows 시스템 2008 r2가 있는 시나리오가 있습니다.abc.com 및 xyz.com.

둘은 서로 다르며 각각 고유한 사용자 이름이 있습니다.

하지만 사용자 이름처럼 두 광고에 동일한 사용자 이름이 있을 수도 있습니다.abc.com의 test_ad1&동일한 사용자 이름xyz.com의 test_ad1사용자 속성의 unix 속성 탭에는 uid/gid가 다릅니다.

그렇다면 인증을 위해 서로 다른 AD의 중복 사용자를 처리하는 방법은 무엇입니까?

지금까지 시도한 것, 즉 nslcd, pam을 사용하여 올바른 LDAP 프록시를 설정하면 두 AD 사용자를 별도로 얻을 수 있습니다. "비밀번호 받기"내 우분투 에이전트 시스템의 명령은 다음과 같은 사용자를 보여줍니다.

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를 가집니다. 즉, 고유합니다.

그래서 인증을 위해 우분투 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& 첫 번째 광고(abc.com)의 비밀번호를 입력하세요.123@테스트성공적으로 로그인한 후 두 번째 광고(xyz.com)의 비밀번호를 입력하면테스트@1234같은 것을 위해su test_ad1보여지는 것보다su: 비밀번호가 달라도 인증에 실패했습니다.CLI에서.

다른 것 때문인 것 같아요test_ad1(10011:777은 ad2 사용자입니다)직후test_ad1(20003:666은 ad1 사용자입니다) 존재하다비밀번호 얻기목록, 이는 순차적 작업 동작으로 인한 것일 수 있습니다.NSCD제가 틀렸다면 정정해 주시기 바랍니다.

이것은 내 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

참고: 나는 팔로우한다이것AD 1개를 인증하는 데 사용되는 LDAP 프록시에 대한 문서입니다.

나는 이것에 익숙하지 않으며 이것이 약간 혼란스러울 수 있다는 것을 알고 있습니다!

그렇다면 LDAP/AD 전문가가 이러한 유형의 시나리오에 도움을 줄 수 있습니까?

어떤 도움이라도 대단히 감사하겠습니다. 감사해요.

관련 정보