Blog - Artikel

Verzeichnisdienste und Metadirectories - die Lösung für Benutzerdaten?

von (Kommentare: 0)

I. Begriffe

Verzeichnisdienste (engl. directory services)

Ein Verzeichnisdienst ist ein Programm, das Daten in einem hierarchischen Verzeichnis speichert. Es lässt sich gut mit einem normalen Verzeichnisbaum auf einer Festplatte vergleichen, wobei die 'Dateien' einen festen Aufbau haben: sie enthalten eine Liste von sog. Attributen (z.B. 'Nachname'), die jeweils einen oder mehrere Attributwerte (z.B. 'Schmidt') besitzen können.

In jedem Verzeichnisdienst gibt es ein sog. Schema. Dieses Schema legt fest, welche Objekte (d.h. 'Dateitypen') im Verzeichnis existieren können, und welche Attribute und Attributwerte für jedes Objekt erlaubt sind.

Verzeichnisdienste werden mittlerweile als Grundlage für die Benutzerdaten der meisten Standardsoftware verwendet. Die Objekte im Verzeichnis können über das genormte LDAP-Protokoll (s.u.) verwaltet werden, welches von allen namhaften Herstellern unterstützt wird.


Metadirectories

Weil jede Anwendung über eine eigene Datenhaltung verfügt, in der sie ihre Benutzer- und Berechtigungsdaten ablegt, müssen Benutzerdaten (z.B. Vor- und Nachnamen, Telefonnummern etc.) dezentral gepflegt werden und können daher voneinander abweichen. Hierbei spielt es keine Rolle, ob die einzelnen Anwendungen ihre Daten in einem Verzeichnisdienst oder in einer sonstigen Datenbank ablegen: es handelt sich um ein organisatorisches Problem, welches nur durch einen einheitlichen Datenspeicher gelöst werden könnte, der von allen Anwendungen verwendet wird (dazu später mehr).

Um die Benutzerdaten in den verschiedenen Datenhaltungen konsistent zu halten, wurden sog. Metadirectories ('Meta' in der Bedeutung eines übergeordneten Verzeichnisses) entwickelt. Im Gegensatz zu einem Verzeichnisdienst, der einen kompletten Datensatz für jeden Benutzer enthält, werden hier Teile der Benutzerdaten in den einzelnen Systemen 'vor Ort' gepflegt (z.B. Benutzerdaten im Personalverwaltungssystem, Rufnummern in der Telefonanlage, Email-Adressen in der entsprechenden Email-Software). Für diese Teildaten werden die dezentralen Systeme als 'führend' definiert, d.h. sie enthalten immer den als allgemeingültig befundenen Wert.

Das Metadirectory selbst ist ein automatischer Kopierprozess, der die einzelnen Daten aus den jeweils führenden Systemen entnimmt und an alle anderen Systeme verteilt (soweit sie die Daten benötigen).


Virtuelle Verzeichnisse (engl. virtual directories)

Fast alle Metadirectories bieten eine Sicht auf die konsolidierten Daten der einzelnen Verzeichnisse an. Diese Sicht wird virtuelles Verzeichnis genannt. So kann ein Administrator leicht die insgesamt gültigen Daten ansehen und Auswertungen erstellen.

II. Fragen

Warum gibt es überhaupt Metadirectories, wenn doch fast alle Anwendungen Verzeichnisdienste verwenden und Zugriffe über LDAP unterstützen? Kann man nicht einen einheitlichen Verzeichnisdienst für alles verwenden?

Bei der Beantwortung dieser Fragen bleiben alle Anwendungen außen vor, die keine Verzeichnisdienste und damit kein LDAP verwenden. Hier ist immer spezieller Implementierungsaufwand notwendig, unabhängig von der Verwendung eines Metadirectories oder sonstiger Abgleichsmechanismen.

Bei Verzeichnisdiensten ist nur der technische Zugriff auf die Objekte, Attribute und Attributwerte standardisiert. Dieser technische Zugriff wird über das LDAP-Protokoll implementiert.

LDAP (engl. lightweight directory access protocol) ist ein Netzwerkprotokoll, das die Grundfunktionen eines Verzeichnisses standardisiert. Zu den Funktionen gehören z.B. das Erzeugen und Löschen von Objekten im Verzeichnis sowie das Lesen und Schreiben von Attributen und Attributwerten. Das Protokoll selbst hat keine Kenntnis von den fachlichen Informationen, die im Verzeichnis verwaltet werden, sondern steuert nur den technischen Zugriff zwischen den Anwendungen und Verzeichnissen.

Was zwischen verschiedenen Anwendungen nicht standardisiert ist, ist das Schema des Verzeichnisses. Das Schema ist anwendungsspezifisch und proprietär. Es gibt ein Schema für Microsoft Windows, eines für Novell NDS, eines für SAP Portale und ein weiteres für jede sonstige Anwendung. Grund dafür ist, dass das Schema die Geschäftslogik der Anwendung abbildet, die naturgemäß variiert. In allen Anwendungen gibt es z.B. ein Objekt Benutzer, was darunter jedoch im Einzelnen verstanden wird, d.h. welche Attribute und Attributwerte laut Schema erlaubt sind, ist höchst unterschiedlich. Einige Attribute sind im Standard definiert, z.B. Vor- und Nachname, ein Beschreibungsfeld oder die Telefonnummer. Die zusätzlichen Attribute werden von der Anwendung vorgegeben und sind proprietär.

Mit LDAP allein kann nicht das Problem gelöst werden, dass verschiedene Anwendungen eine völlig unterschiedliche Vorstellung von einem Objekt Benutzer haben.

Wenn also verschiedene Anwendungen einen einzelnen Verzeichnisdienst nutzen sollen, müssen die Schemata jeder Anwendung zu einem zentralen Schema vereinheitlicht werden, d.h. eine sog. Schemaabbildung vorgenommen werden. Ergebnis ist dann eine Art 'Metaschema'. Alle Anwendungen müssen selbst in der Lage sein, Schemaabbildungen zu verwenden, um ihre Daten korrekt lesen und speichern zu können, ohne andere Anwendungen zu beeinflussen.

Die Schemaabbildung muss dann einige Probleme lösen:

  • gleiche Objekt- oder Attributnamen mit unterschiedlicher Bedeutung

    Diese Namen müssen eindeutig gemacht werden, sonst interpretieren die Anwendungen u.U. Werte falsch.

  • unterschiedliche Attributnamen mit gleicher Bedeutung

    Hier könnte eine Vereinheitlichung der Namen große Probleme machen, wenn nicht klar ist, wann die Werte von den Anwendungen geändert werden (die Änderung eines Attributwerts kann Ereignisse in anderen Anwendungen auslösen, die unerwünschte Aktionen durchführen). Sie müssen hierzu die Geschäftslogik der Anwendung genau kennen.

Selbstverständlich muss die Schemaabbildung bei jedem Release-Wechsel einer der beteiligten Anwendungen vollständig überprüft werden, denn es könnte neue Objekte oder Attribute geben, die einen Konflikt mit einer existierenden Anwendung verursachen würden.

Aufgrund dieser Probleme und des daraus entstehenden Aufwands für Integration und Wartung des vereinheitlichten Schemas werden solche Projekte kaum durchgeführt, und die Einführung eines Metadirectories erwogen. So bleiben die Datenbestände autonom und die Anwendungen kommen sich nicht in die Quere.

 

Wenn man also wegen der Integrationsprobleme die einzelnen Verzeichnisse und Datenhaltungen nicht integriert und autonom hält, und man zusätzlich ein Metadirectory einführen muss, welchen Vorteil hat eine Verzeichnisdienst- und LDAP-Unterstützung der einzelnen Produkte für mich als Anwender?

Eigentlich gar keine. Die technische Integration der einzelnen Anwendungen in ein zentrales Verzeichnis, egal ob sie LDAP-fähig sind oder nicht, ist Aufgabe des Metadirectory-Anbieters.

Das Metadirectory selbst bietet Ihnen die Möglichkeit, per LDAP auf die konsolidierten Benutzerdaten zuzugreifen (z.B. in Email-Programmen, die über ihre Adressbücher eine Nutzung der Daten ermöglichen).

III. Integration von Benutzerdaten über Metadirectories

Wenn man erwägt, ein Metadirectory zur Integration von Benutzerdaten einzusetzen, muss zunächst der Nutzen des Datenabgleichs untersucht werden. Ein Projekt zur Einführung eines Metadirectories ist ja kein Selbstzweck, sondern soll die Geschäftsprozesse entscheidend verbessern.

Warum werden also konsistente Daten in den verschiedenen Systemen benötigt? Die Antwort auf diese Frage ist nicht so offensichtlich, wie es scheint.


Möglichkeit 1: Einführung eines zentralen Adressbuchs

Als Hauptgrund für die Integration der Benutzerdaten wird angegeben, dass die Daten eines Anwenders in verschiedenen Systemen inkonsistent sind. Die klassischen Beispiele dafür sind: Nachname (Änderung des Familienstands), Telefonnummer, Email-Adresse, postalische und Standortadresse. Hierbei handelt es sich um klassische Adressbuchinformationen.

Gepflegt werden die diese Informationen üblicherweise in den Personalverwaltungssystemen, die als führendes System für Adressbuchinformationen definiert werden können.

Adressbuchinformationen sind natürlich für alle Mitarbeiter des Unternehmens wichtig, um mit Kollegen in Kontakt zu treten. Da hier nur allgemeine Kontaktinformationen benötigt werden und Datenschutzbelange beachtet werden müssen, ist ein lesender Zugriff aller Mitarbeiter auf das Personalverwaltungssystem nicht möglich.

Es bietet sich an, die Adressbuchinformationen aus dem Personalverwaltungssystem in einen LDAP-kompatiblen Verzeichnisdienst zu exportieren (für solche Informationen sind Verzeichnisdienste ursprünglich ja entwickelt worden).

Die Mitarbeiter können dann mit ihren Email-Programmen (soweit sie LDAP unterstützen) direkt auf den Verzeichnisdienst zugreifen. Alternativ könnte man auch eine webbasierte Anwendung nutzen, die einen Zugriff auf das Verzeichnis implementiert, um per Browser nach Telefonnummern und Email-Adressen zu suchen.

Externe Mitarbeiter, die nicht im Personalverwaltungssystem vorhanden sind, werden am besten über eine webbasierte Anwendung direkt im Verzeichnisdienst gepflegt.

Die Adressbuchinformationen aller Mitarbeiter können so konsistent gepflegt werden und stehen allgemein zur Verfügung (über das Verzeichnis können zusätzliche Lese- und Schreibberechtigungen vergeben werden, um die Zugriffe einzuschränken).

Da sich die Adressbuchinformationen der Mitarbeiter nur selten ändern, lässt sich ein Export aus dem Personalverwaltungssystem leicht in einem nächtlichen Abgleich umsetzen. Die technische Implementierung des Datenabgleichs ist trivial.

Fazit: ein zentrales Adressbuch lässt sich leicht und kostengünstig ohne Nutzung eines Metadirectories implementieren und ist in den meisten Fällen völlig ausreichend.


Möglichkeit 2: Verteilung von Informationen zur Abbildung der Geschäftslogik

Wie bei den Verzeichnisdiensten besprochen, gibt es für jeden Benutzer in den einzelnen Anwendungen neben den Adressbuchinformationen zusätzliche Daten, die zur Geschäftslogik gehören. Da die diese Geschäftslogik anwendungsspezifisch ist, macht ein anwendungsübergreifender Abgleich fachlich keinen Sinn. Diese Daten bleiben besser in den Datenspeichern vor Ort, ein Metadirectory ist nicht erforderlich.

Auch Sicherheitsdaten wie Berechtigungen oder kryptographische Schlüssel gehören zur Geschäftslogik eines bestimmten Produkts (z.B. eines Betriebssystems oder einer Datenbank) und sind daher proprietär. Eine Verteilung über ein Metadirectory ist daher auch unnötig.

Fazit: Daten der Geschäftslogik einzelner Anwendungen können nicht sinnvoll über ein Metadirectory in andere Systeme verteilt werden. Das gilt auch für Berechtigungsdaten einzelner Software-Produkte.


Möglichkeit 3: Aktualisierung der Adressbuchinformationen in den einzelnen Systemen

Adressbuchinformationen für Benutzer finden sich, mehr oder weniger umfangreich, in vielen Standardprodukten wieder. So gibt es umfangreiche Kontaktdaten in Windows, Novell Netware, SAP und natürlich auch in Email-Systemen wie Lotus Notes. Auch in anderen Systemen und Eigenanwendungen können meist mindestens Vor- und Nachname oder eine Telefonnummer hinterlegt werden.

Da es hier keine eine einheitliche Datenpflege gibt, sind diese Informationen meistens gar nicht vorhanden, oder hoffnungslos veraltet. In vielen Unternehmen gibt es keinen definierten Geschäftsprozess, der bei Änderungen des Familienstands (Änderung des Nachnamens durch Heirat oder Scheidung) eines Anwenders oder Wechsel des Büros (neue Adresse und/oder Telefonnummer) Änderungen in den einzelnen IT-Systemen veranlasst. Meist ist auch gar nicht bekannt, in welchen Systemen ein Mitarbeiter überhaupt Benutzerkonten besitzt. Wenn er das Unternehmen verlässt, bleiben die Konten dann meist erhalten und stellen Sicherheitslücken dar, bis sie ein paar Monate später auffallen, weil sie wegen längerer Nichtanmeldung gesperrt worden sind.

Wozu sind diese dezentralen Kontaktinformationen notwendig?

Die einzigen Mitarbeiter, die Zugriff auf die Benutzerdatensätze haben, sind die Systemadministratoren, die Benutzerkonten verwalten. Daher sind nur sie bei Datenfehlern betroffen, weil sie einen Anwender nicht erreichen können oder die Telefonnummern/Email-Adressen in einem anderen Verzeichnis suchen müssen. Falsche Informationen behindern die Administratoren in ihrer täglichen Arbeit.

Eine Ausnahme sind die Email-Systeme im Unternehmen. Hier haben alle Nutzer Zugriff auf die Adressbuchinformationen. Dieses Problem ist aber, wie oben beschrieben, leicht durch die Nutzung eines zentralen LDAP-Adressbuchs lösbar, welches auch vom Email-System benutzt wird, und erfordert kein Metadirectory.

Fazit: ein Metadirectory könnte sinnvoll sein, konsistente Kontaktdaten für die Administratoren der einzelnen IT-Systeme bereitzustellen.


Zusammenfassung

Um ein zentrales Adressbuch im Unternehmen einzuführen, ist ein Metadirectory nicht notwendig und überdimensioniert. Eine Verteilung von anwendungsspezifischen Daten, die die Geschäftslogik abbilden, zwischen verschiedenen Produkten ist fachlich nicht sinnvoll. Das gilt auch für sicherheitsrelevante Daten wie Berechtigungen oder kryptographische Schlüssel, die proprietäre Daten einzelner Anwendungen darstellen.

Bleibt als mögliches Ziel die Bereitstellung gültiger und gleicher Kontaktdaten für Benutzerkonten in den verschiedenen Systemen, um die Systemadministration zu unterstützen, sowie systemübergreifende Auswertungen der Benutzerdaten.

IV. Administrationsprozesse in der IT

Wie oben beschrieben, verfügen die meisten Unternehmen nicht über einen definierten Geschäftsprozess, mit dem wichtige Änderungen an den Benutzerdaten an die IT-Abteilung weitergegeben werden. Nur Änderungen der Benutzerberechtigungen werden über ein offizielles Beantragungs- und Genehmigungsverfahren abgewickelt. So kommt es dann zu inkonsistenten Daten in den einzelnen Systemen, die Arbeit der Benutzeradministratoren wird so unnötig erschwert.

Selbst wenn es einen solchen Geschäftsprozess gäbe und geänderte Benutzerdaten (wie Nachname, Telefonnummer oder Email-Adresse) an die IT gemeldet würden, müssten die Administratoren zunächst erstmal alle Systeme identifizieren, in denen der Anwender überhaupt ein (oder mehrere) Benutzerkonten besitzt. Das ist in heutigen Systemlandschaften wegen der Problematik der dezentralen Administration (s.u.) kaum möglich. Die Änderungsmeldung müsste danach an die zuständigen Systembetreuer weitergeleitet werden, die sich mit den einzelnen Software-Produkten auskennen und Administrationstätigkeiten durchführen können.

Weil diese Prozesse in der täglichen Praxis viel zu aufwendig sind, werden die notwendigen Datenaktualisierungen kaum durchgeführt.

Also liegt es nahe, zunächst mal diese Geschäftsprozesse zu optimieren, bevor man über eine technische Lösung wie ein Metadirectory nachdenkt. Anschließend kann man über weitere technischen Optimierungen nachdenken.


Probleme dezentraler Systemadministration

Kernproblem bei der Optimierung der IT-Administrationsprozesse ist die dezentrale Administration, wie sie heute in Unternehmen üblich ist.

Innerhalb der IT-Abteilung werden die verschiedenen Systeme im Unternehmen von verschiedenen Teams betreut. Ein Team ist für SAP zuständig, ein anderes für Windows usw. Wenn ein genehmigter Änderungsantrag für einen Benutzer eingeht, wird er direkt an das entsprechende Team weitergeleitet, bearbeitet und abgeheftet. Ein Zusammenhang, welche Konten ein Benutzer insgesamt in den verschiedenen Systemen hat, wird nicht verwaltet. Das führt dann zu den oben erwähnten Problemen der Phantomkonten und damit zu Sicherheitslücken.

Meldet sich der Benutzer bei einem zentralen Helpdesk, um seine Daten korrigieren zu lassen, wird der Änderungsauftrag oft nur für das konkrete System eingestellt, und nicht ebenfalls für alle anderen Systeme, die auch betroffen wären. Wenn die Helpdesk-Mitarbeiter Zugriff auf die Systeme haben sollen, um den Benutzer direkt beraten oder ihm sofort helfen zu können, so müssen sie die Administrationsanwendung des Produkts verwenden (z.B. SAP-GUI oder die Windows-Benutzerverwaltung) und benötigen dazu Administrationsberechtigungen im System, was die Anzahl kritischer Konten erhöht. Alternativ kann man eine eigene Administrationsanwendung entwickeln und hat dann hohe Entwicklungs- und Wartungskosten, die mit jedem betreuten System ansteigen.

Zusätzlich hat jedes vorhandene System ein eigenes Berechtigungskonzept, es gibt kein einheitliches Berechtigungskonzept für das gesamte Unternehmen. Systemübergreifende Prüfungen und Auswertungen von Berechtigungen eines Benutzers sind nur schwer möglich.

Die Administrationsprozesse können nur verbessert werden, wenn das Problem der dezentralen Administration gelöst wird.


Optimierung der Administrationsprozesse

In diesem Abschnitt beschreiben wir eine Zielvorstellung von optimierten Administrationsprozessen in der IT.

Grundlage der optimierten Prozesse ist eine zentrale Administration von Benutzern und Berechtigungen in allen Systemen im Unternehmen. Das bedeutet, dass Administratoren die Benutzerkonten mit einem Werkzeug systemübergreifend verwalten können. Ein Administrator kann also z.B. direkt, ohne sich in den angeschlossenen Zielsystemen anmelden zu müssen, alle Kontoeigenschaften und Berechtigungen in SAP-, Windows- oder sonstigen Systemen bearbeiten.

Zweite Grundregel ist eine strikte Trennung zwischen dem Adressverzeichnis und dem zentralen Administrationssystem. Ein Adressverzeichnis steht tendenziell jedem Mitarbeiter offen, um Kontaktdaten von Kollegen zu suchen. Ein zentrales Administrationssystem darf nur von einer sehr eingeschränkten Benutzerzahl zur systemübergreifenden Administration oder Auswertung benutzt werden. Eine Integration dieser Funktionen in einem System oder Verzeichnis ist aus Sicherheitsgründen nicht zu vertreten: das Risiko von Fehlern in der Berechtigungsvergabe im Verzeichnis, um Mitarbeiter und Administratoren auseinanderzuhalten, öffnet Tür und Tor in den angeschlossenen Systemen.

Das Sicherheitssystem selbst muss über ein ausgefeiltes, rollenbasiertes Berechtigungskonzept verfügen, um Administrationstätigkeiten delegieren zu können. 'Super-'Administratoren, die in allen Systemen alles tun können, darf es nicht geben.

Die Kontaktdaten der Mitarbeiter werden aus dem Personalverwaltungssystem ins öffentliche Adressverzeichnis übernommen bzw. bei externen Mitarbeitern direkt im Verzeichnis gepflegt.

Das Sicherheitssystem sollte die Kontaktdaten aller Benutzer aus dem Adressverzeichnis auslesen können und sie in die einzelnen Systeme schreiben. Die Systemadministratoren haben dann immer die aktuellen, konsistenten Kontaktdaten zur Verfügung.

So entsteht eine sichere Trennung zwischen dem öffentlichen Adressverzeichnis und dem Sicherheitsbereich, in dem Administrationstätigkeiten vorgenommen werden.

Mit diesen optimierten Prozessen sind die Benutzerdaten in allen Systemen aktuell, gleichzeitig gibt es zusätzliche Vorteile durch die systemübergreifende Administration von Benutzerkonten und Berechtigungen.


Vorteile systemübergreifender Administration

Systemübergreifende Administration von Benutzern und Berechtigungen bietet Ihnen viele Vorteile:

  • Benutzer und Berechtigungen können systemübergreifend ausgewertet werden
  • für jeden Benutzer ist sofort sichtbar, in welchen Systemen er Benutzerkonten hat, und welche Berechtigungen diese Konten besitzen
  • Benutzerkontaktdaten sind überall konsistent
  • die Administrationsprozesse innerhalb der IT werden effizienter und kostengünstiger
  • Benutzeradministratoren benötigen keine speziellen Schulungen mehr, um einzelne Software-Produkte zu administrieren, sondern verwenden das gleiche Werkzeug für alle Systeme

Zusammenfassung

Durch Optimierung der Geschäftsprozesse in der IT-Administration durch Einführung eines systemübergreifenden Werkzeugs zur Administration von Benutzern und Berechtigungen lassen sich alle Ziele erreichen, die an Verzeichnisdienst- oder Metadirectory-Projekte gestellt werden.

Neben dem reinen Transport von Benutzerkontaktdaten zwischen verschiedenen Systemen, den auch ein Metadirectory leisten kann, erhält man so ein einheitliches Berechtigungsmodell für das gesamte Unternehmen.

Durch die klare Trennung von öffentlichem Adressverzeichnis und Administrationssystem wird außerdem eine hohe Sicherheit vor unerlaubtem Zugriff auf die angeschlossenen Systeme erreicht.

V. Fazit

Eine endgültige Lösung des Problems inkonsistenter Benutzerdaten in verschiedenen Systemen lässt sich nur erreichen, wenn die Geschäftsprozesse in der IT-Administration optimiert und eine systemübergreifende Administration der Benutzer und Berechtigungen mit einem einheitlichen Berechtigungsmodell eingerichtet wird.

(Dies ist ein Fachartikel unserer früheren Kolumne "Einwurf")

Zurück