Bruk av OpenLDAP


OpenLDAP

OpenLDAP er LDAP-implementasjonen med tjeneren vi bruker. Deres LDAP-biblioteker (libldap.a, liblber.a, ldap.h, lber.h etc.) og enkle kommandolinje-verktøy (ldapsearch, ldapcompare etc.) er installert på mange maskiner.

Merk at det også finnes andre varianter av biblioteker og programmer med samme navn, fordi mange har arvet fra samme opprinnelige LDAP-implementasjon ("Umich LDAP"). F.eks. har Solaris sine egne varianter som oppfører seg litt annerledes.

Konfigurasjonsfil ldap.conf

Klienter som bruker OpenLDAP-biblioteket kan konfigurere en del parametre i systemfilen ldap.conf, eller i filen .ldaprc som kan ligge enten i hjemmeområdet eller i katalogen programmet kjøres fra.

Manualsiden "man ldap.conf" beskriver filen. Den er dessverre mangelfull på RedHat Linux, som har en svært gammel LDAP-implementasjon. USIT planlegger å distribuere en nyere LDAP-pakke med Store.

Merk at Linux har to ldap.conf-filer: /etc/ldap.conf som brukes av PAM/NSS men ikke av vanlige ldap-programmer, og /etc/(open)ldap/ldap.conf som ldap-biblioteket bruker. Store-pakken vil kanskje ha en tredje ldap.conf.

Eksempel på ldap.conf eller ~/.ldaprc:

# LDAP-tjeneren
HOST		ldap.uio.no
# ELLER i stedet for HOST kan du med nyere LDAP-versjoner si:
URI		ldap://ldap.uio.no/
# ELLER for å bruke krypterte forbindelser pr default:
URI		ldaps://ldap.uio.no/

# Søkebase som brukes hvis du ikke oppgir den i søket.
BASE		dc=uio,dc=no

# Trengs hvis du krypterer forbindelsen (med TLS/SSL):
# CA-sertifikatet som signerte LDAP-tjenerens sertifikat;
# fås fra Katalog-drift
TLS_CACERT	filnavn med CA-sertifikatet

# TLS trenger en strøm med tilfeldige bytes.  Hvis systemet
# har en fil /dev/random eller /dev/urandom brukes denne.
# Hvis ikke kan du oppgi en fil å hente dem fra.
# Dette bør være en EGD/PRNGD-socket, hvis det er en vanlig
# fil bryter det fullstendig sikkerheten i TLS.
TLS_RANDFILE	filnavn som produserer tilfeldige bytes

Programmet ldapsearch

ldapsearch er et program som kan utføre alle slags søk i katalogen. Det er mer egnet til å eksperimentere med LDAP enn til vanlig bruk; det gjør ikke noe forsøk på å være brukervennlig. Du oppgir nøyaktig hvilket søk som skal utføres, uten at programmet hjelper til med å massere filtre e.l. Det kan være fint til å teste et søkefilter du har laget, f.eks. for å finne ut om evt. problemer du har med det skjer i klienten eller i tjeneren.

"man ldapsearch" beskriver programmet. Her er noen eksempler:

ldapsearch -x -h ldap.uio.no -s sub -b dc=uio,dc=no "(ou=*usit*)" telephoneNumber mail
Søk i tjeneren (-h) ldap.uio.no i hele subtreet (-s sub) under søkebasen (-b) dc=uio,dc=no etter poster som matcher ou=*usit*. Returner bare attributtene telephoneNumber og mail i søkeresultatene.
ldapsearch -x -ZZ -h ldap.uio.no -b uid=hei,cn=people,dc=uio,dc=no -s base -W -D uid=hei,cn=people,dc=uio,dc=no "(objectClass=*)"
Krypter forbindelsen med TLS (-ZZ). Se TLS/SSL.
Les det ene objektet (-s base) med navn (-b) "uid=hei,cn=people,dc=uio,dc=no".
Be om passord (-W) og autentiser som samme person (-D uid=...), for også å se data som er skjult fra andre enn denne brukeren. Merk at uten -ZZ ville passordet blitt sendt ukryptert over nettet.
"(objectClass=*)" er et filter som matcher alle poster; det kan utelates siden ldapsearch bruker dette filteret pr default.
Siden ingen attributtliste er oppgitt, vises alle brukerattributter i objektet.
ldapsearch -x -h ldap.uio.no -b "" -s base "(objectClass=*)" "+" "*"
base-søk i "" etter "(objectClass=*)" er en spesiell operasjon i LDAP som henter informasjon om tjeneren. Merk at de fleste attributter i objektet med navn "" er "operational attributes", som betyr at de bare returneres hvis du eksplisitt ber om det. Imidlertid kan du med OpenLDAP be om attributt "+" som betyr alle operational attributes. I tillegg oppgis "*" for å returnere alle vanlige attributter, siden det ellers bare gjøres hvis du ikke oppgir hvilke attributter som skal returneres.

Diverse notater: