Oracle Enterprise User Security mit Active Directory Jürgen Kühn Senior Consultant Nürnberg, 19.11.2009 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart
Agenda Motivation Oracle Enterprise User Security Anbindung Active Directory User sind immer im Spiel. Empfehlung Fazit Oracle Enterprise User Security mit Active Directory 2
Kundensituation Alle DBAs nutzen für alle Datenbanken ein und denselben Account DB5 DB4 User: DBADMIN DB2 Passwort: DBADBA DB1 DB3 DBn SQL> connect DBADMIN/DBADBA@ALL_DATABASES Oracle Enterprise User Security mit Active Directory 3
Compliance Personalisierte Accounts Auch und gerade für (Datenbank-) Administratoren Nachvollziehbarkeit von Administrationstätigkeiten Auditierbare Berechtigungen Anforderungen von Regulatorien und Gesetzen Sarbanes Oxley Act KonTraG Aktiengesetz AktG 91 (2) Der Vorstand hat geeignete Maßnahmen zu treffen, insbesondere ein Überwachungssystem einzurichten, damit den Fortbestand der Gesellschaft gefährdende Entwicklungen früh erkannt werden. Bürgerliches Gesetzbuch BGB 276 Fahrlässig handelt, wer die im Verkehr erforderliche Sorgfalt außer Acht lässt Gesetz betreffend die Gesellschaften mit beschränkter Haftung GmbHG 41 Die Geschäftsführer sind verpflichtet, für die ordnungsmäßige Buchführung der Gesellschaft zu sorgen. Oracle Enterprise User Security mit Active Directory 4
Agenda Motivation Oracle Enterprise User Security Anbindung Active Directory User sind immer im Spiel. Empfehlung Fazit Oracle Enterprise User Security mit Active Directory 5
Oracle Enterprise User Security (1) Quelle: Oracle Oracle Enterprise User Security mit Active Directory 6
Oracle Enterprise User Security (2) Benutzer im LDAP Verzeichnis Nicht mehr jeder Benutzer und jeder DBA ist in jeder Datenbank angelegt Oracle Internet Directory OID Verwalten von Datenbankrollen im Verzeichnis Ist Bestandteil der Oracle Database Enterprise Edition Früher in Advanced Security Option Unterstützt Kerberos Authentisierung Unterstützt SSL Authentisierung Oracle Enterprise User Security mit Active Directory 7
Global User Müssen in jeder Datenbank angelegt werden Müssen im Verzeichnis angelegt werden Besitzen ein eigenes Schema CREATE USER globaluser IDENTIFIED GLOBALLY AS '<DN>' CREATE USER kuehnj IDENTIFIED GLOBALLY AS 'cn=juk,cn=users,dc=domainora,dc=tvd' Oracle Enterprise User Security mit Active Directory 8
Enterprise User Werden nur im Verzeichnis angelegt Werden nicht in der Datenbank angelegt Shared Schema Benutzer besitzen kein eigenes Schema Ein Stellvertreter- Benutzer Mapping Wird im Verzeichnis definiert Einzelne Benutzer oder Knoten eines Verzeichnisses werden auf das Schema gemappt CREATE USER shareduser IDENTIFIED GLOBALLY AS '' CREATE USER guest IDENTIFIED GLOBALLY AS '' Oracle Enterprise User Security mit Active Directory 9
Enterprise User und Gruppen Oracle Enterprise User Security mit Active Directory 10
Rollen und Privilegien (1) Oracle Internet Directory Datenbanken Enterprise User Enterprise Rollen Globale Rollen Lokale Rollen RoleUserGlobal1 RoleUserLocal1 User RoleEnterpriseUser RoleUserGlobal2 RoleUserLocal2 RESOURCE DBA RoleEnterpriseDba RoleDbaGlobal DBA Oracle Enterprise User Security mit Active Directory 11
Rollen und Privilegien (2) Einer globalen Rolle können zugewiesen werden Privilegien Lokale Rollen Keine globalen Rollen Enterprise Rollen enthalten eine oder mehrere globale Rollen aus einer oder mehreren Datenbanken Enterprise Rollen können zugewiesen werden an Einzelne Benutzer Gruppen Dynamische Gruppen Aber nicht allen Benutzern in einem Knoten Oracle Enterprise User Security mit Active Directory 12
Rollen und Privilegien (3) Wie kann man Enterprise Rollen automatisch an alle Benutzer in einem Knoten zuweisen? Alle User unterhalb eines Knotens können dynamisch in eine dynamische Gruppe sortiert werden Beispiel: Neue dynamische Gruppe GrpDynEnterpriseUser Mitglieder: Alle Einträge mit Object Class Person im Subtree cn=users,dc=domainora,dc=com Enterprise User Dynamische Gruppen Enterprise Rollen User GrpDynEnterpriseUser RoleEnterpriseUser Oracle Enterprise User Security mit Active Directory 13
Authentisierung Datenbank authentisiert sich gegen OID Benutzer authentisieren sich nicht gegen OID Datenbank authentisiert die Benutzer Passwort SSL Kerberos SSL Verschlüsselung zwischen DB Server und LDAP Server empfohlen SASL Bind zwischen DB und OID, falls kein SSL konfiguriert ist Simple Authentication and Security Layer Ähnlich SSL Authentisierung mit Passwort aus Wallet Oracle Enterprise User Security mit Active Directory 14
Oracle Passworte und Passwort Verifier OID speichert Passworte im Attribut userpassword Authentisierung eines OID Benutzers gegen OID Oracle Komponenten speichern Password Verifier in authpassword multivalued synchronisiert mit userpassword dasselbe Passwort mit unterschiedlichen Verfahren gehasht orclpasswordverifier multivalued nicht synchronisiert mit userpassword orclpassword nur für 03LOGON Verifier für Enterprise User synchronisiert mit userpassword Oracle Enterprise User Security mit Active Directory 15
Ablauf der Authentisierung Client EUS DB OID 1. User meldet sich an 2. DB kennt User nicht, kennt aber globale User 3. DB meldet sich an OID an 4. OID authentisiert DB 5. DB sucht User im OID anhand des Nicknames und liest orclpassword des Users 6. OID liefert orclpassword des Users 7. DB vergleicht orclpassword und gehashtes übergebenes Passwort des Users 8. DB liest EUS relevante Daten des Users 9. OID liefert EUS relevante Daten des Users 10. Session mit globalen Rollen und external_name Oracle Enterprise User Security mit Active Directory 16
Authentisierung eines Benutzers sqlplus UserEnt1/UserEnt1@demo SQL> select * from session_roles; ROLE ------------------------------ GLOBAL_CONNECT CONNECT SQL> select user from dual; USER ------------------------------ GUEST SQL> select sys_context('userenv', 'external_name') from dual; SYS_CONTEXT('USERENV','EXTERNAL_NAME') -------------------------------------- cn=userent1,cn=users,dc=domainora,dc=com Oracle Enterprise User Security mit Active Directory 17
Oracle Enterprise User Security Tools (1) Enterprise Security Manager Einbindung Datenbanken Schema Mapping Anlegen von Enterprise Rollen Zuordnung von Enterprise Rollen zu globalen Datenbankrollen Oracle Enterprise User Security mit Active Directory 18
Oracle Enterprise User Security Tools (2) Enterprise Security Manager Console Anlegen neuer Benutzer Anpassen der User Search Base und der Group Search Base Anpassen des Nickname Oracle Enterprise User Security mit Active Directory 19
Agenda Motivation Oracle Enterprise User Security Anbindung Active Directory User sind immer im Spiel. Empfehlung Fazit Oracle Enterprise User Security mit Active Directory 20
EUS und externe Verzeichnisse (1) Quelle: Oracle Oracle Enterprise User Security mit Active Directory 21
EUS und externe Verzeichnisse (2) Authentisierung gegen vorhandenes Verzeichnis Active Directory Sun ONE, edirectory, OpenLDAP Synchronisation von Benutzern und Gruppen mit vorhandenem Verzeichnis Methoden zur Integration Directory Integration and Provisioning (DIP) Server Chaining des OID Active Directory nur mit Kerberos Sun ONE nur mit Passwort Oracle Virtual Directory OVD EUS direkt mit AD ist nicht zertifiziert Oracle Enterprise User Security mit Active Directory 22
Kombinationsmöglichkeiten Authentication Password orapassword Password orapassword Password authpassword Password authpassword 3 rd Party Directory DB OID OVD (Does Not Require DIP or DAS) AD + DIP + DAS 9.2.0.3+ 10g+ AD + DIP + Password Filter 9.2.0.3+ 10g+ SUN + DIP 10.1+ 10.1.4 SUN + OID Server Chaining 10.1+ 10.1.4 Certificate 8i+ 9i+ Kerberos Password authpassword Password authpassword AD + OID Server Chaining AD with oidpwdcn DLL 10.1+ 10.1.4 10.1+ 10.1.4.2 Sun 10.1+ 10.1.4.2 Kerberos AD 10.1+ 10.1.4.2 Quelle: Oracle Oracle Enterprise User Security mit Active Directory 23
AD mit Directory Integration and Provisioning Quelle: Oracle Oracle Enterprise User Security mit Active Directory 24
EUS und AD mit DIP (1) Directory Integration Service Synchronisation zwischen OID aund AD AD als zentrales Verzeichnis OID als zentrales Verzeichnis Passwortsynchronisation erfordert zwingend SSL Active Directory Passwort Filter DIP synchronisiert das Passwort nicht Passwort Filter auf allen Domain Controllern erforderlich Sicht auf im Active Directory gelöschte Benutzer Referentielle Integrität Oracle Enterprise User Security mit Active Directory 25
EUS und AD mit DIP (2) Base DN Mapping ou=usersoid,dc=tciamfirma,dc=tvd:cn=usersad,dc=domainora,dc=com Attribut Mapping cn: : :person:cn: :person: givenname: : :user:displayname: :inetorgperson: Nickname Mit dem meldet man sich über SQL an Default ist OID Attribut uid (früher OID Attribut cn ) Wird standardmäßig gemappt auf User Principal Name user3@kunde.com # userprincipalname: : :user:uid: :inetorgperson: samaccountname: : :user:uid: :inetorgperson: Oracle Enterprise User Security mit Active Directory 26
EUS und AD mit DIP (3) Directory Integration Service Instanz konfigurieren und starten # oidctl connect=mrdb server=odisrv instance=2 configset=1 flags=' host=<hostname> port=<ldap port>' start Bootstrap Gezielte Erstübernahme Wählbarer Zeitpunkt Gleiche oder andere Mechanismen als bei DIP Server möglich LDAP LDIF dipassistant bootstrap -profile ActiveChgImpAig -D 'cn=orcladmin' -w '<orcladmin password>' -p <LDAP port> Oracle Enterprise User Security mit Active Directory 27
EUS und AD mit DIP (4) Oracle Enterprise User Security mit Active Directory 28
EUS und AD mit DIP (5) Oracle Enterprise User Security mit Active Directory 29
Rollen und Privilegien Wie kann man dann Enterprise Rollen an importierte Benutzer zuweisen? Falls man keine Gruppen im AD pflegen kann / darf / möchte? Enterprise Rollen können dynamischen Gruppen zugeordnet werden Alle User unterhalb eines Knotens können dynamisch in eine dynamische Gruppe sortiert werden Enterprise User Dynamische Gruppen Enterprise Rollen User GrpDynEnterpriseUser RoleEnterpriseUser Oracle Enterprise User Security mit Active Directory 30
EUS und AD mit DIP (6) Kann man sich jetzt mit SQL*Plus anmelden? No orclpassword found for user Passwort manuell setzen Passwortfilter installieren Oracle Enterprise User Security mit Active Directory 31
EUS und AD mit DIP (7) Oracle Enterprise User Security mit Active Directory 32
Passwort Filter (1) Hängt sich in die LSA Fängt Passwortänderungen ab Sendet sie über SSL an OID SSL zwingend erforderlich Puffert die Änderungen verschlüsselt im AD falls OID nicht verfügbar ist Nach Installation müssen bereits im AD vorhandene Benutzer ihr Passwort ändern Oracle Enterprise User Security mit Active Directory 33
Passwort Filter (2) Active Directory Zugriff konfigurieren Domain Base DN Port Host Benutzername und Passwort für Lesezugriff OID Zugriff konfigurieren Base DN Non-SSL Port SSL Port Benutzername und Passwort für Schreibzugriff Filtereinstellungen Synchronisationsintervall Anzahl Wiederholungsversuche Oracle Enterprise User Security mit Active Directory 34
Gelöschte Benutzer Deleted Objects Container ist in AD standardmäßig versteckt AD so konfigurieren, dass gelöschte Benutzer von OID lesbar sind ADAMSP1_x86_English.exe von der Microsoft Webpage laden Auf dem Domain Controller installieren ADAM Tools Command Prompt ausführen Ownership für Deleted Objects übernehmen > dsacls "CN=Deleted Objects,DC=test,DC=local" /takeownership Dem von OID zum Lesen verwendeten Benutzer Zugriffsrechte gewähren > dsacls "CN=Deleted Objects,DC=test,DC=local" /g TEST\OIDReader:LCRP Oracle Enterprise User Security mit Active Directory 35
Referentielle Integrität (1) Benutzer im OID sind eventuell Gruppen im OID zugeordnet Beim Löschen eines Benutzers verbleibt sein Eintrag in der Gruppe Referentielle Integrität einschalten Oracle Internet Directory Administrators Guide $ORACLE_HOME/ldap/server/plugin/rimoddn.java ändern conn = DriverManager.getConnection( "jdbc:oracle:thin:ods/odspwd@ohost:oport:osid"); $ORACLE_HOME/ldap/server/plugin/rimoddn.java kompilieren Plug-ins registrieren ldapadd -h hostname -p port -D cn=orcladmin -w orcladmin_pwd -v - f \ $ORACLE_HOME/ldap/admin/oidriplg.dat Oracle Enterprise User Security mit Active Directory 36
Referentielle Integrität (2) $ORACLE_HOME/ldap/admin/oidrimdx.pls Muss regelmäßig ausgeführt werden Oracle empfiehlt 15 Minuten bis 24 Stunden Liest die Referential Integrity Storage Table Löscht oder ändert die DN Referenzen in allen entsprechenden Tabellen Arbeitet direkt auf der Datenbank Falls der Entry Cache aktiviert ist Cache deaktivieren $ORACLE_HOME/ldap/admin/oidrimdx.pls starten Cache aktivieren Oracle Enterprise User Security mit Active Directory 37
Agenda Motivation Oracle Enterprise User Security Anbindung Active Directory User sind immer im Spiel. Empfehlung Fazit Oracle Enterprise User Security mit Active Directory 38
Empfehlung Ideal zu ergänzen durch Oracle Identity Manager Anlegen von globalen Rollen in Datenbanken Anlegen von Enterprise Rollen Zuweisen von Enterprise Rollen ohne dynamische Gruppen Vorgehen Mit EUS für wenige DBAs starten Synchronisation mit Active Directory Allgemeine Datenbankbenutzer einbeziehen Rollenmodell erstellen Gute Gelegenheit zur Bereinigung historisch gewachsener Rollenstrukturen Oracle Enterprise User Security mit Active Directory 39
Kunden Kunde 1 EUS mit Server Chaining zu Sun ONE Proof of Concept erfolgreich Rollout für 150 Datenbanken und 12 DBAs Kunde 2 EUS mit Synchronisation von Active Directory Proof of Concept erfolgreich Rollout für 100 Datenbanken und 4 DBAs Rollout für allgemeine Datenbankbenutzer geplant Kunde 3 EUS mit SSL Authentisierung der Benutzer Proof of Concept erfolgreich Synchronisation eines zurzeit nicht unterstützen LDAP Verzeichnisses in Arbeit Oracle Enterprise User Security mit Active Directory 40
Fazit Enterprise User Security ist ein Baustein zur Compliance Enterprise User Security vereinfacht die Verwaltung von Benutzern und Rollen Die Anbindung an Active Directory ist kein Hexenwerk Für eine nahtlose Integration müssen die aktuellsten Versionen von OID und DB eingesetzt werden Es muss ein Rollenmodell her Wir sind nicht nur verantwortlich für das, was wir tun, sondern auch für das, was wir nicht tun (Voltaire) Oracle Enterprise User Security mit Active Directory 41
Fragen und Diskussion? www.trivadis.com Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart