Mittels der Attribute authzFrom und authzTo ist man in der Lage, eine sogenannte Proxy-Authentifizierung durchzuführen. Damit ist die Möglichkeit gemeint, daß man sich gegen ein Objekt A anmeldet und authentifiziert, aber dann im Namen eines Objektes B arbeitet. Beispielhaft sei hier das Anmelden am Cyrus Mailstorage erwähnt. Die Anmeldung erfolgt von Postfix mit einem Proxy-User, aber die Mails werden schließlich als der entsprechende User übergeben.
Die Attribute authzFrom und authzTo werden nicht in der /etc/ldap/slapd.conf
gesetzt, sondern direkt im DIT in den entsprechenden Objekten.
jt@bender:~$ ldapmodify -x -W -D "cn=admin,dc=lst,dc=lan" Enter LDAP Password: dn: uid=mxproxy,ou=dsa,dc=lst,dc=lan changetype: modify add: saslAuthzTo saslAuthzTo: dn.regex:uid=[^,]*,ou=People,dc=lst,dc=lan modifying entry "uid=mxproxy,ou=dsa,dc=lst,dc=lan"
Der slapd besitzt seit der Version 2.3 die Möglichkeit, seine eigene Konfiguration inkl. der Schema-Dateien selbst in ein ldap-kompatibles Format zu konvertieren. Vorteile dieses Verfahrens sind:
mkdir -p /etc/ldap/slapd.d /etc/init.d/slapd stop slapd -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/ chown openldap /etc/ldap/slapd.d -R mv /etc/ldap/slapd.conf /etc/ldap/slapd.conf.old
In /etc/default/slapd
folgende Änderung machen:
SLAPD_CONF="/etc/ldap/slapd.d"
Für den Zugriff auf die Konfiguration musss ggf. noch ein Passwort gesetzt werden. Dieses kann von Hand in der Datei /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
eingefügt werden:
olcRootPW: {SSHA}x+xxc2HLsoyEB4TLdj6kjvHwF8NzzFW7
Hier wird Beispielsweise das Passwort auf 12345 gesetzt. Nun noch den slapd wieder neu starten.
/etc/init.d/slapd start
Testen kann man nun die neue Konfiguration mit
ldapsearch -x -D "cn=config" -b cn=config -W
Nach der Eingabe des oben gesetzten Passwortes sollte man die Konfiguration, die jetzt selber aus dem LDAP kommt, sehen. Ab jetzt können allen Einstellungen ohne Neustart des Dienstes zu Laufzeiten mit den üblichen LDAP-Tools geändert werden.