Title: Lars Gelbke
1Apache Authentifizierung am LDAP-Server
2Übersicht
- 1. Einführung
- 2. Apache
- Allgemein und Aufbau
- 3. LDAP
- Einführung
- Verzeichnis / Datenbank
- Verzeichnisstruktur
- Mechanismen
- 4. Authentifizierung
- allgemeiner Ablauf
- Apache Konfiguration
- LDAP Konfiguration
- Beispiel
- 5. Resümee
- 6. Quellen
3Einführung
- Warum? Wieso? Weshalb?
- LDAP was ist das ?
- LDAP Allheilmittel ?
- Apache Flexibel wie immer ?
- Apache standardkonform ?
4Apache
- Allgemein
- Produkt der Apache Software Foundation
- OpenSource Projekt
- meist verbreiteter Web-Server
- entstanden aus dem NCSA http-Server
- serverseitige Unterstützung von Scriptsprachen
5Apache
- Aufbau
- modularer Aufbau
- hohe Plattformunabhängigkeit durch APR (Apache
Portable Runtime) seit Version 2.0 - Vielzahl an verschiedenen Authentifizierungsmodule
n - verschiedene Securitykonzepte
6LDAP
- Einführung
- Lightweight Directory Access Protocol
- Entwicklung an der Universität von Michigan und
erstmal 1993 in einem RFC vorgeschlagen - Weiterentwicklung/Vereinfachung des DAP
(Directory Access Protocol) auch als X.500
Standard bekannt - LDAP setzt im Gegensatz zu DAP nicht auf
OSI-Stack sondern auf TCP/IP-Stack auf
7LDAP
- Verzeichnis / Datenbank
- Verzeichnisse sind auf Lesezugriff optimiert und
bieten nur eingeschränkte Schreibfunktionen - verbesserte Suchfunktionen
- von vornherein standortunabhängig konzipiert
- kann viele gleichzeitige Zugriffe meistern
- Bsp. Passwortdatei
8LDAP
- LDAP-Verzeichnisstruktur
- hierarchische Baumstruktur
- root-Objekt
- Verwendung von Standardisierten Schemen
9LDAP
- Schemen
- ähnelt einer Klasse welche für ein daraus
entstandenes Objekt Attribute bereitstellt - dient der Client-Standardisierung
- abgeleitete Klassen möglich
10LDAP
FIRST Level hierarchy - people uses mixed upper and lower case for objectclass oupeople, dcexample,dccom ou peopledescription All people in organisation objectclass organizationalunit SECOND Level hierarchy ADD a single entry under FIRST (people) level this is an ENTRY sequence and is preceded by the ou Human Resources is the department name dn cnRobert Smith,oupeople,dcexample,dccom objectclass inetOrgPerson cn Robert Smith cn Robert J Smith sn smith uid rjsmith userpassword rJsmitH carlicense HISCAR 123 homephone 555-111-2222 mail r.smith_at_example.com description swell guy ou Human Resources
this is a comment dcexample,dccom dc example description My wonderful company objectClass dcObject objectClass organization o Example, Inc.
11LDAP
- Mechanismen
- 2 Phasen
- Authentication Phase / bind phase
- Anmeldung des Clients am Verzeichnis
- Anonym
- Simple
- Protected (Simpel über SSL)
- Strong
- Authorization Phase / compare phase
- Abfrage der übergebenen Parameter
12LDAP
Stärken Schwächen
ermöglicht zentralisierte Datenhaltung kein fixer Primärschlüssel
vereinfachte Security Policen nur schwere Implementierung in SQL-Systemen
offener Standard und somit kostenfreie Integration möglich wenig aussage kräftige Literatur
optimiert auf Lesezugriff nicht alle Systeme unterstützen LDAP
verteiltes Verzeichnissystem möglich
generalisierte Schemen(Klassen)
13Authentifizierung
14Authentifizierung
- System
- Betriebssystem Suse 9.2
- Apache Teil des XAMPP for Linux Paketes
1.4.13 - Apache-Version 2.0.53
- LDAP OpenLDAP Version 2.3.27
- Datenbank BerkeleyDB Version 4.5.20
15Authentifizierung
- Apache
- modularer Aufbau
- Hauptkonfiguration in httpd.conf
- Zugriffsrechte können in httpd.conf oder in
.htaccess konfiguriert werden - .htaccess muss in dem zu schützenden Verzeichnis
liegen - Vielzahl an Parametern die durch die Module
bereitgestellt werden
LoadModule auth_module modules/mod_auth.so
16Authentifizierung
- Apache-Module
- mod_auth
- Grundfunktionalitäten zur Dateibasierten
- Authentifizierung
- mod_access
- Grundfunktionalitäten zur Adressbasierten
- Authentifizierung
- mod_ldap
- stellt Cache und SSL Funktionen zur Verfügung
- mod_auth_ldap
- wichtigstes Modul zur LDAP- Authentifizierung
- mod_core
- bietet Grundlegende Funktionalitäten welche von
- allen Modulen genutzten werden können
17Authentifizierung
AuthLDAPAuthoritative AuthLDAPBindDN AuthLDAPPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPEnabled AuthLDAPFrontPageHack AuthLDAPGroupAttribute AuthLDAPGroupAttributelsDN AuthLDAPRemoteUserlsDN AuthLDAPURL
18Authentifizierung
- Require-Direktive in mod_core
- valid-user
- User im LDAP vorhanden
- user
- nur speziell definierte User
- group
- nur Gruppenmitglieder
- dn
- auf distinguished name basierende
Authentifizierung - ldap-attribut
- es muss ein bestimmtes LDAP-Attribut erfüllt sein
19Authentifizierung
01 LoadModule ldap_module modules/mod_ldap.so 02 LoadModule auth_ldap_module modules/mod_auth_ldap.so 03 04 ltDirectory /gt 05 Options None 06 AllowOverride all 07 Order deny,allow 08 Deny from all 09 AuthName "eDirectory Identifikation" 10 AuthType Basic 11 AuthLDAPURL ldap//192.168.123.6/oupeople,dcn0s,dcde 12 require valid-user 13 lt/Directorygt
20Authentifizierung
- LDAP-Grundkonfiguration
- Grundkonfiguration in der slapd.conf
- stets versuchen Client an Server anzupassen und
nicht Server an Client - slapd.conf lese/schreib geschützt
- Verschiede Hilfs-Tools
- ldapadd
- ldapsearch
21Authentifizierung
include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/inetorgperson.schema database bdb suffix "dcn0s,dcde ACL1 access to attruserpassword by self write by anonymous auth by group.exact"cnitpeople,ougroups,dcn0s,dcde" write by none rootdn "cnadmin,dcn0s,dcde rootpw nene_so_einfach_nicht
22Authentifizierung
- ldapadd
- ldapadd -f example.ldif -x -D "cnadmin,dcn0s,dc
de" -w so_einfach_net
23Authentifizierung
24Authentifizierung
.htaccess
AuthName "spezUser-dir Login AuthType Basic AuthLDAPURL ldap//192.168.123.6/dcn0s,dcde?cn require user "Robert Smith
AuthName "Admin-dir Login" AuthType Basic AuthLDAPURL ldap//192.168.123.6/dcn0s,dcde?uid require group cnadmin,ougroups,dcn0s,dcde
AuthName "spezAttr-Dir Login" AuthType Basic AuthLDAPURL ldap//192.168.123.6/dcn0s,dcde?uid?sub require ldap-attribute ou"Sales"
25Authentifizierung
26Resümee
- Apache sehr einfach konfigurierbar aber dennoch
stark anpassungsfähig - LDAP benötigt viel Einarbeitungszeit, was jedoch
an der Komplexität der Thematik und nicht an der
Software liegt - generell stellt es eine elegante und ausgereifte
Lösung der Nutzeranmeldung dar
27Quellen
- http//www.mitlinx.de/ldap/index.html
- Sehr gute Einführung in das Thema LDAP jedoch
leider nicht vollständig - http//www.zytrax.com/books/ldap/
- Seite über LDAP und sehr gute einführende
Beispiele - http//www.apache.org/ (Apache Dokumentaion)
- wie bei den meisten OpenSource Projekten sehr
ausführlich gehalten - http//www.openldap.org/ (LDAP Dokumentation)
- bietet gute Hilfe bei der Grundinstallation
- http//de.wikipedia.org/wiki/Hauptseite
- gute Allgemeininformationen