Kerberos für die Datenbank

Werbung
DOAG 2010
Kerberos für die Datenbank
Dr. Günter Unbescheid
Database Consult GmbH
Jachenau
Database Consult GmbH
Kerberos für die Datenank
•
•
•
Gegründet 1996
Kompetenzen im Umfeld von ORACLE-basierten Systemen
Tätigkeitsbereiche
–
–
–
–
–
–
–
–
–
11/2010
Tuning, Installation, Konfiguration
Security, Identity Management
Expertisen/Gutachten
Support, Troubleshooting, DBA-Aufgaben
Datenmodellierung und –design
Datenbankdesign, Systemanalysen
Programmierung: SQL,PL/SQL,Java, JSP, ADF, BC4J
Workshops
www.database-consult.de
©Database Consult GmbH - Jachenau
Folie 2 von 36
Agenda
Kerberos für die Datenank
•
•
•
•
Einführung Kerberos
Konfiguration Kerberos – Datenbank
Kerberos - Datenbank – LDAP-Dienst
Ausblick: Erweiterte Möglichkeiten der LDAP
Einbindung
11/2010
©Database Consult GmbH - Jachenau
Folie 3 von 36
Kerberos für die Datenank
Einführung Kerberos
11/2010
©Database Consult GmbH - Jachenau
Folie 4 von 36
4
Kerberos
Kerberos für die Datenank
-- Anmeldung als [email protected]
sqlplus /@targetdb
SQL> show user
USER is "[email protected]"
-- Alternativ: Anmeldung als [email protected]
sqlplus /@targetdb
SQL> show user
USER is "SHAREUSER"
SELECT global_name, user, sys_context('userenv','external_name')
external_user FROM global_name;
GLOBAL_NAME
USER
EXTERNAL_USER
-------------------- ---------- -------------------------------TARGETDB.DBC.DE
SHAREUSER cn=guenter,cn=Users,dc=dbc,dc=de
11/2010
©Database Consult GmbH - Jachenau
Folie 5 von 36
Kerberos
Kerberos für die Datenank
• Verteilter Autentifizierungsdienst – SSO Prinzip
– Basis symmetrische Kryptografie
– Kerberos 5 Netzwerkdienst als „trusted third party“
• Von Microsoft genutzt als Standardprotokoll für die
Authentifizierung
• Ideale Benutzerbasis in Windowsnetzwerken
• Tools zur Nutzung unter Unix & CO.
• Anmeldung als /@zieldb
• Verbunden mit gleichnamigem "externen" DB-User
11/2010
©Database Consult GmbH - Jachenau
Folie 6 von 36
Benutzer
Resource
> Authentication Request
Ticket Granting Server (TGS)
Authentication Server (AS)
> *AS
< Response mit TGT,
Sitzungsschlüssel
> *TGS
> Anforderung Service
Ticket
(Ressource,TGT,Authent.)
< Ticket mit Auth. an
< Ticket, Sitzungsschlüssel
Service
> Service bestätigt
Weitere Kommunikation
verschlüsselt oder nicht
Tickets sind immer nur vom Target lesbar
11/2010
©Database Consult GmbH - Jachenau
Folie 7 von 36
Kerberos für die Datenank
KDC
Kerberos Ablauf
Kerberos
Kerberos für die Datenank
•
•
•
okinit testuser
sqlplus /@zieldb
Oracle-User:
[email protected]
(entsprechend
Principal Name)
11/2010
©Database Consult GmbH - Jachenau
Folie 8 von 36
Kerberos (Unix Umfeld)
Kerberos für die Datenank
okinit testuser
Kerberos Utilities for Solaris: Version 10.2.0.1.0 –
Production on 03-MAY-2010 16:57:49
Copyright (c) 1996, 2004 Oracle. All rights reserved.
Password for [email protected]:
oklist
Kerberos Utilities for Solaris: Version 10.2.0.1.0 –
Production on 03-MAY-2010 16:59:46
Copyright (c) 1996, 2004 Oracle. All rights reserved.
Ticket cache: /opt/oracle/1020client/network/krb5/krbcache
Default principal: [email protected]
Valid Starting
Expires
03-May-2010 16:58:04 04-May-2010 00:57:49
krbtgt/[email protected]
Principal
sqlplus /@zieldb
11/2010
©Database Consult GmbH - Jachenau
Folie 9 von 36
Kerberos für die Datenank
Kerberos Konfiguration
11/2010
©Database Consult GmbH - Jachenau
Folie 10 von 36
10
Kerberos-Konfiguration (kurz)
•
•
Lizenz: Advanced Security Option
Anlegen Principal User, anhängen Service Principal Name (AD)
Konfigurationsdateien sqlnet.ora und krb5.conf (Client/Server)
unter Windows: krb5.ini
Keyfile auf den/die DB-Server kopieren – enthält Credentials
Datenbank-User mit entsprechendem Principal Name
ktpass -princ oracle/[email protected] -mapuser testserver01
-pass password123 –DesOnly
-crypto des-cbc-crc -ptype KRB5_NT_PRINCIPAL –kvno 1
–out C:\Users\keytab.testserver01
-------------------CREATE USER "[email protected]" IDENTIFIED EXTERNALLY;
11/2010
©Database Consult GmbH - Jachenau
Folie 11 von 36
Kerberos für die Datenank
•
•
•
Konfiguration
Kerberos für die Datenank
•
Lizenz: Advanced Security Option
– Extra der Enterprise Edition
•
Client
– Type Administrotor/Custom
– JDBC [thick, thin (>= 11gR1)]
•
Unix: Kommando adapters
•
Network Manager (netmgr)
– unter „Profil“ der Bereich „Oracle Advanced Security“
opatch lsinventory –detail –oh <oracle home>
...
Oracle Advanced Security
....
########### a d a p t e r s #########
Installed Oracle Net transport protocols are:....
Installed Oracle Net naming methods are:
Installed Oracle Advanced Security options are:
11/2010
©Database Consult GmbH - Jachenau
11.2.0.1.0
Folie 12 von 36
Konfiguration
Kerberos für die Datenank
•
Kerberos Principal
– <Name> für die Zuordnung des symmetrischen Schlüssels
•
Format: <servicename>/<hostname>@<REALM>
– <hostname> als "user account" , use DES encryption aktivieren
– Service Principal Name
## AD Konsole
[General tab]
First name: testserver01
Display name: testserver01
Password: <beliebiges Kennwort>
[Account tab:]
User logon name: [email protected]
User logon name (pre-Windows 2000): DBC\testserver01
##########################################
ktpass -princ oracle/[email protected] -mapuser testserver01
-pass password123 -DesOnly
-crypto des-cbc-crc -ptype KRB5_NT_PRINCIPAL –kvno 1
–out C:\Users\keytab.testserver01
11/2010
©Database Consult GmbH - Jachenau
Folie 13 von 36
Konfiguration
Kerberos für die Datenank
-- Kontrolle
setspn -L testserver01
Registered ServicePrincipalNames for
CN=testserver01,CN=Users,DC=dbc,DC=de:
oracle/testserver01
### Kopieren auf den betreffenden DB-Server
### Kontrolle
oklist -k –t /<pfad>/<keyfile>
Kerberos Utilities for Solaris: Version 10.2.0.1.0 - Production on
30-APR-2010 11:42:37
Copyright (c) 1996, 2004 Oracle. All rights reserved.
Service Key Table:
/u01/app/oracle/product/1020/network/krb5/keytab.testserver01
Ver
1
11/2010
Timestamp
Principal
01-Jan-1970 01:00:00 oracle/[email protected]
©Database Consult GmbH - Jachenau
Folie 14 von 36
Konfiguration
SERVERSEITE sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES = (kerberos5)
SQLNET.KERBEROS5_CONF = /u01/oracle/1020client/network/krb5/krb5.conf
SQLNET.KERBEROS5_CC_NAME = /opt/oracle/1020client/network/krb5/krbcache
SQLNET.KERBEROS5_CONF_MIT = true
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE = oracle
SQLNET.KERBEROS5_KEYTAB = /u01/oracle/product/krb5/keytab.testserver01
11/2010
©Database Consult GmbH - Jachenau
Folie 15 von 36
Kerberos für die Datenank
CLIENTSEITE sqlnet.ora (Windows System)
NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES = (kerberos5)
# Erreichbarkeit KDC
SQLNET.KERBEROS5_CONF = c:\windows\krb5.ini
# Credential Cache (TPT usw.)
SQLNET.KERBEROS5_CC_NAME = OSMSFT://
# SQLNET.KERBEROS5_CC_NAME = /opt/oracle/1020client/network/krb5/krbcache
SQLNET.KERBEROS5_CONF_MIT = true
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE = oracle
Konfiguration
Kerberos für die Datenank
•
Serviceticket-Anforderung über
–
–
–
–
Host-Klausel des tnsnames-Eintrages
hostname auf Zielserver
ergänzt durch Eigeneintrag von /etc/hosts
ergänzt durch Kerberos5 Servicename
SERVERSEITE sqlnet.ora (krb5.ini/krb5.conf) mit Zeitversatz
[libdefaults]
default_realm = DBC.DE
clockskew = 3000
[realms]
DBC.DE = {
kdc = adnet.dbc.de
}
[domain_realm]
.dbc.de = DBC.DE
dbc.de = DBC.DE
##### /etc/hosts
<dbserver IP> testserver01.dbc.de testserver01
11/2010
©Database Consult GmbH - Jachenau
Folie 16 von 36
Konfiguration
Kerberos für die Datenank
########## AD Enduser #######################
Username/DN CN=testuser,CN=Users,DC=dbc,DC=de
Logon Name [email protected]
msDS-PrincipalName DBC\testuser
userPrincipalName [email protected]
########## DB ########################
CREATE USER "[email protected]" IDENTIFIED EXTERNALLY;
GRANT connect, resource TO "[email protected]";
########## Client-Seite ###############
okinit testuser
Kerberos Utilities for Solaris: Version 10.2.0.1.0 - Production on
03-MAY-2010 16:57:49
Copyright (c) 1996, 2004 Oracle. All rights reserved.
Password for [email protected]:
11/2010
©Database Consult GmbH - Jachenau
Folie 17 von 36
Konfiguration
# Client: Tracing Logging nur im Bedarfsfall
TRACE_LEVEL_CLIENT=16
TRACE_DIRECTORY_CLIENT=/u01/oracle/1020client/network/network/trace
TRACE_UNIQUE_CLIENT=on
TRACE_FILE_CLIENT=kerb_client
# Okinit: Tracing
TRACE_LEVEL_OKINIT=16
TRACE_DIRECTORY_OKINIT=/u01/oracle/1020client/network/network/trace
TRACE_FILE_OKINIT=kerb_okinit
11/2010
©Database Consult GmbH - Jachenau
Folie 18 von 36
Kerberos für die Datenank
# Server: Tracing Logging nur im Bedarfsfall
TRACE_LEVEL_SERVER = SUPPORT
TRACE_FILE_SERVER = NETserver.ora
TRACE_DIRECTORY_SERVER = /u01/app/oracle/product/1020/network/network/trace
TRACE_TIMESTAMP_SERVER = TRUE
Kerberos
Kerberos für die Datenank
• Kerberos authentifiziert.
• Authorisierung erfolgt separat.
• Weitere Konfigurationsmöglichkeiten:
– Kombination mit Enterprise Usern: Kerberos User „mapped“ auf
shared schema
– Umleitung auf proxy user
• Tool/API Unterstützung, u.a.
– SQL Developer (über OCI/thick driver)
– JDBC thin und thick
11/2010
©Database Consult GmbH - Jachenau
Folie 19 von 36
Kerberos für die Datenank
Kerberos - Datenbank – LDAP-Dienst
11/2010
©Database Consult GmbH - Jachenau
Folie 20 von 36
20
Authentifizierungsvarianten
Kerberos für die Datenank
11/2010
©Database Consult GmbH - Jachenau
Folie 21 von 36
Komponenten
– DB: Enterprise Edition
– DB: ASO für Authenfitizierungen ausser Password
– OID/OVD – Bestandteil von „Identity Management“ von OFM
(11g)
• Verzeichnisdienst
– Oracle Internet Directory (OID) + Repository
– Active Directory (AD) – alternativ/zusätzlich
– ggf. Oracle Virtual Directory als „Frontend“ zur Integration
• Weblogic Server – Admin Oberflächen OID/OVD
11/2010
©Database Consult GmbH - Jachenau
Folie 22 von 36
Kerberos für die Datenank
• Produkte/Lizenzen
Enterprise User/Roles
Kerberos für die Datenank
• LDAP-Verzeichnisdienst
– Benutzer (enterprise user), Rollen (enterprise roles)
– registrierte Datenbanken, „Mappings“
– Authentifizierung über PW, Zertifikat, Kerberos
• Datenbank(en)
– Globale Benutzer, Globale Rollen
– Verbindung zum Verzeichnisdienst (ldap.ora)
• Motivation
– Zentralisierung der Benutzerverwaltung
– Reduktion der lokalen DB-Administration
11/2010
©Database Consult GmbH - Jachenau
Folie 23 von 36
Enterprise Benutzer
Kerberos für die Datenank
11/2010
©Database Consult GmbH - Jachenau
Folie 24 von 36
EUS Modell 1
OID für Benutzer und Metadaten
Authentifizierung per Kerberos Ticket über die Datenbank
Mapping auf Principal Name eines Enterprise Users
Zuordnung auf shared schema + Global Role der Ziel-Datenbank
11/2010
©Database Consult GmbH - Jachenau
Folie 25 von 36
Kerberos für die Datenank
•
•
•
•
Procedere
RDBMS-Software lt. Zertifizierungsmatrix installieren
Repository Datenbank anlegen – UTF8 Zeichens.
Weblogic Software installieren (java –jar)
OFM – IDM Software installieren (OUI)
Patch Sets für WLS + IDM
Konfiguration von WLS/IDM
– WLS Domäne mit Admin Server + Managed Server
• ldap.ora, Registrierung DBs, Shared Schemas, Roles
• Enterprise User + Roles einrichten
• Global Users und Roles in den Zielsystemen
11/2010
©Database Consult GmbH - Jachenau
Folie 26 von 36
Kerberos für die Datenank
•
•
•
•
•
•
Procedere
Kerberos für die Datenank
•
•
Verbindung Datenbank – OID/LDAP über ldap.ora
Erstellen manuell oder per Net Configuration Assistant
– Auswahl von DIRECTORY USAGE CONFIGURATION
•
Admin Kontext verweist auf Metadaten
-- ldap.ora
DIRECTORY_SERVERS= (oidserver:6051:6055)
DEFAULT_ADMIN_CONTEXT = "dc=dbc,dc=de"
DIRECTORY_SERVER_TYPE = OID
11/2010
©Database Consult GmbH - Jachenau
Folie 27 von 36
Procedere
Registrierung der Datenbank über Database Configuration Assistant
(dbca)
– silent Mode mit Response Datei ist möglich
•
•
Dadurch: Eintrag im OID unter Admin Kontext, Wallet-Aufbau
Einrichten/prüfen init.ora
-- Response-Datei (Ausschnitt)
-- Aufruf: dbca -silent -responseFile dbcaLDAP.rsp
PERATION_TYPE = "configureDatabase"
[CONFIGUREDATABASE]
SOURCEDB = "orcl"
REGISTERWITHDIRSERVICE= TRUE
DIRSERVICEUSERNAME= "name"
DIRSERVICEPASSWORD= "password"
WALLETPASSWORD= "password"
DIRECTORY_SERVERS= (oidserver:6051:6055)
DEFAULT_ADMIN_CONTEXT = "dc=dbc,dc=de"
DIRECTORY_SERVER_TYPE = OID
11/2010
©Database Consult GmbH - Jachenau
Folie 28 von 36
Kerberos für die Datenank
•
Procedere
Kerberos für die Datenank
-- Prüfung des Wallet in $ORACLE_HOME/admin/<SID>/wallet
mkstore -wrl . -viewEntry ORACLE.SECURITY.DN
mkstore -wrl . -viewEntry ORACLE.SECURITY.PASSWORD
-- init.ora
ldap_directory_access = PASSWORD
rdbms_server_dn = 'cn=T1,cn=OracleContext,dc=dbc,dc=de‘
-- Verbindungskontrolle zum Verzeichnisdienst mit PW aus dem Wallet
ldapbind -h <ldaphost> -p <non-ssl-port> \
-D "cn=T1,cn=OracleContext,dc=fra,dc=bb,dc=de" -w "DB pwd"
ldapbind -h <ldaphost> -p <non-ssl-port> \
-W "file:/opt/oracle/1020/admin/T1/wallet" -P "wallet pwd"
-- Datenbank
CREATE USER jedermann PROFILE "DEFAULT" IDENTIFIED GLOBALLY AS '';
GRANT CREATE SESSION TO jedermann;
CREATE ROLE r_global1 IDENTIFIED GLOBALLY;
GRANT <provilege> TO r_global1; -- kein grant an User möglich
11/2010
©Database Consult GmbH - Jachenau
Folie 29 von 36
Enterprise User
Werkzeuge:
– EM Database Control und
Grid Control
– eusm Command line Tool
(ab 11g [ID 1085065.1] )
– Enterprise Security Manager
(esm) (grafisch 10g)
11/2010
©Database Consult GmbH - Jachenau
Folie 30 von 36
Kerberos für die Datenank
•
Enterprise Roles
Kerberos für die Datenank
11/2010
©Database Consult GmbH - Jachenau
Folie 31 von 36
Kerberos für die Datenank
Erweiterte Möglichkeiten
11/2010
©Database Consult GmbH - Jachenau
Folie 32 von 36
32
Architekturvarianten
Kerberos für die Datenank
• Problematik User-Daten – Redundanz vermeiden
– Userstamm in AD
– ggf. weitere Sourcen: Verzeichnisse, Tabellen etc.
• Lösungsvarianten
– OID – Directory Integration Plattform (kopieren)
– OID – Server Chaining (verlinken)
– OVD integriert/verlinkt diverse Verzeichnisse/DBs
• Trennung von Metadaten und Userdaten
• Schemaerweiterung für EUS notwendig
• Password-Problematik – ggf. Passwordfilter (für AD)
11/2010
©Database Consult GmbH - Jachenau
Folie 33 von 36
OVD Nutzung
Kerberos für die Datenank
11/2010
©Database Consult GmbH - Jachenau
Folie 34 von 36
(Hoch)Verfügbarkeit
Kerberos für die Datenank
11/2010
©Database Consult GmbH - Jachenau
Folie 35 von 36
Kerberos für die Datenank
Danke für‘s Zuhören
www.database-consult.de
11/2010
©Database Consult GmbH - Jachenau
Folie 36 von 36
Herunterladen