LDAP
Aus Goobi
Inhaltsverzeichnis |
Installation des LDAP Servers und der LDAP Authentifizierung
Voraussetzungen
- Installation eines aktuellen Linux Betriebssystems
- Diese Anleitung basiert aud erfahrungen mit Gentoo Linux
- weitere Informationen unter http://www.gentoo.org/doc/en/ldap-howto.xml
- Installation der benötigten Software Pakete
emerge -g openldap pam_ldap nss_ldap
oder
emerge openldap pam_ldap nss_ldap
(-g verhindert, das jedes Paket neu kompiliert wird)
Konfiguration OpenLDAP Servers
(Die SSL Konfiguration wird unter http://www.openldap.org/faq/data/cache/185.html beschrieben)
- Benötigte Schemata in "/etc/openldap/slapd.conf" einfügen
include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema
- Name des Baums und Admistrativen Nutzer konfigurieren:
suffix dc=bib,dc=uni,dc=de rootdn cn=Manager,dc=bib,dc=uni,dc=de rootpw [PASSWORT]
- Das Passwort wird als Hash Wert angeben, es wird mit dem Befehl "slappasswd" erzeugt:
slappasswd
- Danach müssen die Indexierungsregeln angepasst werden, z.B.:
index objectClass,uidNumber,gidNumber eq
- Falls schon etwas ins Directory geschrieben wurde, muss danach der Befehl "slapindex" ausgeführt werden.
slapindex
- Zusätzlich können ACLs angegeben werden, z.B.:
access to * by dn="uid=root,dc=bib,dc=uni,dc=de" write by users read by anonymous auth
- Ein weiters Beispiel für den PAM Account, der später angelegt werden wird:
access to attrs=userPassword,gecos,description,loginShell by cn=pam,dc=bib,dc=uni,dc=de write by self write by * none
Mehr unter http://www.openldap.org/doc/admin24/slapdconfig.html#The%20access%20Configuration%20Directive
Zum testen der Konfiguration sollte der OpenLDAP Server nun gestartet werden
/etc/init.d/ldap start
Konfiguration des LDAP Clients
- /etc/openldap/ldap.conf
BASE dc=bib,dc=uni,dc=de URI ldap://localhost/ TLS_REQCERT never
- Funktionstest
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
Initiale Einträge
- Administrativer Benutzer
dn: dc=bib,dc=uni,dc=de objectclass: dcObject objectclass: organization o: Bibliothek dc: bib dn: cn=Manager,dc=bib,dc=uni,dc=de objectclass: organizationalRole cn: Manager
- Einfache Struktur
dn: cn=pam,dc=bib,dc=uni,dc=de objectclass: organizationalRole objectclass: simpleSecurityObject cn: pam userPassword: [PASSWORT] dn: ou=goobi,dc=bib,dc=uni,dc=de objectclass: organizationalUnit ou: goobi dn: ou=groups,ou=goobi,dc=bib,dc=uni,dc=de objectclass: organizationalUnit ou: groups dn: ou=users,ou=goobi,dc=bib,dc=uni,dc=de objectclass: organizationalUnit ou: users
Wichtig: "[PASSWORT]" durch einen von "slappasswd" erzeugten Hash (s.o.) ersetzen.
Beide Schnipsel können in einer Datei gespeichert werden. Die Datei kann dan mit folgendem Befehl ins Directory "importiert" werden:
ldapadd -x -D "cn=Manager,dc=bib,dc=uni,dc=de" -W -f [DATEINAME]
Anpassung der Systemauthentifizierung
- /etc/ldap.conf
"host" und "base" anpassen:
host 127.0.0.1 base dc=bib,dc=uni,dc=de
- "binddn" und "bindpw" anpassen:
binddn cn=pam,dc=bib,dc=uni,dc=de bindpw [PASSWORT]
- "rootbinddn" und "rootbindpw" anpassen:
rootbinddn cn=Manager,dc=bib,dc=uni,dc=de rootbindpw [PASSWORT]
- Folgende weitere Optionen müssen ebenfalls gesetzt werden:
pam_filter objectclass=posixAccount pam_template_login_attribute uid pam_member_attribute memberuid
- Zusätzlich müssen die LDAP Äste in den die Konfigurationsdaten zu finden sind konfiguriert werden:
nss_base_passwd ou=users,ou=goobi,dc=bib,dc=uni,dc=de nss_base_shadow ou=users,ou=goobi,dc=bib,dc=uni,dc=de nss_base_group ou=groups,ou=goobi,dc=bib,dc=uni,dc=de
- /etc/pam.d/system-auth
In diese Datei müssen folgende Zeilen eingefügt werden:
auth sufficient pam_ldap.so use_first_pass account required pam_ldap.so password sufficienti pam_ldap.so use_authtok use_first_pass session optional pam_ldap.so
Komplette Datei nach der Ergänzung (Beispiel):
#%PAM-1.0 auth required pam_env.so auth sufficient pam_unix.so likeauth nullok shadow auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account required pam_ldap.so password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 password sufficient pam_unix.so nullok md5 shadow use_authtok password sufficienti pam_ldap.so use_authtok use_first_pass password required pam_deny.so session required pam_limits.so session required pam_unix.so #session required pam_mkhomedir.so skel=/etc/skel/ umask=0066 session optional pam_ldap.so
- /etc/nsswitch.conf
Dort müssen folgende drei Zeilen geändert werden:
passwd: files compat ldap shadow: files compat ldap group: files compat ldap
Funktionstests
- Abfragen des LDAP Servers
ldapsearch -W -x -D "cn=Manager,dc=bib,dc=uni,dc=de"
- Lokale Anmeldung (wenn Nutzer im LDAP Server vohanden)
ssh USER@localhost
Um Fehler bei der Konfiguration der SystemAuthentifizierung zu vermeiden, solte man es auch mit existierenden Systemnutzer (z.B. "root") ausprobieren.
