Konfiguracja OpenDJ
Po rozpakowaniu i instalacji OpenDJ jest wstępnie skonfigurowany. W moim przypadku posiada też wpis bazowy (base entry), tutaj niech to będzie dc=domain,dc=tld
. Jeśli ktoś dopiero buduje drzewo LDAP, to pewnie teraz doda sobie standardowe ou=People
i tam będzie umieszczał użytkowników za pomocą narzędzi do zarządzania katalogiem LDAP. Zwykle jednak jest tak, że skoro decydujemy się na LDAPa, to użytkowników nie jest kilkoro, a kilkaset lub kilka(naście) tysięcy i trzeba ich zaimportować do katalogu.
Na początek spróbujmy dodać jeden wpis, nie ważne czy potrzebny, chcę pokazać komunikat błędu i sposób rozwiązania problemu. Wpis w formacie LDIF:
dn: uid=Replicator,dc=domain,dc=tld
objectclass: account
objectclass: top
objectclass: simpleSecurityObject
uid: Replicator
userpassword: {MD5}XEw0KXXXXxxxXXXWP71HXX==
Zapisujemy to sobie np. jako replicator.ldif
i próbujemy dodać do katalogu LDAP:
# ./OpenDJ-2.4.3/bin/ldapmodify -a -f replicator.ldif
Processing ADD request for uid=Replicator,dc=domain,dc=tld
ADD operation failed
Result Code: 53 (Unwilling to Perform)
Additional Information: Pre-encoded passwords are not allowed for the password attribute userPassword
Problem jest w tym, że w domyślnej konfiguracji OpenDJ nie pozwala na dodawanie LDIFów z atrybutem userPassword
zawierającym już zaszyfrowane hasło. Oczywiście jest na to rozwiązanie i można to zrobić przynajmniej na dwa sposoby, pierwszy to uruchomienie programu OpenDJ-ver/bin/dsconfig
i przejście przez odpowiednie opcje, drugi, który ja zastosuję, to zmiana przy użyciu odpowiedniego LDIFa:
# cat > allow-enc-pass.ldif << EOF
dn: cn=Default Password Policy,cn=Password Policies,cn=config
changetype: modify
replace: ds-cfg-allow-pre-encoded-passwords
ds-cfg-allow-pre-encoded-passwords: true
EOF
Spróbujmy dodać:
# ./OpenDJ-2.4.3/bin/ldapmodify -a -f allow-enc-pass.ldif
Processing MODIFY request for cn=Default Password Policy,cn=Password Policies,cn=config
MODIFY operation failed
Result Code: 50 (Insufficient Access Rights)
Additional Information: The entry cn=Default Password Policy,cn=Password Policies,cn=config cannot be modified due to insufficient access rights
Mamy za małe uprawnienia, nie podałem żadnych danych do logowania, spróbujmy raz jeszcze uwierzytelniając się:
# ./OpenDJ-2.4.3/bin/ldapmodify -a -D cn=dirmgr -f allow-enc-pass.ldif
Password for user 'cn=dirmgr':
Processing MODIFY request for cn=Default Password Policy,cn=Password Policies,cn=config
MODIFY operation successful for DN cn=Default Password Policy,cn=Password Policies,cn=config
Teraz znacznie lepiej, spróbujmy dodać naszego użytkownika z zaszyfrowanym hasłem:
# ./OpenDJ-2.4.3/bin/ldapmodify -a -D cn=dirmgr -f replicator.ldif
Password for user 'cn=dirmgr':
Processing ADD request for uid=Replicator,dc=us,dc=edu,dc=pl
ADD operation successful for DN uid=Replicator,dc=domain,dc=tld
Operacja zakończona sukcesem, teraz można przygotować plik LDIF zawierający dane użytkowników z zaszyfrowanymi hasłami i zaimportować je do katalogu.
Inne zmiany w konfiguracji można wprowadzać w taki sam sposób, poprzez ldapmodify
na cn=config
lub przy użyciu programu dsconfig
. Jest też GUI, które pozwala zarządzać lokalnym lub zdalnym serwerem OpenDJ, znajduje się w katalogu bin
i nazywa control-panel
:
drfugazi@neptun> ./OpenDJ-2.4.3/bin/control-panel&
Aplikacja jest w Javie i działa też pod Windows. Można przeglądać i modyfikować wpisy i część konfiguracji, oglądać i modyfikować schematy i indeksy. Jest też opcja backupu i odtwarzania oraz eksportu i importu LDIF. GUI pozwala na trochę więcej gdy działa z lokalnym serwerem, ale prawdziwą konfigurację i tuning robi się za pomocą dsconfig
, a do zarządzania wpisami też są lepsze narzędzia, jak choćby wspomniana wcześniej wtyczka do Eclipse, Apache Directory Studio czy phpLDAPadmin.