© Marcel Mende, Fotolia.com
Linux-Authentifizierung über einen Active-Directory-Service mit Kerberos 5
Active-Directory-Service mit Kerberos 5
Gezähmter Höllenhund
von Walter Neu
Erschienen im Linux-Magazin
2008/07
Ausgerechnet Microsoft zeigt der Unix-Welt seit Jahren, wie die Kombination aus dem Verzeichnisdienst Active Directory und Kerberos erfolgreich zentrale Benutzerverwaltung und Single-Sign-on implementiert. Mit nur wenig Handarbeit klinkt sich auch Linux ein.
Linux und Windows leben heute in vielen Unternehmen in friedlicher Koexistenz. Ein Muster heterogener Netze ist das Nebeneinander von Windows-dominierter Bürosoftware und traditionell Unix-lastigen Server- und Netzwerkdiensten. Der Verzeichnisdienst Active Directory, den Microsoft mit Windows 2000 Server einführte, verwaltet vielerorts zentral Benutzerinformationen.
Linux verwendet typischerweise das klassische System der »/etc/passwd« zur Benutzerverwaltung und zur Authentisierung. Es gibt zwar auch im Netzwerk verteilte Lösungen wie NIS oder LDAP, aber wieso sollte eine vorhandene Infrastruktur nicht genutzt werden? Um die Vorzüge der komfortablen Verwaltungswerkzeuge zu nutzen, sind mehrere Teilkomponenten zu konfigurieren.
Dieser Beitrag geht davon aus, dass ein Active-Directory-Server eine vollständige Domänenstruktur unter Windows verwaltet. Die betrachteten Clients hingegen laufen unter Linux. Sie nutzen vorhandene Schnittstellen wie PAM und NSS, um das Login (Authentisierung), Zutrittskontrolle (Autorisierung) und die damit in Verbindung stehende Infrastruktur (Abbilden von User-Informationen auf den Client) bereitzustellen. Als Sahnehäubchen gibt es noch Single-Sign-on-Funktionalität, als Kirsche obendrauf fungiert das automatische Anlegen von Benutzerverzeichnissen auf den Clients.
Erweitertes Potenzial
Um die Welten zusammenzubringen, greift das vorgestellte Beispiel auf den Winbind-Dienst des Samba-Projekts und Kerberos 5 zur Authentisierung zurück. Dabei ist Kerberos keine Erfindung der Redmonder Software-Ingenieure, denn Microsoft hat das Authentifizierungsverfahren von Unix übernommen. Ursprünglich am Massachusetts Institute of Technology (MIT) entwickelt, existiert das Verfahren dort schon seit den 1980er Jahren. Das freie Projekt Heimdal [1] setzt ebenso wie die Referenz des MIT [2] diesen Standard mit vollem Support für Kerberos 5 um. Eine weitere freie Implementierung ist Shishi [3].
Microsoft erkannte das große Potenzial der Technik schneller als die Unix-Welt. Allerdings hat das Unternehmen durch eigene Erweiterungen dafür gesorgt, dass Active-Directory-Server zwar auch Linux-Clients verwalten, Kerberos sich unter Linux hingegen an Windows-Clients die Zähne ausbeißt. Das ändert sich vielleicht, sobald Samba in kommenden Versionen als Domänencontroller für ein Active Directory dienen kann. Bis dahin bleibt in heterogenen Landschaften nur, die Lösung aus Redmond zur Authentifizierung mit Kerberos einzusetzen.
Bewachte Geheimnisse
Kerberos ist ein Ticket-basierter Authentifizierungsdienst in einem ungesicherten TCP/IP-Netzwerk, der auf dem Prinzip des geteilten Geheimnisses (Shared Secret) basiert. Das System nennt einen logisch abgeschlossenen Bereich, der eine Anzahl von Clients und Dienste umfasst, einen Realm.
Im hier vorgestellten Beispiel laufen die Clients und optional einige Dienste, etwa ein Dateiserver, unter Linux. Windows übernimmt den Verzeichnisdienst und die Authentifizierung durch das so genannte Key Distribution Center. Das KDC ist eine vertrauenswürdige dritte Partei und die zentrale Komponente von Kerberos (Abbildung 1). Es umfasst im Wesentlichen den Authentication Server (AS) und den Ticket Granting Server (TGS).

|
Abbildung 1: Innerhalb der Kerberos-Architektur werden alle beteiligten Komponenten in einem eigenen Bereich, dem Kerberos-Realm, zusammengefasst. Den Kern dieses Bereichs bildet das Key Distribution Center mit den Hauptakteuren AS, TGS und der Principal-Datenbank.
|
Zu Beginn einer Sitzung weist jedes Mitglied des Realm, ein so genannter Principal, seine Authentizität einmalig nach. Dazu fordert er beim AS ein initiales Ticket Granting Ticket (TGT) an. Mit diesem meldet er sich in der Folge am Ticket Granting Service an, um weitere Service Tickets zu bekommen. Tickets versteht Kerberos als elektronischen Legitimationsnachweis (Credential). Hat ein Principal ein Credential erhalten, erhält er ohne weitere Passworteingabe Zugang zu kerberisierten Anwendungen, die einen Identitätsnachweis benötigen (Single-Sign-on). Das Passwort hatte er nur eingetippt, um das TGT zu erhalten.

|
Abbildung 2: Authentifizierung mit Kerberos ist trickreich, aber flexibel: Ein Client sendet eine TGT-Anfrage zum KDC (1) und erhält ein zeitlich befristetes Ticket (2). Es berechtigt den Client zum weiteren Lösen (3) von Fahrscheinen (4)für kerberisierte Netzdienste (5), ohne das Passwort erneut einzugeben.
|
| Whitepaper |
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|