Oracle Enterprise User Security 11g mit Server Chaining Jürgen Kühn Senior Consultant Düsseldorf, 9. Juni 2011 Basel Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien
Agenda Enterprise User Security Systemarchitektur Administration Daten sind immer im Spiel. Server Chaining zum Active Directory Probleme und Widrigkeiten Diskussion 2
Compliance Personalisierte Accounts Nachvollziehbarkeit von Administrationstätigkeiten Auditierbare Berechtigungen Auch und gerade für (Datenbank-) Administratoren 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. 3
Kundensituation Alle DBAs nutzen für alle Datenbanken ein und denselben Account DB5 DB4 Nutzung von Shared Accounts User: READALL Passwort: GehHeim DB2 DB1 DB3 DBn Revisionssicherheit Innenrevision Externe Wirtschaftsprüfer Auditierung Externe Auditoren SQL> connect READALL/GehHeim@ALL_DATABASES 4
Oracle Enterprise User Security (1) Quelle: Oracle 5
Oracle Enterprise User Security (2) Benutzer- und Rollenverwaltung im LDAP Verzeichnis Oracle Internet Directory OID Es ist nicht mehr jeder Benutzer und jeder DBA in jeder Datenbank angelegt Verwaltung der Datenbankrollen im LDAP Verzeichnis Unterstützte Authentisierungsmethoden Passwort Kerberos SSL Anbindung externer Verzeichnisse Server Chaining Directory Integration and Provisioning DIP Oracle Virtual Directory OVD 6
Enterprise User Enterprise User werden nur im Verzeichnis angelegt Sie werden nicht in der Datenbank angelegt Shared Schema Benutzer besitzen kein eigenes Schema Ein "Stellvertreter- Benutzer" SQL> CREATE USER SHARED_USER IDENTIFIED GLOBALLY AS '' Mapping Wird im Verzeichnis definiert Einzelne Benutzer oder Knoten eines Verzeichnisses werden auf das Shared Schema gemappt 7
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 8
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 9
Authentisierung Datenbank authentisiert sich gegen OID Benutzer authentisieren sich nicht gegen OID Datenbank authentisiert die Benutzer mittels Passwort Kerberos SSL SASL Bind zwischen DB und OID, falls kein SSL konfiguriert ist Simple Authentication and Security Layer Ähnlich SSL Authentisierung mit Passwort aus Wallet 10
Oracle Passworte und Passwort Verifier OID speichert Passworte im Attribut "userpassword" Authentisierung eines OID Benutzers gegen OID Oracle Komponenten speichern Password Verifier in orclpassword nur für "O3LOGON Verifier" für Enterprise User synchronisiert mit userpassword authpassword multivalued synchronisiert mit userpassword dasselbe Passwort mit unterschiedlichen Verfahren gehasht orclpasswordverifier multivalued nicht synchronisiert mit userpassword 11
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 12
Authentisierung eines Benutzers [oracle@dbserver1 ~]$ sqlplus user9/user9@db10a SQL> select * from session_roles; ROLE ------------------------------ GR_DBA DBA SQL> select user from dual; USER ------------------------------ USERSHARED SQL> select sys_context('userenv', 'external_name') from dual; SYS_CONTEXT('USERENV','EXTERNAL_NAME') -------------------------------------- cn=user9,cn=users,dc=tvd 13
Agenda Enterprise User Security Systemarchitektur Administration Daten sind immer im Spiel. Server Chaining zum Active Directory Probleme und Widrigkeiten Diskussion 14
Systemarchitektur (1) Datenbanken mit EUS Active Directory - Authentisierung - Schema Mapping - Enterprise Roles Server Chaining OID Repository Oracle Internet Directory 15
Systemarchitektur (2) Admin Console EM AdminServer Virt. OidAdminVirt ODSM WLS_ODS1 Admin Console EM AdminServer ODSM WLS_ODS2 OID1 OID2 OID1 OID2 OID_INST1 IdmHost1, Virtuell: IdmVirt OID_INST2 IdmHost2, Virtuell: IdmVirt 1521 LDAP 3060 LDAPS 3131 Load Balancer Repository RAC Datenbank RacHost1:1521:OIDDB1^ RacHost2:1521:OIDDB2@ OIDDB HTTP 7001 HTTP 7006 Datenbanken 16
High Availability Datenbanken mit EUS - Authentisierung - Schema Mapping - Enterprise Roles OID A 2-Way LDAP Replication Server Chaining OID B Active Directory Repository A Repository B 17 Oracle Internet Directory
High Availability - 2 Way LDAP Replication Replication Server auf OID B liest Änderungen von OID A Konfiguration über Replication Wizard in ODSM Quelle: Oracle 18
Agenda Enterprise User Security Systemarchitektur Administration Daten sind immer im Spiel. Server Chaining zum Active Directory Probleme und Widrigkeiten Diskussion 19
Administration Oracle Directory Services Manager ODSM Oracle Enterprise Manager Fusion Middleware Control 11g Weblogic Server Administration Console Oracle Enterprise Manager Grid Control / Database Control 20
Oracle Directory Services Manager (1) 21
Oracle Directory Services Manager (2) 22
Enterprise Manager Fusion Middleware Control (1) 23
Enterprise Manager Fusion Middleware Control (2) 24
Weblogic Server Administration Console (1) 25
Weblogic Server Administration Console (2) 26
Grid Control (1) 27
Grid Control (2) 28
Grid Control (3) 29
Agenda Enterprise User Security Systemarchitektur Administration Daten sind immer im Spiel. Server Chaining zum Active Directory Probleme und Widrigkeiten Diskussion 30
EUS und externe Verzeichnisse (1) Quelle: Oracle 31
EUS und externe Verzeichnisse (2) Nutzung von Daten aus vorhandenen Verzeichnissen Active Directory Sun ONE, edirectory, OpenLDAP Synchronisation von Benutzern und Gruppen mit vorhandenem Verzeichnis Directory Integration and Provisioning (DIP) Server Chaining des OID Active Directory mit Kerberos Active Directory Passwort (neu in 11g) Active Directory Passwort Filter Sun ONE nur mit Passwort Oracle Virtual Directory OVD EUS direkt mit AD ist nicht zertifiziert 32
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 33
Server Chaining zu Active Directory mit Kerberos Quelle: Oracle 34
Server Chaining - Vorteile und Nachteile + Vorteile Kerberos Authentisierung Passwort nur in Active Directory gespeichert Keine Passwortpolicy für EUS User im OID erforderlich - Nachteile - Nur für Datenbankversionen ab 10.1 35
Server Chaining (1) 36
Server Chaining (2) Warum ist nur "Server Chaining Search" aktiviert? 37
Server Chaining (3) 38
Server Chaining (4) Active Directory Benutzer 39
Server Chaining (5) 40
Server Chaining (6) Active Directory Gruppe 41
Authentisierung eines Benutzers mit Kerberos C:\> sqlplus /@db10a SQL> select * from session_roles; ROLE ------------------------------ GR_DBA DBA SQL> select user from dual; USER ------------------------------ USERSHARED SQL> select sys_context('userenv', 'external_name') from dual; SYS_CONTEXT('USERENV','EXTERNAL_NAME') -------------------------------------- cn=user1,cn=ad,cn=users,dc=tvd 42
Agenda Enterprise User Security Systemarchitektur Administration Daten sind immer im Spiel. Server Chaining zum Active Directory Probleme und Widrigkeiten Diskussion 43
Bekannte Probleme und Widrigkeiten (1) 44
Bekannte Probleme und Widrigkeiten (2) Enterprise Rollen sind nicht in Grid Control verwaltbar Den Einträgen im OID fehlt beim Server Chaining mindestens eine Objektklasse Vom Kunden eskaliert Diskussion zwischen Oracle Entwicklung und Product Management Oracle Warehouse Builder liefert Fehler "Can not contact LDAP server", wenn OID nicht verfügbar ist liefert Fehler "Nickname not found", wenn OID verfügbar ist Verbindungstest mit "scott/tiger" Problem kommuniziert und akzeptiert 45
Empfehlung Rollenmodell erstellen Gute Gelegenheit zur Bereinigung historisch gewachsener Rollenstrukturen Mit EUS für wenige DBAs starten Server Chaining mit Active Directory Allgemeine Datenbankbenutzer einbeziehen 46
Kunden (1) 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 47
Kunden (2) Kunde 4 EUS mit Server Chaining zu Active Directory Kerberos Weblogic 10.3.3.0 OID 11.1.1.3 Rollout für 200 Testdatenbanken und 6 DBAs erfolgreich Rollout für 200 Produktivdatenbanken verzögert sich wegen eines Kerberos-Problems, für das ein Patch installiert werden muss Darf nur innerhalb des firmeninternen Updateverfahrens ausgeführt werden 48
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) 49
Vielen Dank!? www.trivadis.com Basel Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien