Enterprise User Security mit Active Directory Jürgen Kühn Trivadis GmbH Düsseldorf Schlüsselworte: Enterprise User Security, Active Directory, Directory Integration and Provisioning, Active Directory Passwort Filter, Referentielle Integrität, Compliance, Rollenmodell, personenbezogene Accounts Einleitung Unternehmen sind zunehmend gehalten, auch für Datenbankadministratoren personalisierte Accounts zu nutzen, damit den einschlägigen gesetzlichen Vorgaben - allen voran der Sarbanes Oxley Act und seine in der EU gültige Variante EuroSox - genüge getan wird und administrative Tätigkeiten nachvollziehbar und prüfbar einer einzelnen Person zugeordnet werden können. Die heute gängige Praxis in Unternehmen ist die von Wirtschaftsprüfern bemängelte Nutzung eines einzigen DBA Accounts für mehrere Mitarbeiter. Die Enterprise User Security ermöglicht die Verwaltung der Datenbank durch mehrere DBAs bei gleichzeitiger Verwendung individueller Accounts. Oracle Enterprise User Security vereinfacht darüber hinaus das Benutzer- und Rollenmanagement für Datenbanken erheblich. Die entsprechenden Informationen werden zentral in einem LDAP Verzeichnis abgelegt und gepflegt. Mit einer optionalen Authentisierung gegen ein externes Verzeichnis wie Active Directory oder Sun Java System Directory Server muss sich der Benutzer oder DBA keine zusätzlichen Passworte für seine Datenbanken merken. Hand aufs Herz - Wer kennt sie nicht, die kleinen und großen Datenbankinstallationen in kleinen und großen Unternehmen, in denen alle Datenbankadministratoren sich einen Datenbankaccount teilen und damit sowohl alle täglich anfallenden als auch außerplanmäßigen Aufgaben ausführen. Gründe hierfür sind schnell gefunden. In kleinen Unternehmen mit wenigen Administratoren ist der Nutzen personenbezogener Accounts nicht sofort ersichtlich. In großen Konzernen dagegen scheut man oft den Aufwand, der mit der Verwaltung sehr vieler DBA Accounts in unter Umständen tausenden Datenbanken verbunden ist. Auch muss man sich über Stellvertreterregelungen und Rollenmodelle keine Gedanken machen, wenn die Datenbankadministration ohnehin nur mit genau einem DBA Account erledigt wird.
In Zeiten von erhöhten Anforderungen an Datensicherheit, Datenschutz und ganz allgemein Compliance, ist die Nutzung von sogenannten Shared Accounts nicht mehr akzeptabel, auch nicht oder gerade nicht für Datenbankadministratoren. Oracle Enterprise User Security Oracle bietet mit der Enterprise User Security eine einfache und elegante Möglichkeit, Accounts von Datenbankadministratoren und -benutzern zentral in einem LDAP Verzeichnis zu verwalten. Neben den eigentlichen Accounts können auch die Rollen eines Benutzers im LDAP Verzeichnis abgebildet und verwaltet werden. Aufgrund der nahtlosen Integration mit Oracle Datenbanken und verschiedener technischer Gegebenheiten wird als LDAP Verzeichnis in aller Regel das Oracle Internet Directory eingesetzt. Da nahezu alle Verwaltungstätigkeiten für alle Enterprise User sowie deren zugeordnete Rollen zentral im Oracle Internet Directory erfolgen, ergibt sich eine enorme Vereinfachung bei Erstellung, Pflege und Löschung von Datenbankbenutzern und -rollen. Enterprise User Security unterstützt eine starke Authentisierung der Benutzer mittels Kerberos oder SSL. Global Users Global Users im Sinne der Enterprise User Security sind Benutzer, die trotz der Benutzerverwaltung im Oracle Internet Directory zusätzlich in jeder Datenbank mit ihrem Distinguished Name angelegt werden müssen und somit ein eigenes Schema besitzen. Damit ist immer noch ein gewisser Aufwand bei der Anlage und Pflege neuer Datenbankbenutzer erforderlich. Dieser Aufwand lässt sich durch Enterprise User vermeiden. Enterprise Users In vielen Fällen ist es nicht erforderlich, dass Administratoren oder Benutzer ein eigenes Schema besitzen. Vielmehr reicht der Zugriff auf ein gemeinsam von allen Benutzern verwendetes Schema in den meisten Fällen völlig aus. Dann werden Benutzer als so genannte Enterprise User angelegt. Enterprise User werden nur im Oracle Internet Directory, nicht aber in der Datenbank angelegt. In der Datenbank muss lediglich ein sogenanntes Shared Schema als Stellvertreter- Benutzer angelegt werden. Im Oracle Internet Directory werden dann individuelle Benutzer, Gruppen von Benutzern oder aber alle Benutzer unterhalb eines LDAP Knotens einem oder mehreren Shared Schemata zugeordnet.
Enterprise User Security stellt sicher, dass die von einem globalen Benutzer ausgeführten Tätigkeiten in der Datenbank eindeutig dem angemeldeten Benutzer zugeordnet werden können. Enterprise User, Global User und normale Benutzer lassen sich beliebig gemischt in einer Enterprise User Security Umgebung einsetzen. Rollen Enterprise User Security lässt ein detailliertes und komplexes Rollenmodell zu, erfordert dies aber nicht. Vielmehr besteht die Möglichkeit, in der Datenbank definierte Rollen 1:1 im Oracle Internet Directory abzubilden. Enterprise User Security nutzt eine dreistufige Rollenhierarchie. Die unterste Ebene bilden dabei die klassischen in der Datenbank angelegten oder vordefinierten Rollen und Privilegien. Nutzbar von der Enterprise User Security sind jedoch nur globale Rollen, die zu diesem Zweck in der Datenbank angelegt werden müssen und die zweite Hierarchieebene bilden. Einer globalen Rolle können sowohl Rollen als auch Privilegien zugeordnet werden, jedoch keine anderen globalen Rollen. Die dritte Ebene bilden die Enterprise Rollen, die im Oracle Internet Directory definiert werden. Eine Enterprise Rolle kann eine oder mehrere globale Rollen aus einer oder mehreren Datenbanken enthalten. Last but not least können nun eine oder mehrere Enterprise Rollen einzelnen Enterprise Usern oder Gruppen von Benutzern zugewiesen werden. Es ist unschwer zu erkennen, dass das beschriebene Prinzip der Rollenbildung sehr komplexe Rollenmodelle unterstützt, die trotz der Verwaltung im Oracle Internet Directory leicht unübersichtlich werden können. Dass es auch einfach geht, zeigt das Beispiel in Abbildung 1 für die Rolle DBA, die als 1:1 Beziehung in eine Enterprise Rolle RoleEnterpriseDba transferiert wird.
Abb. 1: Enterprise User Security Rollen Authentisierung der Benutzer Wenn sich ein Enterprise User an der Datenbank anmeldet, erkennt die Datenbank, dass der Benutzer nicht lokal existiert und stellt eine Verbindung zum Oracle Internet Directory her, um zunächst die Anmeldedaten des Benutzers zu prüfen. Nach erfolgreicher Prüfung liest die Datenbank alle dem Benutzer zugewiesenen Rollen und Schemata aus und stellt die Zuordnung des Benutzers zu einem Schema sowie den Datenbankrollen her. Weil die Datenbank die Authentisierungsdaten aus dem Oracle Internet Direcotry liest, wird eine SSL Verschlüsselung der Kommunikation zwischen Datenbankserver und Oracle Internet Directory Server empfohlen. Zusätzlich zur Authentisierung mit Passwort kann Enterprise User Security mit SSL und Kerberos genutzt werden. Dazu ist jedoch eine Oracle Advanced Security Option erforderlich. Anbindung von Active Directory Die Nutzung des Oracle Internet Directory zur zentralen Verwaltung von Enterprise Usern hat eine deutliche Reduzierung des Aufwandes zur Verwaltung von Datenbankbenutzern zur
Folge. Allerdings ist gerade in Unternehmen mit Active Directory dieses in der Regel das führende System zur Authentisierung aller Mitarbeiter. Das zusätzliche Anlegen und Löschen von Datenbankbenutzern im Oracle Internet Directory bedeutet zusätzlichen Aufwand, der nach Möglichkeit vermieden werden soll. Hier kommt Oracle Directory Integration and Provisioning ins Spiel, mit dessen Hilfe Benutzer- und Gruppeninformationen zwischen Oracle Internet Directory und Active Directory synchronisiert werden können. Mit Hilfe des Active Directory Passwort Filters können auch Passwortänderungen in Active Directory an Oracle Internet Directory transferiert werden. Directory Integration and Provisioning Mittels Oracle Directory Integration and Provisioning können Benutzer- und Gruppeninformationen zwischen Oracle Internet Directory und Active Directory synchronisiert werden. Ein Directory Integration Service, der in der Regel auf dem Oracle Internet Directory Server installiert ist, verbindet sich in regelmäßigen Abständen sowohl mit dem Oracle Internet Directory als auch mit dem Active Directory, das in diesem Fall einfach als LDAP Verzeichnis genutzt wird. Der Service prüft alle Benutzer- und Gruppeneinträge unterhalb von spezifizierten Knoten in beiden Verzeichnissen und speichert neue Einträge in Active Directory zum Oracle Internet Directory. Einträge, die im Active Directory gelöscht wurden, werden auch im Oracle Internet Directory gelöscht. Die Einträge des Active Directory werden nicht einfach in das Oracle Internet Directory kopiert, sondern es erfolgt eine Anpassung der LDAP Attribute an die Erfordernisse von Oracle Internet Directory. So wird der Directory Integration Service in der Regel so konfiguriert, dass das Active Directory Attribut samaccountname in das Oracle Internet Directory Attribut uid kopiert wird. Active Directory Passwort Filter Um die Passworte der Benutzer zwischen Active Directory und Oracle Internet Directory zu synchronisieren, muss der von Oracle bereit gestellte Active Directory Passwort Filter auf allen Domain Controllern installiert werden, weil es keine Möglichkeit gibt, Passworte aus Active Directory auszulesen. Der Passwort Filter bindet sich an die Local Security Authority des Windows Servers, erkennt Passwortänderungen der Benutzer und transferiert neue Passworte zum Oracle Internet Directory. Aus Sicherheitsgründen erfordert der Passwortfilter eine SSL Verbindung zwischen Active Directory Server und Oracle Internet Directory Server.
Falls ein Passwort nicht unmittelbar zum Oracle Internet Directory Server kopiert werden kann, wird es verschlüsselt auf dem Active Directory Server zwischengespeichert. Der Passwortfilter versucht dann mehrmals nach konfigurierbaren Zeitintervallen, das Passwort zum Oracle Internet Directory zu transferieren. Gelöschte Benutzer in Active Directory In der Standardkonfiguration von Active Directory sind gelöschte Objekte nicht sichtbar. Damit der Directory Integration Service gelöschte Active Directory Benutzer oder Gruppen auch im Oracle Internet Directory löschen kann, müssen dem zum Lesen des Active Directory genutzten Benutzers entsprechende Rechte für den Container Deleted Objects gewährt werden. Referentielle Integrität In der Regel werden bei der Konfiguration der Enterprise User Security im Oracle Internet Directory gespeicherte Datenbankbenutzer auch Gruppen im Oracle Internet Directory zugeordnet. Wenn nun ein Benutzer gelöscht wird, verbleibt sein Distinguished Name in der Gruppe, was inkonsistent und langfristig unübersichtlich ist. Deshalb sollte für Oracle Internet Directory die referentielle Integrität konfiguriert und aktiviert werden. Kernpunkt ist dabei ein regelmäßig auszuführendes Skript, das die entsprechende Bereinigung der Gruppeneinträge vornimmt. Das Skript arbeitet nicht mit LDAP Kommandos, sondern greift direkt auf die als Repository dienende Datenbank zu. Um Inkonsistenzen zu vermeiden ist es deshalb unbedingt erforderlich, dass, falls der Entry Cache des Oracle Internet Directory aktiviert ist, dieser vor dem Ausführen des Skripts deaktiviert und nach Ausführung des Skripts wieder aktiviert wird. Empfehlung zur Vorgehensweise Ein geplanter Rollout der Enterprise User Security mit Anbindung an Active Directory sollte in folgenden Schritten erfolgen: 1. Ein einfaches und geradliniges Rollenmodell definieren 2. Enterprise User Security für wenige Datenbankadministratoren und einige Datenbanken konfigurieren 3. Die Synchronisation mit Active Directory konfigurieren 4. Enterprise User Security für alle Datenbankadministratoren konfigurieren 5. Enterprise User Security für Datenbankbenutzer konfigurieren Fazit Oracle Enterprise User Security mit oder ohne Active Directory Anbindung ist ein probates Mittel zur Reduzierung des Verwaltungsaufwandes für Datenbankbenutzer. Darüber hinaus ist sie ein Baustein zur Umsetzung von Compliance Anforderungen.
Kontaktadresse: Jürgen Kühn Trivadis GmbH Werdener Str. 4-6 D-40227 Düsseldorf Telefon: +49(0)211-58666470 Fax: +49(0)211-58666471 E-Mail Juergen.Kuehn@Trivadis.com Internet: www.trivadis.com