OpenLDAP: конвертировать AD-схему из *.ldif в *.schema

Я использую OpenLDAP 2.4.44 с модулем back_ldap в качестве прокси-сервера LDAP для MS-AD-серверов (см. Подробности: openLDAP в качестве прокси-сервера для Active Directory).

Теперь мне нужно добавить схемы из AD-Server на OpenLDAP-сервер, и я экспортировал схемы из MS-AD-Server с ldapsearch в ldif-файл (см. Подробности: как получить информацию о схеме с сервера?)

Теперь мне нужно преобразовать формат ldif в формат схемы для OpenLDAP slapd.conf. Невозможно загрузить ldif с помощью ldapadd, поскольку OpenLDAP работает в режиме прокси, поэтому каждый запрос будет перенаправлен на серверы MS-AD.

Как мне преобразовать ldif-файл в файл схемы? Есть ли какой-нибудь инструмент. Или как добавить ldif-файл для загрузки через slapd.conf.

1 ответ

Решение

Что вам нужно сделать, это удалить атрибуты 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
Другие вопросы по тегам