Я использую OpenLDAP 2.4.44 с модулем back_ldap в качестве прокси LDAP для серверов MS-AD (подробности см. openLDAP как прокси для Active Directory).
Теперь мне нужно добавить схемы из AD-Server в OpenLDAP-Server, и я экспортировал схемы из MS-AD-Server с помощью ldapsearch в ldif-файл (подробнее см. Как я могу получить информацию о схеме с сервера?).
Теперь мне нужно преобразовать формат ldif в формат схемы для OpenLDAP slapd.conf. Невозможно загрузить ldif с помощью ldapadd, потому что OpenLDAP работает в режиме прокси, поэтому каждый запрос будет перенаправляться на серверы MS-AD.
Как преобразовать файл ldif в файл схемы? Есть какой-нибудь инструмент. Или как добавить ldif-файл для загрузки через slapd.conf.
Что вам нужно сделать, так это удалить атрибуты dn
, cn
и objectClass
и заменить все вхождения olcAttributeTypes:
и olcObjectClasses:
с участием attributetype
и objectclass
соответственно.
Вы также можете сделать это через оболочку.
Однострочный в оболочке linux:
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