Title: Single Sign On (zentrale Benutzer-Account-Verwaltung) mittels Samba und OpenLDAP
1Single Sign On(zentrale Benutzer-Account-Verwalt
ung)mittelsSamba und OpenLDAP
2Begriffsdefinitionen(Eigenschaften
Implikationen)
- Authentifizierung (Authentication)
- Dabei wird die eindeutige Identität eines
Benutzers festgestellt und
- in elektronischer Form repräsentiert
3Begriffsdefinitionen (Forts.)(Eigenschaften
Implikationen)
- Authentifizierung (Authentication)
- Klassische Form der Authentifizierung
- Tupel (Benutzerkennung, Passwort)
- Weitere Möglichkeiten
- ID-Card, biometrische Verfahren
4Begriffsdefinitionen (Forts.)(Eigenschaften
Implikationen)
- Autorisierung (Authorization)
- Setzt Authentifizierung voraus
- Bereits authentifiziertes Individuum
- wird als berechtigt identifiziert auf
- einen bestimmten Dienst oder
- ein bestimmtes Datum zuzugreifen
5Motivation für SSO
- Definition von SSO
- Pro BenutzerIn
- genau eine Benutzerkennunggenau ein zugehöriges
Passwort - dieses Tupel ist für die gesamte Dauereiner
Arbeitssitzung gültig
6Motivation für SSO (Forts.)
- Abkehr von zentralistischen Mainframes
- Diese hatten
- Mehrere Apps auf einem großen Host
- Authentifizierung Autorisierung wurdenüber das
Host-OS geregelt(Apps-spezifische
Autorisierungstabellen)
7Motivation für SSO (Forts.)
- Konsequenzen der C/S-Systeme
- Pro Apps/zu nutzender Dienst eigene(Benutzerkennu
ng, Passwort) - Praxis
- 3, 4 oder noch mehr digitale Identitäten
- Folglich PostIts, Zettel am Schreibtisch
- Moderne Variante Unverschlüsselter Textfile im
PDA
8Nächstes Teilziel
- Samba als Primary Domain Controller Ersatz für NT
4.0 ServerD.h. Zentrale Account-Verwaltung
mit Samba
- Allgemeine LösungD.h. Samba mit
OpenLDAP-Anbindung
9Ausgangssituation
- 1 Linux-Server mit Samba Vers. 2.2.7a
- Etwa 15-20 Windows NT- und/oder W2K- bzw.
XP-Clients
10Aufgabenstellung im LAN
- Anwender X arbeitet auf Windows-Client A
- Um Daten von Server S abzurufenAccount auf A und
S erforderlich
- Rechner A wird defekt
- X weicht auf Rechner B aus
- Um von B aus auf Server S zuzugreifen istauch
auf B lokaler Account nötig!
- Anwender X will sein Passwort ändern!
- Änderung auf Server S und jedem Client A, B, ...
nötig - D.h., mindestens linearer Aufwand bei Passwort-
bzw. Account-Administration
11Zieldefinition
- (Benutzerkennung, Passwort) weg von
Zentrale Verwaltung
- Benutzer soll sich genau einmal
anmeldenEffekt Alle lokal und am Samba-Server
für ihn freigegebenen Resourcen (Dateien,
Drucker, ...) sind für gesamte Session verfügbar
12User-Account Administrationin typischen LAN
13Authentifizierung mittels PDC
14Wesentliche Windows-NT Begriffe
- Share Freigegebene Resource am NT bzw.
Samba-Server (Verzeichnisse, Drucker)
- Domain Bereich administrativer Kontrolle
Sicherheit - Benutzer melden sich bei Domäne an, nicht bei
individuellen Server - Danach stehen ihm alle freigegebenen
Domänen-Resourcen zur Verfügung
15Komponenten einer Domäne
- Ein Primary Domain Controller ( PDC)
- Ein oder mehrer Backup Domain Controller( BDC)
- Resource Servers(etwa File- und/oder
Print-Server)
- Windows-Clients (Win 9x, NT 4.0, W2K, XP)
16Primary Domain Controller (PDC)(Funktionen)
- Validiert Benutzeranmeldung an der Domäne
- Zentrale Benutzerverwaltung undSicherheitsregeln
in einer Datenbank(SAM Security Account
Manager)
- Stellt eindeutige administrativer Einheitfür das
Netzwerk zur Verfügung
17Zwei zentraleSAM-Komponenten
- Maschinenkonto Eintrag in SAM-DB für jeden zur
Domain gehörenden Windows-Client
- Benutzerkonto Eintrag in SAM-DB für jeden
menschlichen Domänen-User
18Samba als PDC
weist u.a. folgende Eigenschaften auf
- Verwaltet alle User-Accounts
- Führt Authentifizierung durch
- Hat spezielles Verzeichnis für Domain-Anmeldediens
t
19Maschinenkonten einrichten
- Pro Windows-WS ein Maschinenkonto
- Maschinenkonto Gewöhnliches Benutzerkonto aus
Linux-Sicht (mit speziellen Eigenschaften)
- Username NetBIOS-Name der Win-WS
- UID aus dafür reservierten Bereich nehmenz.B.
UID für Maschinenkonten gt 1001
20Maschinenkonten einrichten (Forts.)
- Alle Windows-WS mit NetBIOS-Namen undIP-Adresse
in /etc/hosts oder DNS-DB eintragen
21Beisp. Anlegen Maschinekonto für Rechner w2k-1
- useradd u 1001 -d /dev/null s /bin/false
w2k-1
- passwd l w2k-1
- smbpasswd am w2k-1
- Domain-Logon W2K/XP-Clientsroot in
Samba-Passwortdatei eintragensmbpasswd -a root
22smb.conf Einträge für Samba-PDC
23Beitritt W2K-WS zu Domain
24Beitritt W2K-WS zu Domain (Forts.)
Entfernen
Client-Support für Active Directory erst ab
Version 3.0
25Domain-Logon Vorgang(nur mit Samba als PDC)
- Außer Windows-Administrator kein lokaler
Win-User erforderlich !
26Zusammenfassung
- Fassen Sie das Gelernte zusammen.
- Definieren Sie Anwendungsmöglichkeiten für das
Gelernte. - Erbitten Sie Feedback zur Schulungsveranstaltung.
27Domain-Logon Vorgang(Samba als PDC und
LDAP-Anbindung)
28LDAP Leightweight Directory Access Protocol
- Protokoll, das den Zugriff auf Verzeichnis-(Inform
ations-)dienste definiert. - Offener Standard RFC 1487, 1777, 2251 und
weitere - Verzeichnis vs. Datenbank
- Verzeichnis v.a. Lesezugriffe
- Datenbank auch viele Schreibzugriffe
29LDAP Beispiel 1
- Benutzerinformationen im Active Directory
- In Windows 2000 ist LDAP integraler Bestandteil
des Active Directory - Verzeichnisdienstes
30Beispiel 2 LDAP Abfrage über HTML
31Geschichte von LDAP
- LDAP ist aus dem Standard X.500 DAP entstanden
- X.500
- Protokoll zur Beschreibung eines
Informationsdienstes auf Basis einer
baumähnlichen Datenbankstruktur - Zu speichernde Informationen werden in
Objektklassen beschrieben Attributnamen, Typen
und deren Wertebereich - benutzt den OSI-Protokollstapel
32Geschichte von LDAP (Forts.)
- LDAP (Lightweight Directory Access Protocol)
- Version 1 an der Universität Michigan entwickelt.
- Idee dahinter LDAP soll als Mittler zwischen
IP-Clients und einem OSI-X.500 Server dienen - Aktuelle Version LDAP v.3
- Unterschiede zu X.500 DAP
- benutzt TCP/IP
- Vereinfachung einiger Operationen
- einige speziellere Funktionen weggelassen
33LDAP Datenaufbau
- Objekte, Attribute, Werte
- Bsp. Objekt Person Atribute cn
(commonName), sn( surname),
telephoneNumber, ...
34Datenaufbau (Forts.)
- Objektklassen definieren, welche Attribute mit
welchen Wertetypen erlaubt sind - Attribute
- optional oder zwingend (required)
- einwertig oder mehrwertig (z.B. Emailadressen)
- Wertetypen sind unter anderem IA5 (ASCII)
Zeichenketten, JPEG Fotos, Sounddaten, URLs und
PGP Schlüssel - Objekte können abgeleitet werden
- z.B. Objekt organizationalPerson abgeleitet von
Objekt Person erbt alle Attribute von Person
eigene Attribute
35Datenaufbau (Forts.)
- Zu den am meisten benutzten Objekten gehören
- country
- locality
- organization
- organizationalUnit
- person
- Häufig genutzte Attribute sind unter anderem
- commonName (cn)
- organizationName (o)
- organizationalUnitName (ou)
- localityName (l)
- country (c)
36Datenaufbau Hierarchie
- Einträge sind hierarchisch aufgebaut
- Die Objekte bilden den Directory Information Tree
(DIT)
37LDAP Distinguished Names (DN), Relative
Distinguished Names (RDN)
- Über den Distinguished Name (DN) werden Einträge
eindeutig identifiziert. Dazu wird der
hierarchische Pfad herangezogenz.B. cnJohn
Smith,oIBM,cDE - DNs bestehen aus aneinandergereihten RDNs
(Relative Distinguished Names) - cnJohn Smith
- oIBM
- cDE
38Distinguished Names (Forts.)
- Es gibt alternative Möglichkeiten, den DN zu
schreiben - z.B. LDAP-URL (RFC 1959)
- ldap// DNS des LDAP-Servers / DN des
betreffenden Objekts - z.B. ldap//ldap.ibm.de/cnJohn Smith,oIBM,cDE
39LDAP Schema
- Objektklassen, Attribute und ihre Wertebereiche
werden in einem Schema festgelegt. Dieses ist
frei zu gestalten, allerdings gibt es zum Zweck
der Interoperabilität standardisierte Schemata - z.B. RFC 2252 Lightweight Directory Access
Protocol (v3) Attribute Syntax Definitions - RFC 2256 A Summary of the X.500(96) User Schema
for use with LDAPv3.
40LDAP-Schema Beispiel
- Object Class Definitions
- objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount'
- SUP top AUXILIARY
- DESC 'Abstraction of an account with POSIX
attributes' - MUST ( cn uid uidNumber gidNumber
homeDirectory ) - MAY ( userPassword loginShell gecos
description ) ) - objectclass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup'
- SUP top STRUCTURAL
- DESC 'Abstraction of a group of accounts
- MUST ( cn gidNumber )
- MAY ( userPassword memberUid description ) )
41LDAP Operationen
- 3 Gruppen
- QUERY Informationen im LDAP-Verzeichnis suchen
- SEARCH
- UPDATE
- ADD Hinzufügen eines neuen Eintrages
- MODIFY Daten ändern
- REMOVE Einträge löschen
- AUTHENTIFICATION
- BIND, UNBIND Verbindungsauf-, abbau mit
LDAP-Server - ABANDON Verbindung mit Server beenden
- Schnittstellen (API) definiert für C, Java, HTML,
Oracle,...
42Beispiel für LDAP-Suche
- Man kann den Startpunkt für die Suche im DIT
(Directory Information Tree) bestimmen und wie
tief im Baum gesucht werden soll. Ebenso die
Suchkriterien und die gesuchten Attribute. - Shell-Kommando für den OpenLDAP-Clientldapsearch
options filter attributes... - Optionen
- -b den Suchstartpunkt (Base DN)
- -s die Tiefe (Scope) baseObject / singleLevel /
wholeSubtree - Bspldapsearch -b 'oIBM,cDE' 'cn Smith -x
43LDAP und Sicherheit
- Sicherheitsproblematik standardmäßig werden
Informationen (z.B. Passwörter) im Klartext über
die Leitungen geschickt und können mit
Paketsniffern leicht ausgelesen werden - Abhilfe Verbindung zwischen Rechnern sollte über
SSL/TLS laufen
44Beispielaufbau SSO
- Notwendige Pakete
- Serverseite
- Samba
- OpenLDAP Open Source LDAP-Server
- UNIX-/ Linux - Clients
- OpenLDAP Client
- nss_ldap Paket, das dafür sorgt, dass die
Password-Informationen vom LDAP-Server geholt
werden (und nicht aus /etc/passwd) - pam_ldap PAM ermöglicht flexible
Authentifizierungsvarianten (z.B. smart cards,...)
45Konfiguration des OpenLDAP-Servers
(/etc/openldap/slapd.conf)
include /etc/openldap/schema/core.schema include
/etc/openldap/schema/cosine.schema include
/etc/openldap/schema/nis.schema include
/etc/openldap/schema/inetorgperson.schema include
/etc/openldap/schema/samba.schema pidfile
/var/run/slapd.pid argsfile /var/run/slapd.args da
tabase ldbm suffix "dcSOHO,dcorg rootdn
"cnadmin,dcSOHO,dcorg rootpw
SSHACNpEOM8/teaC3jY6wBjF13saNejdngDc
Die Option suffix teilt dem Server mit, für
welchen Teilbaum er zuständig ist
Der DN für den Administrator des
LDAP-Verzeichnisses
Die benötigten Schemata werden inkludiert
46Samba-Konfigurationseinstellungen
global workgroup SOHO encrypt passwords
yes domain logons yes domain master
yes ldap server localhost ldap port
389 ldap suffix dcSOHO,dcorg ldap admin dn
cnadmin,dcSOHO,dcorg ldap filter
((objectclasssambaaccount)(uidu)) ldap ssl
no
47OpenLDAP- Beispieleintrag
- dn cnadmin,dcsamba,dcorg
- objectclass posixAccount
- cn admin
- uid admin
- uidNumber 1000
- gidNumber 100
- homeDirectory /home/admin
- loginShell /bin/bash
48Literatur
- Linux-Magazin 2/2003 www.linux-magazin.de
- Linux Samba Server AdministrationRoderick W.
Smith, Sybex-Verlag - The Unofficial Samba HOWTOhttp//hr.uoregon.ed
u/davidrl/samba.html - Samba Project Documenationwww.samba.org
Documenation page - Single Sign-On and the System Administrator,Mic
hael Fleming Grubb and Rob Carter, Duke
University
49Literatur (Forts.)
- Understanding LDAP, Heinz Johner, Larry Brown,
Franz-Stefan Hinner, Wolfgang Reis, Johan
Westmanhttp//www.redbooks.ibm.com/abstracts/sg24
4986.html - The SAMBA-2.2.4/LDAP PDC HOWTO,
- Olivier Lemairehttp//samba.idealx.org/dist/samb
a-ldap-howto.pdf - Zentrale Anmeldung, Volker Lendecke,
http//www.heise.de/ix/artikel/2002/04/148/ - Single-Sign-On unter Linux mit Active Directory
und LDAP, Michael Ganß,http//www.oo-services.co
m/articles/sso.html