Como lidar com nomes de usuários duplicados do AD de domínios diferentes para autenticação usando o proxy ldap + nslcd

3

Eu tenho um cenário em que há uma máquina Ubuntu que serve como proxy ldap usando ldap como backend e eu tenho duas máquinas windows 2008 r2 tendo diretório ativo, cada um com diferentes domínios vamos dizer abc.com & xyz.com .

Ambos são diferentes, com um nome de usuário único em cada um.

Mas talvez por acaso possa haver o mesmo nome de usuário em ambos os anúncios, digamos, nome de usuário test_ad1 em abc.com & mesmo nome de usuário test_ad1 em xyz.com com uid / gid diferente guias de atributo unix nas propriedades do usuário.

Então, como lidar com usuários duplicados de diferentes ADs para autenticação?

Aqui está eu tentei até agora ou seja, definindo proxy ldap correto com nslcd, pam, eu sou capaz de obter ambos os usuários AD, ou seja, usando "getent passwd" comando na minha máquina proxy ubuntu, mostra usuários como

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)

como podemos ver, todos os usuários têm uid / gid diferentes, ou seja, são únicos.

Então, para autenticação eu tentei usar o nome de domínio indivisual na minha máquina proxy ldap do ubuntu, mas falhei,

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"

mas quando tento apenas su test_ad1 & insira a senha do primeiro anúncio (abc.com), ou seja, 123 @ teste , do que faça logon com êxito e quando eu inserir a senha do segundo anúncio (xyz.com) ou seja, teste @ 1234 para o mesmo su test_ad1 do que mostra su: Falha de autenticação "embora a senha seja diferente em cli.

Acho que outros test_ad1 (10011: 777, por exemplo, ad2 user) vêm depois de test_ad1 (20003: 666, por exemplo, ad1 user) na lista getent passwd , isso provavelmente se deve ao comportamento sequencial de trabalho do nslcd , por favor corrija se estiver errado.

Aqui está o meu 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 ##########

Aqui está o 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

Observação: eu sigo este documento para autenticar o proxy do ldap para 1 AD.

Eu sou novo neste & Eu sei que isso pode ser um pouco confuso!

Então, qualquer especialista em LDAP / AD por aí pode ajudar a lidar com esse tipo de cenário?

Qualquer ajuda seria apreciada. Obrigado.

    
por Rahul_Dange 04.04.2017 / 09:19

0 respostas