Настройка прокси-сервера LDAP с несколькими серверами AD / LDAP - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над настройкой прокси-сервера LDAP с несколькими серверами AD / LDAP. Я могу успешно настроить прокси-сервер LDAP, но конечный результат - не то, что мне нужно.

У меня есть следующие настройки:

LDAP1 - ou = People, dc = пример, dc = com (ldap: //ldaphost1.example.com: 389)

LDAP2 - ou = People, dc = пример, dc = biz(ldap: //ldaphost2.example.biz: 389)

Прокси-сервер LDAP - dc = ldapproxy, dc = com (ldap: //ldapproxy.com: 389)

Вот мой slapd.conf

# Database LDAP for local Manager authentication

database ldap
suffix "cn=manager,dc=ldapproxy,dc=com"
rootdn "cn=manager,dc=ldapproxy,dc=com"
rootpw secret

# Database LDAP for LDAP 1
database        ldap
suffix          "ou=LDAP1,dc=ldapproxy,dc=com"

uri ldap://ldaphost1.example.com

idassert-bind bindmethod=simple
   binddn="cn=ldapadm,dc=example,dc=com"
   credentials="secret"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=Manager,dc=ldapproxy,dc=com"

overlay rwm
rwm-suffixmassage   "ou=LDAP1,dc=ldapproxy,dc=com" "ou=People,dc=example,dc=com"

# Database LDAP for LDAP 2
database        ldap
suffix          "ou=LDAP2,dc=ldapproxy,dc=com"

uri  ldap://ldaphost2.example.biz

idassert-bind bindmethod=simple
  binddn="cn=ldapadm,dc=example,dc=biz"
  credentials="secret"
  mode=none
  flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=Manager,dc=ldapproxy,dc=com"

overlay rwm
rwm-suffixmassage   "ou=LDAP2,dc=ldapproxy,dc=com" "ou=People,dc=example,dc=biz"

Данная конфигурация работает.

Поиск LDAP с помощью ou = LDAP1


    [root@ldapproxy ~]# ldapsearch -x -h ldapproxy.com -b ou=LDAP1,dc=ldapproxy,dc=com
    # extended LDIF
    #
    # LDAPv3
    # base <ou=LDAP1,dc=ldapproxy,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #

    # LDAP1, ldapproxy.com
    dn: ou=LDAP1,dc=ldapproxy,dc=com
    objectClass: organizationalUnit
    ou: People

    # shatrughan.saxena, LDAP1, ldapproxy.com
    dn: uid=shatrughan.saxena,ou=LDAP1,dc=ldapproxy,dc=com
    objectClass: top
    objectClass: account
    objectClass: posixAccount
    objectClass: shadowAccount
    cn: shatrughan.saxena
    uid: shatrughan.saxena
    uidNumber: 9999
    gidNumber: 100
    homeDirectory: /home/shatrughan.saxena
    loginShell: /bin/bash
    gecos: Shatrughan Saxena[Admin]
    shadowLastChange: 17058

    shadowMin: 0
    shadowMax: 99999
    shadowWarning: 7
    userPassword:: xsxlsjdojldwlxlsxlzxjojojljlxlsl=

    # search result
    search: 2
    result: 0 Success

    # numResponses: 3
    # numEntries: 2
    [root@ldapproxy ~]#

Поиск LDAP с помощью ou = LDAP2

[root@ldapproxy ~]# ldapsearch -x -h ldapproxy.com -b ou=LDAP2,dc=ldapproxy,dc=com  
# extended LDIF
#
# LDAPv3
# base <ou=LDAP2,dc=ldapproxy,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# LDAP2, ldapproxy.com
dn: ou=LDAP2,dc=ldapproxy,dc=com
objectClass: organizationalUnit
ou: People

# amitabh.bachchan, LDAP2, ldapproxy.com
dn: uid=amitabh.bachchan,ou=LDAP2,dc=ldapproxy,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: amitabh.bachchan
uid: amitabh.bachchan
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/amitabh.bachchan
loginShell: /bin/bash
gecos: Amitabh Bachchan[Admin]
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
userPassword:: reyyrweroaldadaiinaknz2ewueowue=

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2
[root@ldapproxy ~]#

Моя проблемаэто когда я пытаюсь запустить команду ldapsearch, мне нужно указать baseDn с помощью OU, я не могу просто использовать baseDn как dc = ldapproxy, dc = com, чтобы получить субъекты из подразделений LDAP1 и LDAP2. См. Команду ldapsearch ниже:

[root@ldapproxy ~]# ldapsearch -x -h ldapproxy.com -b dc=ldapproxy,dc=com
# extended LDIF
#
# LDAPv3
# base <dc=ldapproxy,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

**# search result
search: 2
result: 32 No such object**

# numResponses: 1
[root@ldapproxy ~]#

Мне нужна помощь, чтобы настроить прокси-сервер LDAP для отображения сведений об обоих доменах, используя только значения baseDN.

С уважением.

1 Ответ

0 голосов
/ 30 октября 2019

Я могу решить мою проблему, используя базу данных метаданных вместо базы данных ldap. Наконец, конфигурация slapd.conf выглядит следующим образом:

Я публикую здесь только конфигурацию БД

#######################################################################
# META Database Definitions
#######################################################################

# Database
database        meta
suffix "dc=ldapproxy,dc=com"
rootdn "cn=manager,dc=ldapproxy,dc=com"
rootpw secret

# LDAP 1
uri ldap://ldaphost1.example.com/ou=LDAP1,dc=ldapproxy,dc=com

lastmod       off
suffixmassage   "ou=LDAP1,dc=ldapproxy,dc=com" "ou=People,dc=example,dc=com"
idassert-bind bindmethod=simple
   binddn="cn=ldapadm,dc=example,dc=com"
   credentials="secret"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=Manager,dc=ldapproxy,dc=com"


# LDAP 2
uri  ldap://ldaphost2.example.biz/ou=LDAP2,dc=ldapproxy,dc=com

lastmod       off
suffixmassage "ou=LDAP2,dc=ldapproxy,dc=com" "ou=People,dc=example,dc=biz"
idassert-bind bindmethod=simple
  binddn="cn=ldapadm,dc=example,dc=biz"
  credentials="secret"
  mode=none
  flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=Manager,dc=ldapproxy,dc=com"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...