You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenLDAP子/中继服务器配置协助请求

OpenLDAP子/中继服务器配置协助请求

看起来你想搭建一个OpenLDAP中继/覆盖服务器,用来在不修改主LDAP的前提下扩展自定义组和权限控制——这个需求非常贴合企业里常见的“无主LDAP写权限但需要细化权限”的场景,下面我会帮你梳理具体的实现思路和关键配置步骤:

核心架构思路

你的子LDAP需要承担两个核心角色:

  • 代理查询:当应用请求用户基础信息(比如密码、用户属性)时,自动转发到主LDAP服务器获取
  • 本地扩展:存储你自定义的组(比如Support-NewHires),并关联主LDAP中的用户UID,同时让应用能把这些本地组和主LDAP的用户信息关联起来

步骤1:搭建基础OpenLDAP子服务器

先按照常规流程搭建一个全新的OpenLDAP服务器(slapd),确保能正常运行。这里建议你的子LDAP根DN设置为dc=corp,dc=ORG,dc=com(和主LDAP保持一致,这样应用对接时不需要调整基础DN)。

步骤2:配置LDAP Proxy Overlay(实现主LDAP查询转发)

这个overlay能让子LDAP将特定的查询请求转发到主LDAP服务器,比如用户的认证请求、用户属性查询。

  1. 先加载ldap overlay模块:
ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn: cn=module,cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ldap.la
EOF
  1. 为你的根DN配置proxy overlay,指向主LDAP服务器:
ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn: olcOverlay=ldap,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcLDAPOverlayConfig
olcOverlay: ldap
olcLDAPURI: ldap://xx.eng.yy.ORG.com
olcLDAPBase: dc=corp,dc=ORG,dc=com
olcLDAPBindDN: cn=readonly-user,dc=corp,dc=ORG,dc=com  # 用你主LDAP的只读绑定账号
olcLDAPBindPW: your-readonly-password
olcLDAPSearchScope: sub
olcLDAPUpdateRef: ldap://xx.eng.yy.ORG.com  # 写请求会被转发(但你没写权限,实际仅生效只读逻辑)
EOF

注意:如果主LDAP允许匿名只读访问,olcLDAPBindDN和olcLDAPBindPW可以省略。

步骤3:创建自定义组并关联主LDAP用户

现在你可以在子LDAP里创建自定义的OU和组了,比如:

  1. 先创建一个用来存放自定义组的OU(可选,方便管理):
ldapadd -x -D cn=admin,dc=corp,dc=ORG,dc=com -W <<EOF
dn: ou=CustomGroups,dc=corp,dc=ORG,dc=com
objectClass: organizationalUnit
ou: CustomGroups
EOF
  1. 创建Support-NewHires组,并添加主LDAP里的用户(直接用用户的完整DN关联即可):
ldapadd -x -D cn=admin,dc=corp,dc=ORG,dc=com -W <<EOF
dn: cn=Support-NewHires,ou=CustomGroups,dc=corp,dc=ORG,dc=com
objectClass: groupOfNames
cn: Support-NewHires
description: Support team new hires
member: uid=john,ou=support,dc=corp,dc=ORG,dc=com
EOF

这里的member直接指向主LDAP里的用户DN,子LDAP会通过之前配置的proxy overlay自动验证这个用户的存在。

步骤4:配置认证转发(让子LDAP使用主LDAP验证密码)

当应用通过子LDAP认证用户时,子LDAP会自动将密码验证请求转发到主LDAP。你可以通过调整子LDAP的访问控制策略确保这个流程正常:

ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: to attrs=userPassword by self write by anonymous auth by * none
olcAccess: to * by * read
EOF

这个配置允许匿名用户尝试绑定认证,同时所有查询请求都能被转发到主LDAP完成验证。

步骤5:应用对接与权限控制

现在你可以把VMware vCenter(或其他应用)对接子LDAP服务器:

  • 在vCenter里配置LDAP服务器为你的子LDAP地址
  • 设置权限时:
    • 给cn=Support-NewHires,ou=CustomGroups,dc=corp,dc=ORG,dc=com设置受限访问
    • 给主LDAP里的ou=support,dc=corp,dc=ORG,dc=com设置完全控制访问

当John登录时,vCenter会从子LDAP查询到他属于Support-NewHires组,应用受限权限;而Jane不属于这个自定义组,vCenter会从主LDAP获取她的ou=support属性,应用完全控制权限。

关键验证步骤

  1. 测试子LDAP能否查询主LDAP用户:
ldapsearch -x -b dc=corp,dc=ORG,dc=com -H ldap://your-child-ldap-host uid=john

应该能返回John的完整用户信息,包括主LDAP里的属性。

  1. 测试自定义组查询:
ldapsearch -x -b ou=CustomGroups,dc=corp,dc=ORG,dc=com -H ldap://your-child-ldap-host cn=Support-NewHires

应该能看到组的信息以及成员John的DN。

  1. 测试用户认证:
ldapwhoami -x -D uid=john,ou=support,dc=corp,dc=ORG,dc=com -W -H ldap://your-child-ldap-host

输入John的主LDAP密码,应该能成功返回uid=john,ou=support,dc=corp,dc=ORG,dc=com,说明认证转发正常。

备注:内容来源于stack exchange,提问作者RuMAN S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:58:11