Я пытаюсь настроить наш Linux-сервер с nslcd в нескольких доменах AD, example.com и sub.exmaple.com.
Текущая настройка с nslcd довольно проста и работает для домена example.com:
uid nslcd
gid ldap
uri ldaps://dc1.example.com:636
base dc=example,dc=com
binddn cn=srv_authuser,ou=server,dc=example,dc=com
bindpw ----
tls_reqcert never
pagesize 1000
referrals off
idle_timelimit 800
filter passwd (&(objectClass=user)(!(objectClass=computer)))
map passwd uid sAMAccountName
map passwd uidNumber objectSid:S-1-5-21-4129304498-564803152-741489137
map passwd gidNumber gidNumber
map passwd loginShell "/bin/bash"
map passwd homeDirectory "/home/$sAMAccountName"
map passwd gecos displayName)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
map group gidNumber objectSid:S-1-5-21-4129304498-564803152-741489137
map shadow uid sAMAccountName
map shadow shadowLastChange pwdLastSet
filter group (objectClass=group)
tls_cacertdir /etc/openldap/cacerts
ssl on
Возможно ли с помощью nslcd (pam-nss-ldap) настроить второй запрос ldap для sub.domain.com или это возможно только через sssd? Если у пользователя привязки есть права администратора на sub.domain.com, может ли он также получить пароли / данные учетной записи?
Спасибо
Вы не сможете делать то, что хотите, только с nslcd. Вместо этого вам придется настроить поддельный сервер LDAP с поддельным доменным именем, обслуживаемым slapd, с бэкэндом slapd-meta или slapd-ldap. Затем вы добавите свои серверы AD, например, fakedomain.local. Как только это будет сделано, вы сможете зарегистрировать своего клиента на fakedomain.local, внутри которого будет несколько доменов. После этого вы сможете составить список пользователей с двух разных серверов LDAP.
вот пример конфигурации вашего прокси-сервера LDAP:
sudo yum install -y openldap openldap-clients openldap-серверы
кот /etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/collective.schema
include /etc/openldap/schema/pmi.schema
include /etc/openldap/schema/ppolicy.schema
allow bind_v2
allow bind_anon_cred
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/lib64/openldap/
moduleload rwm.la
moduleload back_ldap.la
moduleload back_meta.la
loglevel 4095
attributetype ( 1.2.840.113556.1.4.656 NAME 'userPrincipalName' EQUALITY caseExactMatch SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
#Active Directory1
database meta
suffix "dc=fakedomain,dc=local"
uri "ldap://ipofyourldap1:389/dc=fakedomain,dc=local"
readonly yes
lastmod off
suffixmassage "dc=fakedomain,dc=local" "ou=users,ou=office,dc=real1,dc=domain"
idassert-bind bindmethod=simple
binddn="CN=userwithadminrights,OU=users,OU=office,DC=real1,DC=domain"
credentials="yourplaintextpassword"
idassert-authzFrom "*"
#Active Directory2
database meta
suffix "dc=fakedomain,dc=local"
uri "ldap://ipofyourldap2:389/dc=fakedomain,dc=local"
readonly yes
lastmod off
suffixmassage "dc=fakedomain,dc=local" "ou=users,ou=office,dc=real2,dc=domain"
idassert-bind bindmethod=simple
binddn="CN=userwithadminrights,OU=users,OU=office,DC=real2,DC=domain"
credentials="yourplaintextpassword"
idassert-authzFrom "*"
Добавьте следующее:
#####################ADD TO /etc/openldap/schema/inetorgperson.schema############
attributetype ( 1.2.840.113556.1.4.221
NAME 'sAMAccountName'
SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
#####################ADD TO /etc/openldap/schema/inetorgperson.schema############
sudo rm -r /etc/openldap/slapd.d && sudo mkdir /etc/openldap/slapd.d && sudo chown -R ldap.ldap /etc/openldap/slapd.d
sudo slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
sudo slapd -d 1