一个 ldap 服务器上有多个 rootdn

一个 ldap 服务器上有多个 rootdn

我有一个 OpenLDAP 服务器,其配置文件中内容如下:

suffix          "o=a.b.priv"
rootdn          "cn=Manager,o=a.b.priv"

我正在建立一个新项目,它将使用以下内容:

suffix          "o=c.b.priv"
rootdn          "cn=Manager,o=c.b.priv"

这两者可以在同一个 OpenLDAP 服务器实例上共存吗?

我猜这是不可能的,我的选择是

  • 设置第二个实例,监听同一台机器上的另一个端口
  • “重构”现有数据(这可能吗?我是 LDAP 新手),以便 root 是b.priv,rootdn 是cn=Manager,o=b.priv及其子级o=a.b.privo=c.b.priv

还有其他选择吗?

答案1

多个 DIT 似乎确实是可行的。 看看这个文档和示例。至于这样做是否谨慎,我无法回答您的要求。在继续之前完全理解文档似乎是明智的。也许 OpenLDAP 特定小组可以帮助您评估您的想法。但请注意,如果您没有做好功课,他们可能会很暴躁。

格雷格

答案2

您可以使用 OpenLDAP 创建多个单独的数据库。您可以在文档

我认为,在非标准端口上设置第二个实例不是一个好主意,因为无论在何处使用该实例,您都必须小心指定正确的端口。

答案3

我对 LDAP 也还很陌生,但我能够做到这一点,所以我报告了我所做的操作,希望它们有用。

我在邮件列表回复

我需要工作用户。

首先使用命令

slapcat -n0

显示 LDAP 配置。

你应该看到类似这样的内容:

dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: <your old root DN>
...

转到/var/lib/ldap并为新树创建一个子文件夹。确保此文件夹具有755权限和适当的所有者和组(在我的情况下必须是openldap openldap)。

按如下方式创建 LDIF 文件:

dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap/<NEWDIR>
olcSuffix: <new root DN>
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=Manager,<new root DN>" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=<new root DN>" write by * read
olcLastMod: TRUE
olcRootDN: cn=Manager,<new root DN>
olcRootPW: <manager password>

然后打电话

ldapadd -Y EXTERNAL -H ldapi:/// -f <your-ldif-file>

并且您应该添加一个新的根。

相关内容