LDAP - ksiazka adresowa

Marcin Krzyzanowski [krzyzak] http://hakore.com Warszawa 14.02.2001

Książka Adresowa w sieci ? nic prostszego.

Jestem wlasnie znow na bierzaco z LDAP'em, postanowilem wiec przyblizyc Ci nieco instalacje i konfiguracje ksiazki adresowej z wykostaniem LDAP'a, a konkretniej OpenLDAP.

  1. Sciagnij pakiet openldap w wersji 1.2.11 (stable) znalezc go mozna na stronie www.openldap.org/software/download
  2. kompilacja lub/i instalacja przebiegac powinna bez zadnych problemów. Podczas kompilacji pamiêtaj aby skompilowac slapd.
  3. Juz zainstalowane ?
  4. ja zainstalowalem sobie pakiet w katalogu /usr/local/openldap ale kazdy oczywiscie moze miec w innym miejscu.
  5. Zajme sie daemonem slapd (Stand-alone LDAP Daemon).
  6. konfiguracja znajduje sie w pliku slapd.conf (/usr/local/openldap/etc/openldap/sladp.conf)

przykladowy plik slapd.conf
#------------------------- START

include         /usr/local/openldap/etc/openldap/slapd.at.conf
include         /usr/local/openldap/etc/openldap/slapd.oc.conf

pidfile         /usr/local/openldap/var/slapd.pid
argsfile        /usr/local/openldap/var/slapd.args

database        ldbm
suffix  "o=FIRMA, c=PL"
# katalog w ktorym przechowywana jest baza
directory       /usr/local/openldap/var/FIRMA
# "konto" Admininistratora, z haslem
rootdn  "cn=Manager, o=FIRMA, c=PL"
rootpw  secret

index default none
# uprawnienia mozna dowolnie modyfikowac
access to * by * read
#---------------------------END
Po wiecej informacji odsylam do man slapd.conf

7. Utwórz swoj obiekt ktory bedzie opsywal przechowywane w bazie dane, w tym cely nalezy wyedytowac plik slapd.oc.conf (/usr/local/openldap/etc/openldap/slapd.oc.conf) dodajac np.

objectclass AddressesBook
        requires        sn,
                        cn,
                        mail,
                        objectclass
        allows          nickname,
                        usehtmlmail,
                        o,
                        l,
                        givenname,
                        sn,
                        st,
                        description,
                        title,
                        streetaddress,
                        postalcode,
                        c,
                        telephonenumber,
                        homephone,
                        facsimiletelephonenumber,
                        ou,
                        pager,
                        mobile,
                        seeAlso

8. nastepnie wyedytuj plik slapd.at.conf i dopisz:

attribute       nickname                                cis
attribute       usehtmlmail                             bool
attribute       givenname                               cis

9. No i swietnie, jestesmy przygotowani do zapelnienia naszej bazy jakimis danymi. W tym przypadku adresami... Ja uzywam do tego celu formatu ldif ktory importuje do bazy.

10. W tym celu utwórz plik np. telefony.ldif

11. Poczatek takiego pliku powinien wygladac w tym przypadku jakos tak:

dn: o=FIRMA, c=PL
objectclass: top
objectclass: organization
o: FIRMA
o: Nasza Wspaniala Firma nazywajaca sie JAKOS
o: firemka

dn: cn=Manager, o=FIRMA, c=PL
cn: Manager
sn: Manager
objectclass: top
objectclass: person

dn: ou=telefony,o=FIRMA, c=PL
ou: telefony
objectclass: top
objectclass: organizationalUnit
description: tu sa nasz telefony

12. baza jest gotowa od tego momentu mozna dopisywac juz rekordy wykozystujac pola zdefiniowane w punkcie 7 np.

dn: cn=Jan Kowalski, ou=telefony,o=FIRMA,c=PL cn: Jan Kowalski
objectclass: top
objectclass: person
objectclass: AddressesBook
givename: Jan
sn: Kowalski
o: AHOJ
ou: DZIAL LIKWIDACJI AHOJA
telephoneNumber: 0700300300
l: Warszawa
mail: likwidator@ahoj.pl

13. i tak dalej .. i tak dalej.. ja w tym celu napisalem sobie skrypcik w perlu ktory wygenerowal mi pocje kilkudziesieciu takich rekordow z otrzymanych danych.

14. teraz trzebaby jakos to wrzucic do bazy.. mozna tak:
host$ ldif2ldbm -i telefony.ldif

15. i juz... teraz odpal daemona slapd i juz dziala...

16. sprawdzmy czy jest ok

host$ ldapsearch -b "ou=telefony,o=FIRMA,c=PL" cn=*

cn=Jan Kowalski, ou=telefony,o=FIRMA,c=PL cn=Jan Kowalski
objectclass: top
objectclass: person
objectclass: AddressesBook
givename: Jan
sn=Kowalski
o=AHOJ
ou=DZIAL LIKWIDACJI AHOJA
telephoneNumber=0700300300
l=Warszawa
mail=likwidator@ahoj.pl

jest ok.

17. w Netscape ustaw w Communicator->Address Book->File->New Directory adres serwera i drzewo przeszukiwania, w tym przypadku bedzie to "ou=telefony,o=FIRMA,c=PL" a w Outlooku robi sie to przez uslugi katalogowe...

18. Prawda ze proste ?

19. do przegladania wygodnie uzywac np. LDAP UserDirectory (./ud)

20. Nowe rekordy dodawac mozna recznie przez ldapadd [parametry] lub skryptami,www, innymi narzedziami ktorych jest sporo w sieci.

21. przydatne linki:
http://www.openldap.org
http://www.tldp.org/HOWTOs/LDAP-HOWTO.html http://www.direct-to-linux.com/LinuxTutorialLDAP.html