Verzeichnisdienste

netplanet Werbung

Sehr viele Daten im Internet basieren auf Personendaten und müssen innerhalb eines Netzwerkes zentral vorgehalten werden. Dazu dienen Verzeichnisdienste (engl. "Directory Services"), die in Datenbankstrukturen entsprechende Daten speichern und über einheitliche Schnittstellen diese Daten im Netzwerk zur Verfügung stellen können. Obwohl diese Verzeichnisdienste in den allermeisten Fällen im Hintergrund arbeiten, sind einheitliche Unternehmensnetzwerke und zu großen Teilen auch das Internet ohne sie kaum denkbar.

Warum Verzeichnisdienste?

Mit dem Aufkommen von Unternehmensnetzwerken Mitte der 1980er Jahre entstand auch der Wunsch vieler Administratoren nach einer Möglichkeit, zentral Benutzer- und Computerdaten des Netzwerkes zu speichern und vorzuhalten. Wichtigste Anwendung hierbei ist die Benutzerauthentifizierung am Netzwerk; Benutzer sollen sich an Rechnern eines bestimmten Netzwerks mit Benutzername und Passwort anmelden müssen. Um eine zentrale Authentifizierung zu ermöglichen und entsprechende Nutzerberechtigungen zu prüfen, sind entsprechende Verzeichnisdienste notwendig.

Ein sehr früher Vorläufer von Verzeichnisdiensten wurde für die Unix-Betriebssystemwelt von der Computerfirma Sun Microsystems als "Sun Yellow Pages" (Sun YP) entwickelt, der später aus rechtlichen Gründen in "Sun Network Information Service" (Sun NIS) umbenannt wurde. NIS brachte eine Vielzahl an administrativen Möglichkeiten in einen Verzeichnisdienst unter; neben Benutzerauthentifizierungen beispielsweise auch Informationen zu im Netzwerk verfügbaren Computern und Gerätschaften die Druckern. Computer, die in das mit einem NIS-Server versorgten Netzwerk hinzugefügt werden sollten, mussten so zunächst im NIS-Netzwerk autorisiert werden und konnten dann zukünftig Benutzeranmeldungen direkt an den NIS-Server weiterleiten, der als zentrale Netzwerkautorität für entsprechende Authentifizierungen sorgte.

Als zentrale Benutzerverzeichnisse dienen Verzeichnisdienste auch als eine Art Mitarbeiterverzeichnis und "Telefonbuch". Zudem werden Verzeichnisdienste auch sehr häufig dazu verwendet, zusätzliche Authentifizierungen an einzelnen Netzwerkanwendungen zu übernehmen, um Doppelstrukturen mit zusätzlichen Benutzerverzeichnissen zu vermeiden.

NIS war lange der am häufigsten eingesetzte Verzeichnisdienst, stieß jedoch durch seine flache Datenbankhierarchie und immer größeren Anforderungen an Verzeichnisdienste nach und nach an seine Grenzen. Ein Nachfolger wurde gebraucht und noch weit vor der Internet-Ära waren solche Protokollentwicklungen üblicherweise sehr umfangreiche und langwierige Vorhaben (siehe hierzu auch Wer entwickelt das Internet?).

X.500, DAP und LDAP

Unter der Schirmherrschaft des einstigen Comité consultatif international télégraphique et téléphonique (CCITT), eine Unterorganisation der Vereinten Nationen und heute eine Unterorganisation der International Telecommunication Union (ITU) wurde 1998 eine ganze Protokollserie unter dem Kürzel X.500 begründet, die den Aufbau und Betrieb eines universell einsetzbaren Verzeichnisdienstes definieren soll. Die X.500-Protokollserie ist dabei vornehmlich als eine Protokollsammlung zu verstehen. Tatsächlich existiert keine vollständige X.500-Implementierung, allerdings sind viele Teile der X.500-Serie inzwischen anerkannte ISO-Standards und werden in vielen kommerziellen und nicht-kommerziellen Verzeichnisdiensten eingesetzt. Das wiederum ermöglicht es, dass viele dieser Verzeichnisdienste mit einheitlichen Schnittstellen funktionieren.

Ein X.500-Bestandteil ist das so genannte Directory Access Protokoll (DAP), das einen Zugriffsmechanismus auf einen Verzeichnisdienst gestattet und die Kommunikation zwischen Server und den Benutzerprozessen beschreibt. DAP basierte jedoch auf dem (ebenfalls von der CCITT entwickelten) ISO/OSI-Schichtenmodell und es zeichnete sich jedoch Ende der 1980er Jahre ab, dass sich eher das TCP/IP-Modell als Standard zur Vernetzung von Rechnersystemen durchsetzen würde. Gleichzeitig weckte allerdings der Aufbau immer größerer Firmennetzwerken mehr denn je den Bedarf an schnellen und zuverlässigen Verzeichnisdiensten.

Im Jahre 1993 wurde an der University of Michigan die erste Version des so genannten Lightweight Directory Access Protocol (LDAP) veröffentlicht. Dabei handelte es sich um eine Art schlankes DAP, das auf dem TCP/IP-Modell basiert. Damit wurde den Verzeichnisdiensten, die auf dem funktionalen Modell der X.500 Standards basierten, der Weg zum Einsatz in großen Firmennetzwerken geebnet. LDAP ist mittlerweile die im Internet bedeutendste Implementierung für elektronische Verzeichnisdienste und Kernstück in vielen kommerziellen Verzeichnisdiensten wie beispielsweise Microsoft Active Directory. So stellt LDAP weitgehend sicher, dass Verzeichnisdienste einheitlich angesprochen werden können.

Aufbau

In X.500 beziehungsweise LDAP werden Einträge in einem hierarchischen Objektmodell dargestellt. Jedes Objekt wird als eine Liste von Eigenschaften, also Attributen, an einer bestimmten Stelle eines Verzeichnisbaums dargestellt. Das Objekt wird eindeutig durch seinen "Distinguished Name" (DN) identifiziert. Ziel ist es, die Organisationsstruktur eines Unternehmens möglichst deckungsgleich im Verzeichnisdienst des Unternehmensnetzwerks abzubilden.

Mit entsprechend sorgfältiger Planung lassen sich so Unternehmensbereiche, Abteilungen, Standorte et cetera abbilden und verwalten. Solche fast unbeschränkt fein strukturierbare Netzwerk- und Berechtigungsstrukturierungen sind unumgänglich, wenn es darum geht, Netzwerkressourcen sinnvoll einzusetzen und beispielsweise Dateiberechtigungen auf Geschäftsbereiche zu beschränken. Bei auf mehreren Standorten verteilte Unternehmen können solche verteilten Verzeichnisdienste dafür sorgen, dass Benutzerdaten vornehmlich innerhalb von einzelnen Standorten zur Verfügung gestellt werden - da wo sie üblicherweise auch am meisten gebraucht werden.

In einem (wie immer) fiktiven Beispiel einer netplanet-Organisation könnte der Aufbau einer Hierarchie folgendermaßen aussehen:

Fiktive LDAP-OrganisationsstrukturDie Organisation (in LDAP bezeichnet mit "O") namens "netplanet" beinhaltet drei Organisationsuntereinheiten ("Organization Unit" = "OU") namens "Leitung", "Autor" und Lektorat. In jeden der drei Untereinheiten dieser Organisation können nun Mitarbeiter eingruppiert werden, die entweder mit ihrer Benutzer-ID ("User ID" = "UID") oder mit ihrem vollständigen Namen ("Common Name" = "CN") bezeichnet werden.

Wäre meine Person beispielsweise in der Untereinheit "Leitung" eingruppiert, würde der gesamte DN in dieser Organisationsstruktur zum Zugriff auf meine Netzwerkinformationen innerhalb des Netzwerkes via LDAP folgendermaßen aussehen:

CN=Besim Karadeniz,OU=Leitung,O=netplanet

Um den Anforderungen eines flexiblen Verzeichnisdienstes gerecht zu werden, können noch mehr Informationen den Attributen des Eintrags hinzugefügt werden. Die Struktur jedes Objekts, also welche weiteren Attribute verwendet werden können, wird in einer Objektklasse definiert, die server-seitig konfiguriert ist und im gängigen Verzeichnisdiensten mitunter sehr umfangreich sind. Um weitere Informationen ergänzt könnte ein Eintrag folgendermaßen aussehen:

CN: Besim Karadeniz
OU: Leitung
O: netplanet
Email:
UID: bkaradeniz
UserPassword: geheim
Telefon: 07231-00000
Geburtstag: 01.01.1900
Gebaeude: F18
ZimmerNummer: 12345

Hier kann man bereits erkennen, dass der Eintrag vielseitig verwendet werden kann: Für das firmeninterne Mitarbeiterverzeichnis, als Eintrag in einem Telefonbuch und als Rechner-Account (UID, UserPassword).

In Verzeichnisdiensten von Netzwerken werden in solche Strukturen auch Zugriffsberechtigungen und zusätzlich eine Vielzahl an netzwerk- und benutzerspezifischen Informationen gespeichert. Üblicherweise sind Verzeichnisdienste durch Administratoren auch in sehr weiten Umfängen um eigene Felder und Strukturen erweiterbar, so dass unternehmenseigene Verzeichnisdienste maßgeschneiderte Anpassungen ermöglichen.

Anwendungen

Für viele Anwendungen im Internet ist der Aufbau der Informationen in einem Verzeichnissystem praktischer als in einer normalen, relationalen Datenbank oder in anderen Datenformaten. Besonders geeignet sind Anwendungen, die in großer Zahl Identitäten verwalten müssen und deren Datenstruktur erkennbar sein soll. Das ist unter anderem bei der Verwaltung von digitalen Zertifikaten der Fall. Der Standard X.509 ist dabei ein anerkannter Industriestandard.

Einsatz von X.500-Technologien in einem Verzeichnisdienst eines Netzwerks

Innerhalb eines Unternehmensnetzwerkes besteht die Notwendigkeit für die Verwaltung von Benutzern, Objekten und Berechtigungen, um nur autorisierte Personen und Geräte in das Netzwerk zuzulassen, Daten auf Servern zu schützen und die Nutzung von Geräten im Netzwerk (beispielsweise Computer, Drucker et cetera) zu reglementieren. Auch Informationen über E-Mail-Postfächer und den Zugriff auf einzelne Dienste können gegen ein zentrales Verzeichnisdienst geprüft werden. Mit einer zentralen Benutzerverwaltung ist es erst möglich, Mitarbeiter die Nutzung des Netzwerks zu ermöglichen und auch zu sperren.

Verzeichnisdienste in Unternehmensnetzwerken haben aufgrund ihrer Wichtigkeit allerdings auch spezielle Anforderungen. Beispielsweise muss sichergestellt sein, dass die Informationen im Verzeichnisdienst sehr schnell aktualisiert werden können, wenn dazu Bedarf besteht. Wird ein Benutzer gesperrt, muss dies möglichst sofort passieren. Ebenso ist es wichtig, mit einem Verzeichnisdienst eine Kontrolle darüber zu haben, von wo aus sich ein bestimmter Mitarbeiter verbunden hat oder wie beispielsweise der Status eines Gerätes im Netzwerk ist.

Mit LDAP wiederum existiert ein Protokoll, dass beispielsweise die Benutzeranmeldung auch für externe Anwendungen öffnet. Betreibt ein Unternehmen beispielsweise im Web eine Homepage, das mit einem Redaktionssystem arbeitet, so könnte dieses Redaktionssystem via LDAP die Berechtigungsdatenbank des Unternehmens in dessen Verzeichnisdienst zur Autorisierung nutzen. Eine Einsparung von zusätzlich zu merkenden Benutzerdaten und Passwörtern ist so möglich.

Noch komplexer werden diese Anforderungen, wenn ein Unternehmen in mehreren räumlich voneinander getrennten Standorten operiert, möglicherweise sogar in anderen Ländern oder auf anderen Kontinenten. In solchen Szenarien sind Verzeichnisdienste üblicherweise auf mehrere Server verteilt, die aber dennoch so Daten miteinander austauschen müssen, dass die gespeicherten Daten im Verzeichnisdienst möglichst ständig konsistent sind und im Zweifelsfall nachträglich eindeutig synchronisiert werden können, wenn ein Standort vorübergehend nicht erreichbar war. Man spricht hier von der Erfordernis einer sicheren und zuverlässigen Replikation, die in der X.500-Protokollfamilie in der Erweiterung X.525 beschrieben ist.

Verzeichnisdienste und auch die X.500-Protokollfamilie besitzen eine Reihe von solchen Erweiterungen, die solche Themen ansprechen, Lösungsansätze anbieten und auch Protokolle definieren. Sie werden zwar von Anbietern von Verzeichnisdiensten nicht unbedingt alle in der ursprünglichen Form implementiert, allerdings sorgen einige wichtige Implementierungen wie eben LDAP für eine gewisse Akzeptanz und auch für eine entsprechende Nachfrage, solche Erweiterungen auch in andere Verzeichnisdienste in kompatibler Form zu implementieren.

X.509 zur Verwaltung einer Public-Key-Infrastruktur

Moderne kryptografische Systeme funktionieren auf die Weise, dass die Datensicherheit nicht unbedingt abhängig davon ist, das Verschlüsselungssystem geheim zu halten, sondern lediglich den Schlüssel, mit dem eine Information verschlüsselt wird.

Eine Public-Key-Infrastruktur ist ein besondere Organisationsform für solche elektronischen Schlüssel, die zusammen mit Identitätsmerkmalen des Benutzers und eventuellen Beglaubigungsinformationen kombiniert in einem so genannten Zertifikat gespeichert werden (siehe hierzu auch Elektronische Signaturen).

Im Public-Key-Verfahren besteht der Schlüssel eines Benutzers aus zwei Teilen. Dem geheim zu haltenden Private Key und dem öffentlich nutzbaren Public Key. Beide Schlüssel sind kryptografisch so miteinander verbunden, dass Daten, die verschlüsselt an den Empfänger gesendet werden sollen, mit dem Public Key verschlüsselt werden müssen; die so verschlüsselten Daten können nur mit dem Private Key wieder entschlüsselt werden.

Um es für einen Absender überhaupt erst möglich zu machen, den Public Key eines Benutzers zu finden, ist die Identitätsinformation sehr wichtig, die zusammen mit dem Schlüssel im Zertifikat des Benutzers stecken. Dazu gibt es entsprechende Schlüssel-Server, die üblicherweise gemäß X.509 organisiert sind und neben Identitätsinformationen auch das Zertifikat des Benutzers verwalten und bereitstellen können. In sehr ähnlicher Weise verwalten auch Identitätsdienste wie zum Beispiel Active Directory Identitäten und auch entsprechende Zertifikate und Schlüssel.

X.509 wird auch bei Zertifikaten verwendet, die nicht auf eine Person, sondern für Organisationseinheiten oder für bestimmte Aufgaben vorgesehen sind. Bei verschlüsselten SSL-Verbindungen zu Websites (beispielsweise für Online-Bestellungen oder Online-Banking) ist es für den Nutzer wichtig, dass die Identität des Diensteanbieters gesichert ist. Sichergestellt wird die Authentizität der SSL-Verbindung durch ein SSL-Zertifikat, das durch eine vertrauenswürdige Zertifikatsherausgeber herausgegeben wird.

Die Angaben zur Identität sind beim Zertifikatsherausgeber dabei in einem X.509-konformen Verzeichnisdienst strukturiert und die Korrektheit und Authentizität dieser Angaben werden durch den Zertifikatsherausgeber sichergestellt. Ein (hier fiktives) SSL-Zertifikat könnte unter anderem die folgenden Informationen zum Diensteanbieter enthalten:

CN: Bezeichnung für das Zertifikat bzw. das Einsatzgebiet
O: Name des Zertifikatsherausgebers
OU: Organisationseinheit beim Zertfikatsherausgebers

Zertifikatsspeicher moderner Betriebssysteme und Webbrowser enthalten die dort gespeicherten Zertifikate von Zertifikatsherausgebern und Personen ebenfalls in Datenbanken, die nach dem X.509-Schema abgerufen werden können.

WERBUNG
Zum Beginn dieser Seite