使用多个 AD/LDAP 服务器配置 LDAP 代理服务器
Configuring LDAP Proxy Server with multiple AD/LDAP Servers
我正在使用多个 AD/LDAP 服务器配置 LDAP 代理服务器。我能够成功配置 LDAP 代理,但最终结果不是我需要的。
我有以下设置:
LDAP1 - ou=People,dc=example,dc=com (ldap://ldaphost1.example.com:389)
LDAP2 - ou=People,dc=example,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 命令时,我需要用 OU 指定 baseDn,我不能只使用 baseDn 作为 dc=ldapproxy,dc=com 从 LDAP1 和 LDAP2 OU 获取子集.请参阅下面的 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 值显示两个域的详细信息。
此致。
我可以通过使用元数据库而不是 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"
我正在使用多个 AD/LDAP 服务器配置 LDAP 代理服务器。我能够成功配置 LDAP 代理,但最终结果不是我需要的。
我有以下设置:
LDAP1 - ou=People,dc=example,dc=com (ldap://ldaphost1.example.com:389)
LDAP2 - ou=People,dc=example,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 命令时,我需要用 OU 指定 baseDn,我不能只使用 baseDn 作为 dc=ldapproxy,dc=com 从 LDAP1 和 LDAP2 OU 获取子集.请参阅下面的 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 值显示两个域的详细信息。
此致。
我可以通过使用元数据库而不是 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"