• Uncategorized

Kowersja schematu LDAP do LDIF

Potęgą usługi katalogowej LDAP jest możliwość definiowania własnych atrybutów, klas obiektów, reguł itp. i grupowania ich w tzw. schematy, które można dodawać do konfiguracji.

Na dzień dzisiejszy jednak większość schematów, które znajdziecie w sieci jest zorganizowana w bloki zawierające definicje atrybutów i klas obiektów, wygląda to mniej więcej tak:

definicja typu atrybutu:


attributetype ( 1.3.6.1.4.1.32349.1.2.2.9 NAME 'accountStatus'
    DESC 'The status of a user account: active, disabled'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    SINGLE-VALUE )

definicja klasy obiektu:


objectclass ( 1.3.6.1.4.1.32349.1.2.4.2 NAME 'mailAdmin'
    DESC 'Mail Domain Admin' SUP top STRUCTURAL
    MUST ( mail )
    MAY ( domainGlobalAdmin $ description $ enabledService $
        userPassword $ accountStatus $ cn $ sn $ givenName $
        preferredLanguage $ givenName $ expiredDate $
        mailHost $ lastLoginDate $ accountSetting ))

definicje te pochodzą ze schematu iredmail.schema, który wykorzystam tu jako przykład (umieszczę go też w załączniku).

Jeśli byśmy używali konfiguracji w pliku slapd.conf, to wystarczyłoby skopiować plik schematu do /etc/ldap/schema, wskazać w konfiguracji ścieżkę do tego pliku i zrestartować serwer, ale zakładam, że korzystamy z dynamicznej konfiguracji, więc musimy przekonwertować schemat do formatu LDIF.

Do tego celu polecam użyć skryptu perlowego, który także umieściłem w załączniku, a pobrałem go ze strony: http://directory.fedoraproject.org/download/ol-schema-migrate.pl. Pobieramy więc co trzeba i dokonujemy konwersji, sekwencja poleceń wygląda mniej więcej tak:


/usr/bin/sudo -i
cd /etc/ldap/schema
wget http://iredmail.googlecode.com/hg/iRedMail/samples/iredmail.schema
wget http://directory.fedoraproject.org/download/ol-schema-migrate.pl

UWAGA: skrypt jest nieco przestarzały i generuje LDIFa, który wyrzuci błąd przy próbie importu. Pomimo mojej słabej znajomości perla zrobiłem patcha na skrypt, który to poprawia, zamieszczę go w załączniku. Trzeba go nałożyć przed konwersją:


wget http://www.drfugazi.eu.org/?q=system/files/drf-ol-schema-migrate.patch
patch -p0 < drf-ol-schema-migrate.patch
perl ol-schema-migrate.pl -b iredmail.schema > iredmail.ldif

Konwersja gotowa, mamy schemat w pliku LDIF, czas dodać go do naszej konfiguracji:

ldapadd -Y EXTERNAL -H ldapi:/// -f iredmail.ldif

Jest też inny sposób na przeniesienie schematów a właściwie całej konfiguracji z pliku slapd.conf do postaci dynamicznej przy użyciu narzędzia slaptest, ale o tym może w następnym odcinku 🙂

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.