OpenLDAP:将 AD-Schema 从 *.ldif 转换为 *.schema

OpenLDAP:将 AD-Schema 从 *.ldif 转换为 *.schema

我正在运行带有模块 back_ldap 的 OpenLDAP 2.4.44 作为 MS-AD-Servers 的 LDAP 代理(有关详细信息,请参阅:openLDAP 作为 Active Directory 的代理)。

现在我需要将模式从 AD 服务器添加到 OpenLDAP 服务器,并且我已使用 ldapsearch 将模式从 MS-AD 服务器导出到 ldif 文件中(有关详细信息,请参阅:如何从服务器获取架构信息?)。

现在我需要将 ldif 格式转换为 OpenLDAP slapd.conf 的架构格式。无法使用 ldapadd 加载 ldif,因为 OpenLDAP 以代理模式运行,因此每个请求都将转发到 MS-AD 服务器。

如何将 ldif 文件转换为模式文件?有没有什么工具?或者如何添加要通过 slapd.conf 加载的 ldif 文件。

答案1

您需要做的是删除属性dncn和,并分别用和objectClass替换所有出现的olcAttributeTypes:和。olcObjectClasses:attributetypeobjectclass

您也可以通过 shell 来完成此操作。

Linux shell 上的一行程序:

sed '/^dn: /d;/^objectClass: /d;/^cn: /d;s/olcAttributeTypes:/attributetype/g;s/olcObjectClasses:/objectclass/g' file.ldif > file.schema

windows powershell中对应命令:

Get-Content file.ldif | Where { $_ -notmatch "^dn: " } | Where { $_ -notmatch "^objectClass: " } | Where { $_ -notmatch "^cn: " } | %{ $_ -replace "olcObjectClasses:", "objectclass" } | %{ $_ -replace "olcAttributeTypes:", "attributetype" } | Out-File file.schema

相关内容