Erfahrungsbericht zur Anbindung von Oracle Datenbanken an das Active Directory zwecks Abbildung der Authentifizierung und Authorisierung mittels unternehmensweit definierter Business Rollen.
- Projektanforderungen und mögliche Lösungen
- gewählte Infrastruktur (MS-AD, OUD, OIA, Oracle DB)
- Erfahrungen beim Proof of Concept
- Herausforderungen und technische Grenzen
- Bewertung des "Enterprise Manager Monitoring Plugin for Oracle Unified Directory"
- Abbildung und Migration auf Enterprise Business Rollen
- Provisionierung und Rezertifizierung der Business Rollen
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
1. Enterprise User Security
Von der Business Rolle bis in die Datenbank
Andre Lünsmann
Barmenia Versicherungen
Teamleiter IT-DB/Change
Marcel Pils
ACT Unternehmensgruppe
Leiter Data Management
2. ACT Unternehmensgruppe
● Marcel Pils
● Leiter Data Management
● Senior Database Consultant
● 14 Jahren Oracle DB Erfahrung
● marcel.pils@actgruppe.de
● ACT Unternehmensgruppe
● Seit 1982 tätig in DACH Region
● 175 qualifizierten Mitarbeitern
● 17 Millionen € jährlicher Umsatz
● Sitz in Niederkassel bei Bonn
● www.actgruppe.de/service/
3. Barmenia Versicherungsgruppe
Die Barmenia zählt zu den großen
unabhängigen Versicherungs-gruppen
in Deutschland.
Versicherungsvereine auf Gegenseitigkeit Aktiengesellschaft
Verbundene Unternehmen
nach § 18 Abs. 2 AktG
100% Tochter der BK
Barmenia
Kranken
Barmenia
Leben
Barmenia
Allgemeine
100% Tochter der BK
100% Tochter der BA
ADCURI
GmbH
Barmenia
Beteiligungsgesellschaft mbH
Kranken
Leben
Allgemeine
Anteil: 11 %
(193,4 Mio. Euro)
Anteil: 5 %
(90,0 Mio. Euro)
Anteil: 84 %
(1.485,2 Mio. Euro)
4. Berechtigungspflege und das reale Leben
Arbeitsvertrag am erster Arbeitstag
24.03.2014
zum 01.07.2014
Januar Februar März April Mai Juni Juli August September Oktober November Dezember
6. | 6
Identity & Access Management
Reifegrad 1
Initial Level
• diverse Quelle für Identitäten mit (teil)automatisierten
Synchronisationsmechanismen mit Duplikaten/Inkonsistenzen
• Unsystematische und schwer planbare Bereitstellung von
Usern und Rechten
Reifegrad 2
Repeatable Level
• Identitäten werden in wenigen Systemen konsistent gepflegt
• Die wichtigsten IDM-Prozesse sind eingeführt
• Die Erbringung der Dienstleistung ist planbar/wiederholbar
Vorher
Reifegrad 3
Defined Level
• Identitäten werden zentral verwaltet
• IDM-Service Prozesse sind dokumentiert, standardisiert und
weitgehend automatisiert
Reifegrad 4
Managed Level
• Ein User Self Service ist vorhanden
• Die Sicherstellung konsistenter Pflege der Identitäten,
Rechte und Rollen ist gegeben
• Es erfolgt keine Rechtevergabe mehr außerhalb der
zentralen Verwaltungsstelle
Reifegrad 5
Optimizing Level
• Die Einhaltung der Compliance Anforderungen ist nachweisbar
• Identitäten, Rechte und Rollen können bitemporal verwaltet
werden
• Die Prozesse sind vollständig automatisiert
• Alle Rechte können auf die Geschäftsregeln gemappt werden
• Inkonsistenzen werden erkannt und behoben bzw. verhindert
Nachher
7. Projektanforderungen
§ Zentralisierte Verwaltung der Authentifizierung und Authorisierung
§ Active Directory als zentrale Identitätsquelle
§ Passwortbasierte Authentifizierung
§ kleinster gemeinsamer Nenner für alle Tools
§ Reporting der Berechtigungen
§ Compliance, Rezertifizierung
§ Unterstützung bei der Konsolidierung
§ Bereinigung der Zugriffsrechte
§ Bildung von Business Rollen
§ Nachträgliche Erweiterung
§ Provisionierung, Reconcilation
§ weitere Identitätsquellen
§ Single Sign On
8. Oracle Lösungsportfolio
EUS
n Enterprise Edition Feature
n Global DB User
n Global DB Roles
n AD Anbindung
n Definition der Fachrollen
n Mapping auf AD Gruppen
CUA4DB
n Oracle Identity Manager
n DB, AD, .. Connectoren
n ID Syncronisierung
n Regelwerke definieren
n Provisioning
n Workflows
n Self Service
n Reports
OIA
n Import der ID Quelldaten
n Abbildung der
Unternehmenshierarchie
n Erstellung von Reports
n Ergebnisauswertungen
n Zertifizierungen
n Audits
9. Produktauswahl für POC
EUS OIM Prio
Zentralisierte User und Rollen Verwaltung Ja Ja 1
Microsoft Active Directory als Quelle für User und Rechte Ja Ja 1
Authentifizierung per User/Password Ja Ja 1
Authentifizierung per Kerberos, PKI Ja Ja 2
Erweiterbar auf Non Oracle Datenbanken Nein Ja 2
Audit & Compliance Ready (Reporting)
OIA Ja 1
- aktiv per OIM oder reaktiv per OIA
Password Self Service UHD Ja 3
Workflow und Policy basiertes Benutzer Mngt. UHD Ja 3
Schnittstelle zum Provisioning & Reconcilation
OIM Ja 2
- bei EUS mittels Active Directory Anbindung an OIM
Schnittstelle zum Oracle Identity Analytics Ja Ja 1
Keep It Simple and Smart (KISS)
Ja Nein 2
- EUS = DB Anbindung über globale User/Rollen und Proxy User in der DB
- OIM = großer Funktionsumfang, zusätzliche Connectoren, Synchronisierung, Regelwerke
Geringer Implementierungsaufwand (Zeit + Kosten)
- EUS = DB Anbindung ca. 1/2h,
- OIM = DB Anbindung > 1 Tag, zusätzliche Personalressourcen
gering hoch 2
UHD = User Help Desk, EUS = Enterprise User Security, OIM = Oracle Identity Manager, OIA = Oracle Identity Analytics
10. Enterprise User Security Varianten
CTX
DIP (Sync) / Chaining
Oracle Internet Directory (OID) Active Directory
EUS enabled
Database
PWD
DB Filter
Password
Authentification
Authorisation
Oracle Virtual Directory (OVD)
CTX
PWD
Filter
Active Directory
Read Write
EUS enabled
Database
Other Directories / SAP HR
Password
Authentification
Authorisation
11. Bedenken der AD Administration
§ Kollision mit anderen Schemaerweiterung?
− Oracle Schema nicht zertifiziert
− Zertifizierung seitens Oracle nicht geplant
+ Enthält ANSI „Root Object Identifier“
(„Oracle Corporation Directory Object“ OID 2.16.840.1.113894)
http://www.oid-info.com/get/2.16.840.1.113894
§ Microsoft Support Probleme?
− Password Filter DLL nicht zertifiziert
− Zertifizierung seitens Oracle nicht geplant
+ Einsatz entsprechend Microsoft API Beschreibung
http://msdn.microsoft.com/en-us/library/windows/desktop/ms721766%28v=vs.85%29.aspx
+ Oracle validierte Active Directory Versionen
(OUD 11.1.2.1 à MS AD 2008 R2; OUD 11.1.2.2 à MS AD 2012)
12. Bedenken der AD Administration
§ Konsistente Installation ohne Installer?
+ Nur 1 DLL + 1 Registry Key Wert
§ Integration in Windows-Dateischutz?
− Windows File Protection nur für OS-DLLs
+ Regelmäßiges Monitoring des Password Filters
+ Restore nur einer DLL Datei
§ Einbindung in WinSxS DLL-Versionskontrolle?
+ Microsoft Interface unverändert seit Windows NT
+ Januar 2010 letzte DLL-Änderung (64 Bit Version)
+ Unterschiedlicher DLL Versionen nicht erforderlich
+ Laden neuer DLL Version à Server Restart
+ Abhängigkeiten nur zu Windows Server DLLs
13. Enterprise User Security Varianten
Oracle Virtual Directory (OVD)
CTX
DB
CTX
Oracle Unified Directory (OUD)
PWD
Filter
PWD
Filter
Active Directory
Read Only
EUS enabled
Database
Password
Authentification
Authorisation
(ab Version 11.1.2.1)
CTX
Active Directory
Read Only
EUS enabled
Database
Password
Authentification
Authorisation
Other Directories / SAP HR
Oracle Internet Directory (OID)
14. Konfiguration am Active Directory
§ Schemaerweiterung für Password Attribut
# Source: $OUD_HOME/config/EUS/ActiveDirectory/extendAD!
!
java –cp . extendAD !–h <Schema-Master-ADControler>.lan.local –p 389 !
! ! !–D <Schema-Admin>@lan.local –w <Admin-Passwort> !
! ! !–AD “dc=lan,dc=local” –commonattr!
§ PWD Filter DDL auf AD Controler kopieren
# Source: $OUD_HOME/config/EUS/ActiveDirectory/win64/oidpwdcn.dll!
!
copy oidpwdcn.dll WINDOWSsystem32 !
§ Registry-Key auf AD Controler erweitern
Open Registry Tree !HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa!
Edit RegKey !Notification Packages!
Add value !oidpwdcn!
§ Benutzer muss initial sein Passwort ändern
15. Big Picture
User / Password Login
11.2.0.4
Authentication / Authorisation
11.1.2.1 11.1.2.1
Load Balancer
Enterprise Manager
Cloud Control
Apache Directory Studio
TNS Services TNS Services
Multimaster Replication
LDAP_DIRECTORY_ACCESS = PASSWORD
LDAP_DIRECTORY_SYSAUTH = YES
Password
Filter DLL
AD Controler 3
Oracle DB
Password
Filter DLL
AD Controler 2
Password
Filter DLL
AD Controler 1
OUD 2
SPfile
EUS Context
Local Datastore
OUD 1
EUS Context
Local Datastore
Wallet
Ldap.ora Sqlnet.ora
Global Schema User
Global Roles
Enterprise Roles
User
Gruppen
User
Gruppen
User
Gruppen
Enterprise Roles
2. Integration 1. Installation 3. Configuration
EUS Databases EUS Databases
16. Intuitive Abbildung von Geschäftsregeln
Business Role Resource Role
Nutzung App1
Nutzung App2
Wartung App2
Team DBA
DB Prod read
Schema A
DB Prod read
Schema B
DB Prod write
Schema B
DB Prod DBA
Role RO_A
Role RO_B
Role RW_B
Role DBA
OUD Enterprise Roles
§ Services + Organisationseinheiten (Business Role)
§ Verzweigungen + Vererbungen
§ Berücksichtigung von Mehrfachbelegungen
§ Active Directory als „Single Point of Declaration“
17. EUS Einschränkungen für Active Directory
§ Keine Verschachtelung von AD Gruppen möglich!
§ Direkte Zuordnung der AD User erforderlich
§ Mehr AD-Gruppen pro User
§ Wo erfolgt das Mapping? (Business Role à Resource Role)
§ User Self Service?, OUD?, Datenbank?
User Self Service
Business Role
Active Directory
Gruppe
§ Enhancement nicht geplant
OUD
Enterprise Role
§ Programmierung eigener OUD Workflows?
Datenbank
Global/Local Role
18. Administration
Skripte
§ Perl, Shell
OUD Binaries
§ Dsconfig
§ Dsreplication
§ Backup
§ Ldapsearch
EUSM CLI
Oracle Directory Server
Manager (ODSM)
Weblogic Server
Administration Console
Enterprise Manager Fusion
Middleware Control
OUD / EUS
Apache Directory
Studio
Enterprise Manager
Cloud Control
Console
4 GB+ RAM
3 GB+ Disk
500 MB RAM
200 MB Disk
Client
Server
2 GB RAM
2 GB Disk
19. EUSM Security Leak
§ Enterprise User Security Manager (EUSM)
§ Command Line Interface zur EUS Administration
§ Oracle Database ab 11gR1
§ Umfangreich und intuitiv
§ Bisher nur im MOS dokumentiert (ID 1085065.1)
eusm addGlobalRole realm_dn="dc=idm,dc=lan,dc=local“ ldap_host=oud.unix.lan ldap_port=1389 !
!domain_name=OracleDefaultDomain enterprise_role="e-myapp" global_role="g-myapp" !
!database_name="mydb" dbuser="sys" dbuser_password="syspwd" dbconnect_string="mydb“ !
!ldap_user_dn="cn=Directory Manager" ldap_user_password="dmpwd“!
!
ps –ef | grep "eusm.jar“ | grep -v grep!
!
oracle 9050 9049 0 18:31 pts/2 00:00:00 /app/oracle/product/11.2.0/db112032/jdk/jre//
bin/java -classpath /app/oracle/product/11.2.0/db112032/jdk/jre//lib/rt.jar:/app/oracle/
product/11.2.0/db112032/jdbc/lib/ojdbc5.jar:/app/oracle/product/11.2.0/db112032/rdbms/jlib/
eusm.jar oracle.security.eus.util.ESMdriver addGlobalRole realm_dn="dc=idm,dc=lan,dc=local“
ldap_host=oud.unix.lan ldap_port=1389 domain_name=OracleDefaultDomain enterprise_role="e-myapp"
global_role="g-myapp" database_name="mydb" dbuser="sys" dbuser_password="syspwd"
dbconnect_string="mydb" ldap_user_dn="cn=Directory Manager" ldap_user_password="dmpwd"!
§ Passwortübergabe per Parameter
§ Enhancement Requests 14704668 + 19704624
20. Enterprise User Auditing
§ Enterprise User = Shared Schema User in der DB
# Enterprise User Connect!
SQL> conn "240531"!
Enter password:!
Connected.!
!!
# Session Environment!
SQL> show user!
!
USER is "GLOBAL_TEST_USER“!
!!
SQL> select !
1 sys_context('userenv','external_name')!
2 from dual;!
!
SYS_CONTEXT('USERENV','EXTERNAL_NAME')!
----------------------------------------!
cn=240531,ou=User,dc=idm,dc=lan,dc=local!
!
# Activate DML Auditing!
SQL> conn / as sysdba!
SQL> audit insert table, delete table, !
1 update table by "GLOBAL_TEST_USER" by access;!
Audit succeeded.!
!
# Execute DML !
SQL> conn "240531"!
SQL> insert into table1 values (1,'eins');!
SQL> delete from table1 where id=1;!
SQL> disconnect;!
!
# Check Audit Entries!
SQL> select a.sessionid,a.entryid,aa.action, !
1 aa.name, a.userid,a.comment$text!
2 from sys.audit_actions aa, sys.aud$ a!
3 where a.action# = aa.action !
4 and a.userid='GLOBAL_TEST_USER'!
5 order by sessionid desc,entryid desc;!
!
21. Enterprise User Session Informationen
§ Enterprise User = Shared Schema User in der DB
§ Anlegen eines Logon-Triggers
CREATE OR REPLACE TRIGGER EUS_LOGON_TRIGGER!
AFTER LOGON ON DATABASE!
declare!
l_client_info varchar2(4000);!
l_ad_user varchar2(4000);!
BEGIN!
dbms_application_info.read_client_info(l_client_info);!
if length(l_client_info) > 0 then!
l_client_info := ', '||l_client_info;!
end if;!
l_ad_user := sys_context('userenv','external_name');!
l_ad_user := regexp_substr(l_ad_user,'[^.*(cn=)][^(,)]*');!
dbms_application_info.read_client_info(l_ad_user||l_client_info);!
End;!
§ Sichtbar in V$SESSION
select sid, username, schemaname, client_info !
from v$session !
where username in ('GLOBAL_TEST_USER', 'LOCAL_TEST_USER') order by 1!
22. Enterprise Manager Plug-in for OUD
§ Lizenzierung
§ „Mgmt. Pack Plus for Identity Management“
§ Dokumentation Version 12.1.0.1.0
§ http://docs.oracle.com/cd/E24628_01/nav/plugins.htm
§ Deployment im EM12c
§ Proxy Server | Directory Server | Replication Gateway
!
23. Enterprise Manager Plug-in for OUD
§ Discovery als „Proxy Server“
§ 572 Metriken in 33 Gruppen
§ Performance, Resource Usage, Remote Server
Kein local LDAP Store !
Remote
LDAP Store
(OracleContext)
24. Enterprise Manager Plug-in for OUD
§ Discovery als „Directory Server“
§ Unterstützt local LDAP Stores (OracleContext)
§ Metrik Evaluation Error à Keine Werte
§ Für Proxy Instanz nicht einsetzbar!
!
!
25. Monitoring des Oracle Unified Directory
§ Enterprise Manager Plug-in for OUD
§ Erfordert Lizenz „Mngt. Pack Plus for Identity Management“
§ Nicht ausreichend für OUD Proxy mit local LDAP Store
§ Enhancement Request – RFE BUG 18717725
§ Geplant für nächstes Release
§ Release Date unbekannt
§ Skript basiert für CheckMK / Foglight
§ Perl Skripte
§ LDAP search à „cn=replication,cn=monitor“
§ LDAP search à „OracleContext Tree“
§ http[s] socket / ldap connect check
§ Shell Skripte
§ ps, ldapsearch, dsreplication, dsconfig
26. Entwicklung der IDM Produkte
Product Suites + Lizenzmetriken
? ?? ???
Enterprise User
Security
Oracle Identity
Manager
Oracle Unified
Directory
Oracle Identity
Analytics
Convergence
?
Oracle Identity Governance Roadmap
27. Nächste Schritte / Ideen
§ Rechte Mining und Reporting
§ Bereinigung der ID Quellsysteme
§ Konsolidierung / Provisionierung von ID Quellsystemen
§ Neugestaltung der Prozesse / Automationen / Standards
§ Rechte und Rollen mit den Geschäftsregeln mappen
32. Verweise
§ Oracle Unified Directory Dokumentation
§ http://www.oracle.com/technetwork/middleware/id-mgmt/documentation/index.html
§ MOS 1418884.2 – Information Center : Overview Oracle Unified Directory (OUD)
§ MOS 1675625.1 – OUD-EUS configuration steps
§ Oracle Unified Directory EM12c Plugin Dokumentation
§ http://docs.oracle.com/cd/E24628_01/nav/plugins.htm
§ EUS Dokumentation
§ http://docs.oracle.com/cd/E11882_01/network.112/e10744/toc.htm
§ MOS 1376365.1: Master Note For Enterprise User Security
§ EUSM Dokumentation
§ MOS 1085065.1 – EUSM, CLI Tool For EUS Administration and Some EUS Good to Knows
§ Directory Services Integration with Database Enterprise User Security
§ http://www.oracle.com/technetwork/database/security/dirsrv-eus-integration-133371.pdf
§ Enhancement Requests
§ RFE BUG 18717725: EM12C OUD PLUGIN - NEEDS TO MONITOR THE LOCAL LDAP DATA STORE
§ RFE BUG 14704668: EUS COMMAND LINE TOOL EUSM SHOULD HAVE AN OPTION NOT TO USE
PLAINTEXT PASSWORDS
§ RFE BUG 19704624: EUSM SHOULD NOT USE USERNAME AND PASSWORD AS COMMAND LINE
ARGUMENTS