Benutzerverwaltung mit LDAP Norbert Klasen Directory Services Universität Tübingen norbert.klasen@directory.dfn.de 10.10.2000
Benutzerverwaltung mit LDAP Authentifizierung Benutzerverwaltung mit LDAP Kerberos, TLS PAM PAM_LDAP Apache Fazit
Applikation / Datenbank aktueller Zustand Client Applikation / Datenbank Administrator LDAP Authentifizierung
LDAP basiertes Verzeichnis Zentrale Struktur Client Applikation LDAP basiertes Verzeichnis Administrator LDAP Authentifizierung
LDAP als zentrales Repository Offener Standard Erweiterbares Datenmodell Performance Überwiegend Lesezugriffe Skalierbarkeit Replikation loose consistency mehrstufige Topologie keine produktübergreifende Replikation LDAP Authentifizierung
Authentifizierung Identitätsfeststellung Mechanismen Username und Passwort public-key Zertifikate Chip-Karte Biometrie LDAP Authentifizierung
Autorisierung Zulässigkeit einer Operation Auswertung der Zugriffsrichtlinien (ACLs) anhand der Zugriffsfaktoren Identität Ziel Operation IP-Adresse Verschlüsselungsstärke AuthentifizierungsID AutorisierungsID Proxy-Mechanismus LDAP Authentifizierung
Authentifizierungs-Verfahren in LDAP (rfc2829) anonym simple bind (plain text) SASL (Simple Authentication and Security Layer, rfc2222) Challenge-Response (Digest-MD5) GSSAPI (Kerberos 5) EXTERNAL Using Digest Authentication as a SASL Mechanism, RFC 2831 Generic Security Service Application Program Interface, Version 2, RFC 2078 LDAP Authentifizierung
Kerberos Network Authentication Protocol Authentication Service (AS) stellt Tickets für Services aus Ticket Granting Service (TGS) stellt Ticket für AS ermöglicht Single-Sign-On AS und TGS bilden Key Distribution Center (KDC) LDAP Authentifizierung
Kerberos 5 und LDAP Kerberos 5 GSSAPI SASL Standard in Windows 2000 Interoperabel mit Unix Implementierungen Active Directory integriert KDC und LDAP Server Unterstützt in OpenLDAP 2.0 Reines Authentifikations System Kann keine weiteren Daten speichern LDAP Authentifizierung
Transport Layer Security SSL auf Port 636 TLS (rfc2830) LDAP Extended Request (STARTTLS) simple bind SASL EXTERNAL Mechanismus implizit: AutorisierungsID = Subject aus X.509 Zertifikat explizite Angabe der AutorisierungsID LDAP Authentifizierung
Pluggable Authentification Modules Modularisierung der Authentifizierung unter Unix Module /etc/passwd, Shadow, SMB, Radius, Kerberos, LDAP Name Service Switch Auflösung Namen Nummern z.B. UID oder Ports verfügbar unter Linux, FreeBSD, MacOS X, Solaris, HPUX, Irix LDAP Authentifizierung
Authentifizierung ohne PAM Authentifizierung fest eincompiliert: pwd = getpwnam (user); if (strcmp(crypt(password,pwd->pw_passwd), pwd->pw_passwd) != 0) return AUTH_ERROR; return AUTH_SUCCESS; LDAP Authentifizierung
Unix Authentifizierung Applikation C Bibliothek flat files NSS Bibliothek LDAP NIS SMB PAM Bibliothek Applikation C Bibliothek “flat files” /etc/passwd /etc/hosts LDAP Authentifizierung
Authentifizierung mit PAM PAM-Applikationen rufen generische PAM-Funktionen auf: pam_start (...); if (!pam_authenticate(...) || !pam_acct_mgmt(...)) { pam_end (...); exit (1); } pam_open_session (...); user_service (); pam_close_session (...); pam_end (...); LDAP Authentifizierung
Modul-Typen auth - Login und Paßwortabfrage account – Überprüft / setzt Systemressourcen session – An- bzw. abmelden der Sitzung password - Ändern des authenti-fizierungs Tokens, meistens das Paßwort Module sind stapelbar! LDAP Authentifizierung
Control-Flags required - Erfolg des Moduls ist zwingend, trotzdem weitere abarbeiten requisite - ähnlich, aber bei Mißerfolg sofort abbrechen sufficient - Bei Erfolg sofort abbrechen, folgende Module werden ignoriert optional - Ergebnis des Moduls wird ignoriert LDAP Authentifizierung
PAM Konfiguration eine Konfigurationsdatei je Dienst z.B. /etc/pam.d/login #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so use_first_pass account required /lib/security/pam_pwdb.so auth sufficient /lib/security/pam_ldap.so account sufficient /lib/security/pam_ldap.so #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_pwdb.so LDAP Authentifizierung
PAM_LDAP und NSS_LDAP gemäß rfc2307 „LDAP as Network Information Service“ Alternative zu NIS sicher bei Verwendung von SSL Migrationstools Verwendbar mit allen LDAP-kompatiblen Servern, z.b. Novell NDS, Microsoft Active Directory LDAP Authentifizierung
PAM_LDAP Funktionen auth suche nach UID bind account account und password expiration Gruppenzugehörigkeit Beschränkung auf bestimmte Hosts password Änderungs des Passworts LDAP Authentifizierung
PAM_LDAP Konfiguration Konfigurationsdatei /etc/ldap.conf host 127.0.0.1 port 389 ldap_version 3 base dc=directory,dc=dfn,dc=de rootbinddn cn=dragon.directory.dfn.de, ou=hosts,dc=directory,dc=dfn,dc=de pam_filter objectclass=account pam_login_attribute uid pam_groupdn cn=PAM,ou=Groups,dc=directory,dc=dfn,dc=de pam_member_attribute uniquemember pam_min_uid 500 LDAP Authentifizierung
Konfigurationsdatei /etc/nsswitch.conf NSS_LDAP Konfigurationsdatei /etc/nsswitch.conf passwd: files ldap group: files ldap hosts: files dns Name Service Caching Daemon passwd, group und hosts LDAP Authentifizierung
Apache auth_ldap Ausschnitt aus der httpd.conf <Directory /usr/local/htdocs/> AuthName ”LDAP Authentifizierung" AuthType Basic AuthLDAPURL ldap://host:port/ basedn?attribute?scope?filter AuthLDAPBindDN dc=directory,dc=dfn,dc=de AuthLDAPBindPassword geheim AuthLDAPRemoteUserIsDN on require valid-user </Directory> LDAP Authentifizierung
auth_ldap Funktionen irgendein eingetragener Benutzer require valid-user ein bestimmter Benutzer require user [USERNAME] require dn [DN] Benutzer einer Gruppe require group [GROUPDN] weitere Restriktionen über den filter Parameter Cashing SSL LDAP Authentifizierung
weitere Einsatzmöglichkeiten Cyrus SASL Bibliothek PAM backend für plain text Sendmail 8.11 Cyrus IMAPD proftpd SAMBA Radius LDAP Maps in sendmail Java Servelets (Webspere), etc. LDAP Authentifizierung
Fazit Neben den reinen Authentifizierungsdaten können in einem Verzeichnisdienst auch Zugriffsrichtlinien gespeichert werden Zusätzlich können White Pages Informationen abgelegt werden Verzeichnisdienste als das zentrale Managementtool für Applikationen und Netzwerkdienste Directory Enabled Networks (DEN) CNN.com portal: 2000+ request/s, 250ms response time, >25 Mio LDAP requests/d LDAP Authentifizierung
Fragen? norbert.klasen@directory.dfn.de http://www.directory.dfn.de
Links Kerberos und Active Directory SASL PAM_LDAP OpenLDAP http://www.pdc.kth.se/heimdal/ http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp http://msdn.microsoft.com/library/techart/kerberossamp.htm http://www.microsoft.com/windows2000/sfu/psync.asp SASL http://asg.web.cmu.edu/sasl/ PAM_LDAP http://www.padl.com OpenLDAP http://www.openldap.org LDAP im Netscape Navigator http://developer.netscape.com/docs/manuals/communicator/ldap45.htm LDAP Authentifizierung