LONZO Authorisierung mit Apache LDAP
Der Zugriff auf Lonzo soll in einen (kleinen) öffentlichen
Bereich und einen geschützten Bereich unterteilt werden, u.a.
im Hinblick darauf, dass Lonzo vom Intranet ins öffentliche
Internet wandern soll. Der geschützte Bereich seinerseits
kann noch weiter unterteilt werden für spezielle
Benutzergruppen.
Grundlage ist die Identifizierung der Lonzo-Anwender.
Das nennt der Fachmann die "Authentifizierung", d.h. es wird
festgestellt, wer da eigentlcih vor dem Bildschirm sitzt. Das
geschieht durch Eingabe von User-Id und Kennwort. Diese
werden gegen die in einem Server verwalteten User-Daten
verglichen. Wenn alles stimmt, ist der Anwender
"authentifiziert", ansonsten "Error 401". Der Apache-Server
und der Web-Browser unterstützen dieses Verfahren, das Teil
des HTTP ist.
Apache kann nun weiter auf der Grundlage der so
festgestellten Identität des Anwenders Zugriff zu bestimmten
Ordnern und/oder Dateien auf dem Web-Server zulassen oder
verweigern. Dies geschieht auf der Ebene des HTTP-Protokolls
durch entsprechende Konfiguration des Apache-Servers.
Verwaltung der User
Die Verwaltung der User, der Passwörter und der
User-Gruppen erfolgt ein einem sog. LDAP-Server. Für den
Zugriff auf LDAP-Server gibt es fertige Software-Bausteine.
Für den Apache-Server 1.3.x wird das Modul
auth_ldap 1.6 von Dave Carrigan verwendet, das auch
Bestanteil der SuSE LINUX 8.0 Distribution ist.
Als LDAP-Server wird der vorhandene Lotus-Notes-Server
("Domino Directory") verwendet.
Konfiguration von Apache
Als erstes muss das Modul auth_ldap eingebaut
werden. Dafür wird in die Apache-Konfigurationsdatei
httpd.conf folgendes eingetragen:
LoadModule auth_ldap_module /usr/lib/apache/auth_ldap.so
Als zweites muss der Zugriff von Apache auf den
LDAP-Server eingestellt werden:
<Directory />
Options -FollowSymLinks +Multiviews
AllowOverride None
AuthName "Lonzo Authentifizierung mit Lotus-User-Id (Vorname blank Nachname) und Lotus-Internet-Passwort"
AuthType Basic
AuthLDAPUrl ldap://ln01hh2.gmo.de/o=GMO,c=DE?cn?sub?(objectClass=*)
AuthLDAPCompareDNOnServer on
AuthLDAPGroupAttributeIsDN on
</Directory>
Der Text von AuthName erscheint im Eingabefenster des Users.
Die AuthLDAPUrl hat folgende Bewandnis: "ln01hh2.gmo.de" ist der Name des LDAP-Servers,
"o=GMO,c=DE" ist der LDAP-Base-DN (distinguished name),
"cn" ist das LDAP-Attribut, das als User-Id verwendet werden soll,
"sub" bedeutet "Sub-Tree-Suche",
"(objectClass=*)" ist ein LDAP-Filter.
Als drittes müssen nun die gewünschten Order und/oder Dateien unter den Zugriffsschutz gestellt werden:
<Directory "/usr/local/httpd/htdocs/lonzo">
Options Indexes FollowSymLinks
AllowOverride all
order allow,deny
allow from all
ErrorDocument 401 /lonzo401.htm
require valid-user
</Directory>
<Directory "/usr/local/httpd/htdocs/faxes">
Options Indexes FollowSymLinks
AllowOverride none
order allow,deny
allow from all
ErrorDocument 401 /faxes401.htm
require dn cn=Dietrich Kracht, o=GMO, c=DE
require dn cn=Melanie Kulbach, o=GMO, c=DE
</Directory>
|