23
erstellt am: 08.09.2014 letzte Änderung: 18.09.2014 Version: 1.0 DOAG Vortrag über Interoperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0

Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

erstellt am 08092014

letzte Aumlnderung 18092014

Version 10

DOAG Vortrag uumlber

Interoperabilitaumlt zwischen Oracle WSM

11g und Microsoft WCFNET 40

Copyright SIVAG 2014 - Alle Rechte vorbehalten

Die SIVAG uumlbernimmt fuumlr die Fehlerfreiheit der beschriebenen Programmteile keine Haftung Auszligerdem wird keine

Gewaumlhr dafuumlr uumlbernommen dass die beschriebenen Verfahren Programme usw frei von Schutzrechten Dritter sind

Alle Rechte auch die der Uumlbersetzung sind vorbehalten Die Bedienungsanleitung (auch auszugsweise) darf ohne

schriftliche Genehmigung der SIVAG in keiner Form (Fotokopie Mikrofilm oder ein Verfahren wie Kopieren auf

Disketten oder Magnetbaumlnder) auch nicht fuumlr Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung

elektronischer Systeme verarbeitet vervielfaumlltigt oder verbreitet werden

Da stetig an der Weiterentwicklung der Programme gearbeitet wird stimmen einzelne Meldungen nur sinngemaumlszlig mit

denen der Produktbeschreibung uumlberein Die vorliegende Produktbeschreibung erhebt keinen Anspruch auf

Vollstaumlndigkeit und kann durch SIVAG jederzeit ohne vorherige Ankuumlndigung ergaumlnzt und geaumlndert werden

ORACLEreg ist ein eingetragenes Warenzeichen der ORACLE Corporation Kalifornien USA

UNIXreg ist ein eingetragenes Warenzeichen der SCO Santa Cruz Operation

WINDOWSreg WINDOWS NTreg sind eingetragene Warenzeichen der Microsoft Corporation

ProFibreg ist ein eingetragenes Warenzeichen der Szymaniak Software GmbH

VARIALreg ist ein eingetragenes Warenzeichen der ISB GmbH

LOHN XLXXLreg ist ein eingetragenes Warenzeichen der SOFT-RESEARCH GmbH

Alle weiteren verwendeten Produktnamen koumlnnen eingetragene Warenzeichen der jeweiligen Eigentuumlmer sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Inhalt

SIVAG 2014 I

Inhalt

1 EINLEITUNG 2

11 Ausgangssituation 2

12 Zielsetzung 2

13 Loumlsungsbeschreibung 2

14 Was ist Kerberos 2

15 Beteiligte Systeme 3

2 UMSETZUNG 3

21 Voraussetzungen 3

211 Zeitabgleich 3

212 Sicherung anlegen 4

213 Windows WCF Net Applikation (kVASy Outlook Add In) 4

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service Bus (OSB) 8

22 Anlegen des Active Directory Host Account User 8

221 Anlegen des Host Account Users 8

222 Generieren der keytab-Datei 9

223 Uumlberpruumlfen des SPN 9

224 Weitere SPN hinzufuumlgen 10

23 Kerberos-Konfiguration auf dem Linux-Server 10

231 Update der JDK Security Policy Files 11

232 Kopieren der keytab-Datei auf dem Linux-Server 11

233 Editieren der krb5conf-Datei auf dem Linux-Server 11

234 Testen des SPN und der keytab-Datei (notwendig) 12

235 Erstellen der krb5Loginconf 12

236 Editieren der setDomainEnvsh 13

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional) 13

238 Wenn etwas schief geht 15

239 OWSM konfigurieren 15

2310 OSB Web Service mit Policy sichern 19

24 Abschlieszligender Test des WCF Client 20

3 GLOSSARABKUumlRZUNGSVERZEICHNIS 20

4 QUELLEN 20

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Einleitung

SIVAG 2014 2

1 Einleitung

11 Ausgangssituation

Ein vorhandener Proxy Service im OSB (Oracle Service Bus) soll von einem Windows Client genutzt

werden Dabei soll zwischen dem Client und dem Service eine sichere Authentifizierung stattfinden

Hierfuumlr soll die Anmeldung am Windows-Rechner genutzt werden (SSO ndash Single Sign On)

Dieses Tutorial basiert auf einem Projekt der SIVAG Die SIVAG hat fuumlr Ihre Kunden ein Outlook

Add In entwickelt dass sich nahtlos in Outlook einbettet Wird auf eine E-Mail geklickt deren

Absender in kVASy bekannt ist dann werden zu diesem Absender Kundendaten angezeigt Der

Sachbearbeiter kann sich damit einen schnellen Uumlberblick uumlber den Kunden und seine letzten

Aktivitaumlten machen

kVASy ist das Hauptprodukt der SIVAG und wird bei ca 300 Kunden in der Energie- und

Wasserwirtschaft eingesetzt Siehe auch httpwwwsivde fuumlr weitere Informationen zur SIVAG und

ihren Produkten und Dienstleistungen

Das kVASy Outlook Add In wird in diesem Tutorial nicht weiter behandelt Stattdessen wird der

Windows Client an Hand eines WCF Net C-Konsolenprogramms erklaumlrt

12 Zielsetzung

Das Windows-Konsolen-Programm soll die Windows-Anmeldung des Benutzers nutzen Diese sollen

dem Webservice in einer sicheren Art und Weise uumlbertragen werden Der Webservice soll den

Benutzer uumlberpruumlfen und im Fall einer unberechtigten Nutzung ablehnen

13 Loumlsungsbeschreibung

Das Windows-Konsolen-Programm ist eine NET Applikation (NET Framework 45) die in der

Programmiersprache C erstellt wurde Das NET Framework bietet die Moumlglichkeit auf die

Windows-Anmeldung uumlber das Kerberosprotokoll zugreifen zu koumlnnen Die Anmeldedaten werden

dabei in Form eines Kerberos-Tickets zur Verfuumlgung gestellt Dieses Ticket kann dem Webservice

uumlbergeben werden Der Oracle Service Bus (OSB) ist unter Verwendung von Oracle Web Service

Manager (OWSM) Kerberos Policies in der Lage diese Tickets zu verarbeiten und die

Authentifizierung des Benutzers durchzufuumlhren

14 Was ist Kerberos

Fuumlr eine kurze Einfuumlhrung siehe [12] Eine genauere Beschreibung wie Kerberos in Windows

implementiert ist findet sich in [7] Eine sehr verstaumlndliche Beschreibung findet sich in [13] Und zum

Schluss mein Favorit Ein 10minuumltiges Video auf Youtube [15]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 3

15 Beteiligte Systeme

Abbildung 1

Abbildung 1 zeigt die beteiligten System

1 Windows Rechner mit installierten Net Client der auf einen Webservice auf dem Linux

Applikationen-Server zugreifen will

2 Linux-Applikation-Server mit installiertem Oracle OSB- SOA-Server kVASy5-Datenbank

und kVASy5-Geschaumlftsanwendung

3 Active Directory Server

Alle Systeme befinden sich in einem Netzwerk Der Windows-Rechner und der ADS befinden sich in

einer Windows-Domaumlne Der Windows Rechner ist in der Windows Domaumlne registriert Der Benutzer

der Windows Net Anwendung meldet sich an der Windows Domaumlne an und ist als User im Active

Directory registriert

2 Umsetzung

21 Voraussetzungen

211 Zeitabgleich

Die Uhren vom ADS MS-Windows-Client und Linux-Server muumlssen synchronisiert sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 2: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Copyright SIVAG 2014 - Alle Rechte vorbehalten

Die SIVAG uumlbernimmt fuumlr die Fehlerfreiheit der beschriebenen Programmteile keine Haftung Auszligerdem wird keine

Gewaumlhr dafuumlr uumlbernommen dass die beschriebenen Verfahren Programme usw frei von Schutzrechten Dritter sind

Alle Rechte auch die der Uumlbersetzung sind vorbehalten Die Bedienungsanleitung (auch auszugsweise) darf ohne

schriftliche Genehmigung der SIVAG in keiner Form (Fotokopie Mikrofilm oder ein Verfahren wie Kopieren auf

Disketten oder Magnetbaumlnder) auch nicht fuumlr Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung

elektronischer Systeme verarbeitet vervielfaumlltigt oder verbreitet werden

Da stetig an der Weiterentwicklung der Programme gearbeitet wird stimmen einzelne Meldungen nur sinngemaumlszlig mit

denen der Produktbeschreibung uumlberein Die vorliegende Produktbeschreibung erhebt keinen Anspruch auf

Vollstaumlndigkeit und kann durch SIVAG jederzeit ohne vorherige Ankuumlndigung ergaumlnzt und geaumlndert werden

ORACLEreg ist ein eingetragenes Warenzeichen der ORACLE Corporation Kalifornien USA

UNIXreg ist ein eingetragenes Warenzeichen der SCO Santa Cruz Operation

WINDOWSreg WINDOWS NTreg sind eingetragene Warenzeichen der Microsoft Corporation

ProFibreg ist ein eingetragenes Warenzeichen der Szymaniak Software GmbH

VARIALreg ist ein eingetragenes Warenzeichen der ISB GmbH

LOHN XLXXLreg ist ein eingetragenes Warenzeichen der SOFT-RESEARCH GmbH

Alle weiteren verwendeten Produktnamen koumlnnen eingetragene Warenzeichen der jeweiligen Eigentuumlmer sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Inhalt

SIVAG 2014 I

Inhalt

1 EINLEITUNG 2

11 Ausgangssituation 2

12 Zielsetzung 2

13 Loumlsungsbeschreibung 2

14 Was ist Kerberos 2

15 Beteiligte Systeme 3

2 UMSETZUNG 3

21 Voraussetzungen 3

211 Zeitabgleich 3

212 Sicherung anlegen 4

213 Windows WCF Net Applikation (kVASy Outlook Add In) 4

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service Bus (OSB) 8

22 Anlegen des Active Directory Host Account User 8

221 Anlegen des Host Account Users 8

222 Generieren der keytab-Datei 9

223 Uumlberpruumlfen des SPN 9

224 Weitere SPN hinzufuumlgen 10

23 Kerberos-Konfiguration auf dem Linux-Server 10

231 Update der JDK Security Policy Files 11

232 Kopieren der keytab-Datei auf dem Linux-Server 11

233 Editieren der krb5conf-Datei auf dem Linux-Server 11

234 Testen des SPN und der keytab-Datei (notwendig) 12

235 Erstellen der krb5Loginconf 12

236 Editieren der setDomainEnvsh 13

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional) 13

238 Wenn etwas schief geht 15

239 OWSM konfigurieren 15

2310 OSB Web Service mit Policy sichern 19

24 Abschlieszligender Test des WCF Client 20

3 GLOSSARABKUumlRZUNGSVERZEICHNIS 20

4 QUELLEN 20

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Einleitung

SIVAG 2014 2

1 Einleitung

11 Ausgangssituation

Ein vorhandener Proxy Service im OSB (Oracle Service Bus) soll von einem Windows Client genutzt

werden Dabei soll zwischen dem Client und dem Service eine sichere Authentifizierung stattfinden

Hierfuumlr soll die Anmeldung am Windows-Rechner genutzt werden (SSO ndash Single Sign On)

Dieses Tutorial basiert auf einem Projekt der SIVAG Die SIVAG hat fuumlr Ihre Kunden ein Outlook

Add In entwickelt dass sich nahtlos in Outlook einbettet Wird auf eine E-Mail geklickt deren

Absender in kVASy bekannt ist dann werden zu diesem Absender Kundendaten angezeigt Der

Sachbearbeiter kann sich damit einen schnellen Uumlberblick uumlber den Kunden und seine letzten

Aktivitaumlten machen

kVASy ist das Hauptprodukt der SIVAG und wird bei ca 300 Kunden in der Energie- und

Wasserwirtschaft eingesetzt Siehe auch httpwwwsivde fuumlr weitere Informationen zur SIVAG und

ihren Produkten und Dienstleistungen

Das kVASy Outlook Add In wird in diesem Tutorial nicht weiter behandelt Stattdessen wird der

Windows Client an Hand eines WCF Net C-Konsolenprogramms erklaumlrt

12 Zielsetzung

Das Windows-Konsolen-Programm soll die Windows-Anmeldung des Benutzers nutzen Diese sollen

dem Webservice in einer sicheren Art und Weise uumlbertragen werden Der Webservice soll den

Benutzer uumlberpruumlfen und im Fall einer unberechtigten Nutzung ablehnen

13 Loumlsungsbeschreibung

Das Windows-Konsolen-Programm ist eine NET Applikation (NET Framework 45) die in der

Programmiersprache C erstellt wurde Das NET Framework bietet die Moumlglichkeit auf die

Windows-Anmeldung uumlber das Kerberosprotokoll zugreifen zu koumlnnen Die Anmeldedaten werden

dabei in Form eines Kerberos-Tickets zur Verfuumlgung gestellt Dieses Ticket kann dem Webservice

uumlbergeben werden Der Oracle Service Bus (OSB) ist unter Verwendung von Oracle Web Service

Manager (OWSM) Kerberos Policies in der Lage diese Tickets zu verarbeiten und die

Authentifizierung des Benutzers durchzufuumlhren

14 Was ist Kerberos

Fuumlr eine kurze Einfuumlhrung siehe [12] Eine genauere Beschreibung wie Kerberos in Windows

implementiert ist findet sich in [7] Eine sehr verstaumlndliche Beschreibung findet sich in [13] Und zum

Schluss mein Favorit Ein 10minuumltiges Video auf Youtube [15]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 3

15 Beteiligte Systeme

Abbildung 1

Abbildung 1 zeigt die beteiligten System

1 Windows Rechner mit installierten Net Client der auf einen Webservice auf dem Linux

Applikationen-Server zugreifen will

2 Linux-Applikation-Server mit installiertem Oracle OSB- SOA-Server kVASy5-Datenbank

und kVASy5-Geschaumlftsanwendung

3 Active Directory Server

Alle Systeme befinden sich in einem Netzwerk Der Windows-Rechner und der ADS befinden sich in

einer Windows-Domaumlne Der Windows Rechner ist in der Windows Domaumlne registriert Der Benutzer

der Windows Net Anwendung meldet sich an der Windows Domaumlne an und ist als User im Active

Directory registriert

2 Umsetzung

21 Voraussetzungen

211 Zeitabgleich

Die Uhren vom ADS MS-Windows-Client und Linux-Server muumlssen synchronisiert sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 3: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Inhalt

SIVAG 2014 I

Inhalt

1 EINLEITUNG 2

11 Ausgangssituation 2

12 Zielsetzung 2

13 Loumlsungsbeschreibung 2

14 Was ist Kerberos 2

15 Beteiligte Systeme 3

2 UMSETZUNG 3

21 Voraussetzungen 3

211 Zeitabgleich 3

212 Sicherung anlegen 4

213 Windows WCF Net Applikation (kVASy Outlook Add In) 4

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service Bus (OSB) 8

22 Anlegen des Active Directory Host Account User 8

221 Anlegen des Host Account Users 8

222 Generieren der keytab-Datei 9

223 Uumlberpruumlfen des SPN 9

224 Weitere SPN hinzufuumlgen 10

23 Kerberos-Konfiguration auf dem Linux-Server 10

231 Update der JDK Security Policy Files 11

232 Kopieren der keytab-Datei auf dem Linux-Server 11

233 Editieren der krb5conf-Datei auf dem Linux-Server 11

234 Testen des SPN und der keytab-Datei (notwendig) 12

235 Erstellen der krb5Loginconf 12

236 Editieren der setDomainEnvsh 13

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional) 13

238 Wenn etwas schief geht 15

239 OWSM konfigurieren 15

2310 OSB Web Service mit Policy sichern 19

24 Abschlieszligender Test des WCF Client 20

3 GLOSSARABKUumlRZUNGSVERZEICHNIS 20

4 QUELLEN 20

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Einleitung

SIVAG 2014 2

1 Einleitung

11 Ausgangssituation

Ein vorhandener Proxy Service im OSB (Oracle Service Bus) soll von einem Windows Client genutzt

werden Dabei soll zwischen dem Client und dem Service eine sichere Authentifizierung stattfinden

Hierfuumlr soll die Anmeldung am Windows-Rechner genutzt werden (SSO ndash Single Sign On)

Dieses Tutorial basiert auf einem Projekt der SIVAG Die SIVAG hat fuumlr Ihre Kunden ein Outlook

Add In entwickelt dass sich nahtlos in Outlook einbettet Wird auf eine E-Mail geklickt deren

Absender in kVASy bekannt ist dann werden zu diesem Absender Kundendaten angezeigt Der

Sachbearbeiter kann sich damit einen schnellen Uumlberblick uumlber den Kunden und seine letzten

Aktivitaumlten machen

kVASy ist das Hauptprodukt der SIVAG und wird bei ca 300 Kunden in der Energie- und

Wasserwirtschaft eingesetzt Siehe auch httpwwwsivde fuumlr weitere Informationen zur SIVAG und

ihren Produkten und Dienstleistungen

Das kVASy Outlook Add In wird in diesem Tutorial nicht weiter behandelt Stattdessen wird der

Windows Client an Hand eines WCF Net C-Konsolenprogramms erklaumlrt

12 Zielsetzung

Das Windows-Konsolen-Programm soll die Windows-Anmeldung des Benutzers nutzen Diese sollen

dem Webservice in einer sicheren Art und Weise uumlbertragen werden Der Webservice soll den

Benutzer uumlberpruumlfen und im Fall einer unberechtigten Nutzung ablehnen

13 Loumlsungsbeschreibung

Das Windows-Konsolen-Programm ist eine NET Applikation (NET Framework 45) die in der

Programmiersprache C erstellt wurde Das NET Framework bietet die Moumlglichkeit auf die

Windows-Anmeldung uumlber das Kerberosprotokoll zugreifen zu koumlnnen Die Anmeldedaten werden

dabei in Form eines Kerberos-Tickets zur Verfuumlgung gestellt Dieses Ticket kann dem Webservice

uumlbergeben werden Der Oracle Service Bus (OSB) ist unter Verwendung von Oracle Web Service

Manager (OWSM) Kerberos Policies in der Lage diese Tickets zu verarbeiten und die

Authentifizierung des Benutzers durchzufuumlhren

14 Was ist Kerberos

Fuumlr eine kurze Einfuumlhrung siehe [12] Eine genauere Beschreibung wie Kerberos in Windows

implementiert ist findet sich in [7] Eine sehr verstaumlndliche Beschreibung findet sich in [13] Und zum

Schluss mein Favorit Ein 10minuumltiges Video auf Youtube [15]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 3

15 Beteiligte Systeme

Abbildung 1

Abbildung 1 zeigt die beteiligten System

1 Windows Rechner mit installierten Net Client der auf einen Webservice auf dem Linux

Applikationen-Server zugreifen will

2 Linux-Applikation-Server mit installiertem Oracle OSB- SOA-Server kVASy5-Datenbank

und kVASy5-Geschaumlftsanwendung

3 Active Directory Server

Alle Systeme befinden sich in einem Netzwerk Der Windows-Rechner und der ADS befinden sich in

einer Windows-Domaumlne Der Windows Rechner ist in der Windows Domaumlne registriert Der Benutzer

der Windows Net Anwendung meldet sich an der Windows Domaumlne an und ist als User im Active

Directory registriert

2 Umsetzung

21 Voraussetzungen

211 Zeitabgleich

Die Uhren vom ADS MS-Windows-Client und Linux-Server muumlssen synchronisiert sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 4: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Einleitung

SIVAG 2014 2

1 Einleitung

11 Ausgangssituation

Ein vorhandener Proxy Service im OSB (Oracle Service Bus) soll von einem Windows Client genutzt

werden Dabei soll zwischen dem Client und dem Service eine sichere Authentifizierung stattfinden

Hierfuumlr soll die Anmeldung am Windows-Rechner genutzt werden (SSO ndash Single Sign On)

Dieses Tutorial basiert auf einem Projekt der SIVAG Die SIVAG hat fuumlr Ihre Kunden ein Outlook

Add In entwickelt dass sich nahtlos in Outlook einbettet Wird auf eine E-Mail geklickt deren

Absender in kVASy bekannt ist dann werden zu diesem Absender Kundendaten angezeigt Der

Sachbearbeiter kann sich damit einen schnellen Uumlberblick uumlber den Kunden und seine letzten

Aktivitaumlten machen

kVASy ist das Hauptprodukt der SIVAG und wird bei ca 300 Kunden in der Energie- und

Wasserwirtschaft eingesetzt Siehe auch httpwwwsivde fuumlr weitere Informationen zur SIVAG und

ihren Produkten und Dienstleistungen

Das kVASy Outlook Add In wird in diesem Tutorial nicht weiter behandelt Stattdessen wird der

Windows Client an Hand eines WCF Net C-Konsolenprogramms erklaumlrt

12 Zielsetzung

Das Windows-Konsolen-Programm soll die Windows-Anmeldung des Benutzers nutzen Diese sollen

dem Webservice in einer sicheren Art und Weise uumlbertragen werden Der Webservice soll den

Benutzer uumlberpruumlfen und im Fall einer unberechtigten Nutzung ablehnen

13 Loumlsungsbeschreibung

Das Windows-Konsolen-Programm ist eine NET Applikation (NET Framework 45) die in der

Programmiersprache C erstellt wurde Das NET Framework bietet die Moumlglichkeit auf die

Windows-Anmeldung uumlber das Kerberosprotokoll zugreifen zu koumlnnen Die Anmeldedaten werden

dabei in Form eines Kerberos-Tickets zur Verfuumlgung gestellt Dieses Ticket kann dem Webservice

uumlbergeben werden Der Oracle Service Bus (OSB) ist unter Verwendung von Oracle Web Service

Manager (OWSM) Kerberos Policies in der Lage diese Tickets zu verarbeiten und die

Authentifizierung des Benutzers durchzufuumlhren

14 Was ist Kerberos

Fuumlr eine kurze Einfuumlhrung siehe [12] Eine genauere Beschreibung wie Kerberos in Windows

implementiert ist findet sich in [7] Eine sehr verstaumlndliche Beschreibung findet sich in [13] Und zum

Schluss mein Favorit Ein 10minuumltiges Video auf Youtube [15]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 3

15 Beteiligte Systeme

Abbildung 1

Abbildung 1 zeigt die beteiligten System

1 Windows Rechner mit installierten Net Client der auf einen Webservice auf dem Linux

Applikationen-Server zugreifen will

2 Linux-Applikation-Server mit installiertem Oracle OSB- SOA-Server kVASy5-Datenbank

und kVASy5-Geschaumlftsanwendung

3 Active Directory Server

Alle Systeme befinden sich in einem Netzwerk Der Windows-Rechner und der ADS befinden sich in

einer Windows-Domaumlne Der Windows Rechner ist in der Windows Domaumlne registriert Der Benutzer

der Windows Net Anwendung meldet sich an der Windows Domaumlne an und ist als User im Active

Directory registriert

2 Umsetzung

21 Voraussetzungen

211 Zeitabgleich

Die Uhren vom ADS MS-Windows-Client und Linux-Server muumlssen synchronisiert sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 5: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 3

15 Beteiligte Systeme

Abbildung 1

Abbildung 1 zeigt die beteiligten System

1 Windows Rechner mit installierten Net Client der auf einen Webservice auf dem Linux

Applikationen-Server zugreifen will

2 Linux-Applikation-Server mit installiertem Oracle OSB- SOA-Server kVASy5-Datenbank

und kVASy5-Geschaumlftsanwendung

3 Active Directory Server

Alle Systeme befinden sich in einem Netzwerk Der Windows-Rechner und der ADS befinden sich in

einer Windows-Domaumlne Der Windows Rechner ist in der Windows Domaumlne registriert Der Benutzer

der Windows Net Anwendung meldet sich an der Windows Domaumlne an und ist als User im Active

Directory registriert

2 Umsetzung

21 Voraussetzungen

211 Zeitabgleich

Die Uhren vom ADS MS-Windows-Client und Linux-Server muumlssen synchronisiert sein

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 6: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 4

212 Sicherung anlegen

Es wird empfohlen vor den Aumlnderungen eine Sicherung der Systeme anzulegen

Waumlhrend der Arbeiten wird empfohlen immer eine Sicherung der betroffenen config-Dateien zu

machen

u01apporacleMiddlewareuser_projectsdomainsprodconfigconfigxml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-config-jsexml

u01apporacleMiddlewareuser_projectsdomainsprodconfigfmwconfigjps-configxml

213 Windows WCF Net Applikation (kVASy Outlook Add In)

In einer Net Entwicklungsumgebung wird ein simples WCF C Konsolenprogramm erzeugt Die fuumlr

uns wichtigen Bestandteile sind die Datei Programcs und Appconfig Programcs enthaumllt den

auszufuumlhrenden Programm-Code

using System

using SystemCollectionsGeneric

using SystemLinq

using SystemText

using SystemThreadingTasks

namespace KerberosConsoleClient

class Program

static void Main(string[] args)

try

CustomerTaskServiceV1Client client = new CustomerTaskServiceV1Client()

var titles = clientGetAssignmentTitle(new GetAssignmentTitle())

ConsoleWriteLine(Result)

titlesToList()ForEach(x =gt ConsoleWriteLine(x))

catch (Exception ex)

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 7: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 5

ConsoleWriteLine(0 1rn2 exGetType()Name exMessage exStackTrace)

ConsoleWriteLine(press ltENTERgt to exit)

ConsoleReadLine()

Erklaumlrung des Programmablaufs

Es wird ein Webservice Client initialisiert Der ruft die Webservice Operation GetAssignmentTitle auf

Die Titel werden dann in einer Liste ausgegeben

Die Datei Appconfig enthaumllt die Konfiguration des Programms

ltxml version=10 encoding=utf-8 gt

ltconfigurationgt

ltstartupgt

ltsupportedRuntime version=v40 sku=NETFrameworkVersion=v45 gt

ltstartupgt

ltsystemserviceModelgt

ltbindingsgt

ltbasicHttpBindinggt

ltbinding name=CustomerTaskServiceV1SOAPtest gt

ltbasicHttpBindinggt

ltcustomBindinggt

ltbinding name=CustomerTaskServiceV1SOAPgt

lt--Added by User Begin--gt

ltsecurity defaultAlgorithmSuite=Basic128

authenticationMode=Kerberos

requireDerivedKeys=false securityHeaderLayout=Lax

includeTimestamp=true

keyEntropyMode=CombinedEntropy

messageProtectionOrder=SignBeforeEncrypt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 8: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 6

messageSecurityVersion=WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary20

05WSSecurityPolicy11BasicSecurityProfile10

requireSignatureConfirmation=falsegt

ltlocalClientSettings cacheCookies=true detectReplays=true

replayCacheSize=900000 maxClockSkew=000500

maxCookieCachingTime=Infinite

replayWindow=000500

sessionKeyRenewalInterval=100000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

timestampValidityDuration=000500

cookieRenewalThresholdPercentage=60 gt

ltlocalServiceSettings detectReplays=true

issuedCookieLifetime=100000

maxStatefulNegotiations=128 replayCacheSize=900000

maxClockSkew=000500

negotiationTimeout=000100 replayWindow=000500

inactivityTimeout=000200

sessionKeyRenewalInterval=150000

sessionKeyRolloverInterval=000500

reconnectTransportOnFailure=true

maxPendingSessions=128

maxCachedCookies=1000

timestampValidityDuration=000500 gt

ltsecureConversationBootstrap gt

ltsecuritygt

lt--Added by User End--gt

lttextMessageEncoding maxReadPoolSize=64

maxWritePoolSize=16

messageVersion=Soap11 writeEncoding=utf-8gt

ltreaderQuotas maxDepth=32 maxStringContentLength=8192

maxArrayLength=16384

maxBytesPerRead=4096 maxNameTableCharCount=16384

gt

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 9: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 7

lttextMessageEncodinggt

lt--Added by User Begin--gt

lthttpTransport manualAddressing=false

maxBufferPoolSize=524288

maxReceivedMessageSize=65536 allowCookies=false

authenticationScheme=Anonymous

bypassProxyOnLocal=false

hostNameComparisonMode=StrongWildcard

keepAliveEnabled=true maxBufferSize=65536

proxyAuthenticationScheme=Anonymous

realm= transferMode=Buffered

unsafeConnectionNtlmAuthentication=false

useDefaultWebProxy=true gt

lt--Added by User End--gt

ltbindinggt

ltcustomBindinggt

ltbindingsgt

ltclientgt

ltendpoint address=http[host name]sivde8011[path]customerTaskServiceV1

binding=customBinding bindingConfiguration=CustomerTaskServiceV1SOAP

contract=CustomerTaskServiceV1 name=CustomerTaskServiceV1SOAPQSPort gt

ltidentitygt

ltservicePrincipalName value =HTTP[host name]sivdeSIVDEgt

ltidentitygt

ltendpointgt

ltclientgt

ltsystemserviceModelgt

ltconfigurationgt

Die Konfiguration eines Net Clients (Kerberos mit Message Protection) wird von Oracle in [6]

ausfuumlhrlich beschrieben Die roten Zeilen in der Appconfig zeigen wo wir Anpassungen fuumlr unsere

Umgebung vorgenommen haben

Als Betriebssystem wird Windows 7 Professional Service Pack 1 64 Bit verwendet

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 10: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 8

214 Oracle Fusion Middleware (FMW) SOA Suite und Oracle Service

Bus (OSB)

Oracle Linux Server release 6

OSB Server 11117

SOA Suite 11117

Java-Version der Weblogic-Server

java version 170_17

Active Directory Authentication provider

Dieser muss in der Oracle WebLogic Server Administration Console konfiguriert sein

1 Console aufrufen

Beispiel-URL http[host]7001console

2 Zur Seite Authentication Providers navigieren

- Auf der linken Seite in der Box Domain Structure den Menuumlpunkt Security Realms waumlhlen

- unter myrealm auswaumlhlen

- den Tab Providers waumlhlen

Der Provider muss an erster Stelle in der Liste stehen und das Control Flag des Providers muss auf

SUFFICIENT stehen

22 Anlegen des Active Directory Host Account User

Fuumlr die Kerberos-Konfiguration auf dem Linux-Server muss im AD ein Host Account User angelegt

konfiguriert und eine keytab-Datei erstellt werden Folgende Schritte sind dazu notwendig

221 Anlegen des Host Account Users

Siehe auch [1]

1 Der Name des Users kann frei gewaumlhlt werden

2 Uumlberpruumlfen ob fuumlr diesen Account schon ein SPN existiert

setspn ndashL ltaccountgt

Wenn ein SPN existiert diesen loumlschen

setspn ndashD ltSPNgt ltaccountgt

3 Wenn AES Encryption benutzt wird zB wenn Encryption Typ auf All gesetzt wird

Eigenschaften des Accounts aufrufen und im Account Reiter folgende Checkboxen markieren

- The account supports Kerberos AES 128 bit encryption

- The account supports Kerberos AES 256 bit encryption

Die ldquoDo not require Kerberos preauthentication boxrdquo nicht markieren

Den OK Button betaumltigen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 11: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 9

222 Generieren der keytab-Datei

Im Folgenden werden die Befehle mit Beispieldaten aufgelistet Siehe auch [1]

1 keytab-Datei generieren

Der Befehl muss auf dem AD Server ausgefuumlhrt werden

Befehl

ktpass -princ HTTPlthost namedomaingtltAD domaingt -pass ltpasswordgt -mapuser ltaccount

namegt -out ltkeytab namegt -ptype KRB5_NT_PRINCIPAL -kvno 0 -crypto ltALL or RC4-HMAC-NTgt

Hier ist sehr wichtig dass die AD domain immer groszlig geschrieben wird

Beispiel (mit Konsolenausgabe)

cgtktpass -princ HTTP[host]sivdeSIVDE -pass welcome -mapuser [user]SIVDE -out

testkeytab -ptype KRB5_NT_PRINCIPAL -crypto ALL

Targeting domain controller ADS01sivde

Successfully mapped HTTP[host]sivde to soatestuser

Password succesfully set

Key created

Key created

Key created

Key created

Key created

Output keytab to testkeytab

Keytab version 0x502

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x1 (DES-

CBC-CRC) keylength 8 (0xfbcd0ba2f7867068)

keysize 64 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-

CBC-MD5) keylength 8 (0xfbcd0ba2f7867068)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x17 (RC4-

HMAC) keylength 16 (0x42ef711ec1d99ef24107549b5893b9af)

keysize 88 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12

(AES256-SHA1) keylength 32

(0x440fe6feef24f3eaa565e7b9adf667e9b6cedcfe42d2898c4c1d4956b9d0a94a)

keysize 72 HTTP[host]sivdeSIVDE ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x11

(AES128-SHA1) keylength 16 (0x816fbefc76bcd97ef3ec7dc2971b09f5)

223 Uumlberpruumlfen des SPN

Befehl

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 12: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 10

setspn -L ltaccountgt

Beispiel mit Ausgabe

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivde

224 Weitere SPN hinzufuumlgen

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Befehl

setspn ndasha ltSPNgt ltaccountgt

Beispiele mit Ausgaben

cgtsetspn -a HTTP[host]sivdeSIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]sivdeSIVDE

Aktualisiertes Objekt

cgtsetspn -L [uer]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]sivdeSIVDE

HTTP[host]sivde

cgtsetspn -a HTTP[host]SIVDE soatestuser

Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de werden registriert

HTTP[host]SIVDE

Aktualisiertes Objekt

cgtsetspn -L [user]

Registrierte Dienstprinzipalnamen (SPN) fuumlr CN=[user]CN=UsersDC=sivDC=de

HTTP[host]SIVDE

HTTP[host]sivdeSIVDE

HTTP[host]sivde

23 Kerberos-Konfiguration auf dem Linux-Server

Verwendete Dokumente fuumlr dieses Kapitel [1]

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 13: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 11

231 Update der JDK Security Policy Files

Wenn AES-256 Encryption verwendet werden soll werden die Java Cryptography Extension (JCE)

Unlimited Strength Jurisdiction Policy Files benoumltigt

Diese koumlnnen von [9] herunter geladen werden

Die Jurisdiction Policy Files entpacken

Entsprechend der Anleitung in der READMEtxt installieren Darauf achten dass das richtige

JDKJRE verwendet wird

232 Kopieren der keytab-Datei auf dem Linux-Server

Kopieren der keytab-Datei nach ltDomain-Homegt

Beispiel

[domain home path]testkeytab

233 Editieren der krb5conf-Datei auf dem Linux-Server

Bitte bei allen Konfigurationen immer auf die genaue Schreibweise achten Kleine Fehler fuumlhren hier

dazu dass die Kerberos-Konfiguration nicht funktioniert Es ist besonders auch auf die Groszlig- und

Kleinschreibung zu achten Die Beispiele zeigen wie es richtig gemacht werden muss

Die Datei befindet sich unter etckrb5conf und sollte folgenden Inhalt haben

[logging]

default = FILEvarlogkrb5libslog

kdc = FILEvarlogkrb5kdclog

admin_server = FILEvarlogkadmindlog

[libdefaults]

default_realm = SIVDE

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 600

forwardable = true

[realms]

SIVDE =

kdc = adssivde

admin_server = adssivde

default_domain = SIVDE

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 14: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 12

[domain_realm]

sivde = SIVDE

[appdefaults]

autologin = true

forward = true

forwardable = true

encrypt = true

Wichtig ist hier auf die Groszligschreibung von SIVDE an den entsprechenden Stellen zu achten

234 Testen des SPN und der keytab-Datei (notwendig)

In das Domain-Home wechseln

Folgendes Kommando ausfuumlhren binsetDomainEnvsh

Unbedingt den Punkt vor dem bin setzen

Mit diesem Befehl wird das Domain-Environment konfiguriert

In das Domain-Home wechseln

Befehl ausfuumlhren

kinit -V -k -t ltkeytab filegt HTTPlthost namedomaingtltdomaingt

Beispiel

kinit -V -k -t [domain home path]testkeytab HTTP[host]sivdeSIVDE

Ausgabe bei Erfolg

Using default cache tmpkrb5cc_54321

Using principal HTTP[host]sivdeSIVDE

Using keytab [domain home path]testkeytab

Authenticated to Kerberos v5

Nur wenn der rot markierte Text erscheint waren wir erfolgreich und koumlnnen weiter gehen Wenn

nicht zuruumlck zum Start und das Problem findenHiermit hat sich der Linux-Server gegenuumlber dem

KDC (ADS) authentisiert

235 Erstellen der krb5Loginconf

Die Datei im Domain-Verzeichnis erstellen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 15: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 13

Beispiel

[domain home path]krb5Loginconf

Inhalt

comsunsecurityjgsskrb5initiate

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

comsunsecurityjgsskrb5accept

comsunsecurityauthmoduleKrb5LoginModule required

principal=HTTP[host]sivdeSIVDE useKeyTab=true

keyTab=testkeytab storeKey=true

Nicht den kompletten Pfad zur keytab-Datei angeben

236 Editieren der setDomainEnvsh

Aufruf der setDomainEnvsh mit einem Editor

Beispiel

vi [domain home path]binsetDomainEnvsh

Folgende Zeilen an oberster Stelle eintragen wo die ldquoEXTRA_JAVA_PROPERTESrdquo gesetzt werden

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

Djavasecurityauthloginconfig=[domain home path]krb5Loginconf

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DjavaxsecurityauthuseSubjectCredsOnly=false

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -

DweblogicsecurityenableNegotiate=true

237 Testen der Kerberos-Konfiguration mit Browser SSO (optional)

Dieser Test zeigt auf ob die Kerberos-Konfiguration auszligerhalb der Nutzung des OWSM funktioniert

Sie beweist nicht ob der OWSM richtig konfiguriert ist (bis an dieser Stelle in dieser Dokumentation

ist der OWSM auch noch nicht konfiguriert worden)

Es wird empfohlen diesen Test auszufuumlhren um sicherzustellen dass die grundsaumltzliche Kerberos-

Konfiguration richtig ist

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 16: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 14

Es wird empfohlen folgende Dateien vor den Aumlnderungen zu sichern

[domain home path]configfmwconfigjps-configxml

[domain home path]configconfigxml

Einrichtung des Identity Asserter in der Domain

In der WLS Administration Console die Seite aufrufen wo die Authentication Providers aufgelistet

werden Pfad Home gtSummary of Security Realms gtmyrealm gtProviders

Links oben auf bdquoLock amp Editldquo klicken

bdquoNewldquo klicken

Namen eintragen (zB SPNEGO_NIA)

bdquoNegotiateIdentityAsserterldquo auswaumlhlen

Laut [1] soll der Asserter an erste Stelle der Provider gesetzt werden In dem Test-Environment war

dies nicht notwendig Wenn doch dann noch folgenden Schritt ausfuumlhren

Mit bdquoReorderldquo Identity Asserter an erste Stelle der Provider setzen

bdquoOKldquo klicken

bdquoActivate Changesldquo links oben klicken

Gruumlne Nachricht erscheint bei Erfolg bdquoAll changes have been activated However 4 items must be

restarted for the changes to take effectrdquo

Es kann sein dass man sich nach dem Neustart nicht mehr normal in die WLS Console einloggen

kann Dies ist ein Bug von Oracle Workaround Sich uumlber die OSB Console in die WLS Console

einloggen (oberes Menuuml) Sollte das auch nicht mehr gehen dann hilft nur noch die jps-configxml

und die configxml zuruumlckzuspielen die hoffentlich vor den Aumlnderungen gesichert wurden

Browser SSO testen

Vorraussetzung Arbeitsplatzrechner ist in der Windows-Domain und User ist im AD

Test in der WLS Console

Pfad Home gtSummary of Servers gtSummary of Security Realms gtmyrealm gtUsers and Groups

Nutzer muss in der Liste zu finden sein Wenn nicht muss die Konfiguration uumlberpruumlft werden

Pruumlfen ob alle Server wieder laufen Dazu in der WLS Administration Console (Pfad Home

gtSummary of Security Realms gtmyrealm gtProviders gtSummary of Environment gtSummary of

Servers) nutzen

Mit dem Google Chrome Browser testen (benoumltig keine weitere Konfiguration) Siehe auch [1]

Abschnitt bdquoI Configure the web browserldquo fuumlr Internet Explorer und Firefox

Beispiel

http[host]sivde8001bpmcomposerssologin oder

http[host]sivde8001integrationworklistappssologin

Nach dem erfolgreichen Test den Identity Asserter wieder entfernen und Server neu starten

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 17: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 15

238 Wenn etwas schief geht

Wenn etwas nicht funktioniert ist es wichtig den Debug-Modus zu aktivieren um so detaillierte

Informationen wie nur moumlglich zu bekommen

Fuumlr das out Logs

In die setDomainEnvsh zu der EXTRA_JAVA_PROPERTIES Sektion folgenden Eintrag hinzufuumlgen

(siehe auch Abschnitt weiter oben)

EXTRA_JAVA_PROPERTIES=$EXTRA_JAVA_PROPERTIES -Dsunsecuritykrb5debug=true

Fuumlr die log Logs

1 WLS Administration Console oumlffnen

2 Environment klicken und dann Servers

3 OSB Server auswaumlhlen

4 den Debug-Reiter klicken

5 weblogic aufklappen und dann security

6 atn anhaken

7 Unten oder oben den Enable-Button klicken

Siehe auch References in [1] und [11]

Der Debug-Modus sollte wieder zuruumlckgesetzt werden wenn die Kerberos-Konfiguration funktioniert

239 OWSM konfigurieren

Kerberos Login Modul konfigurieren

Im Enterprise Manager von der WebLogic Doamin die Security Provider Configuration aufrufen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 18: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 16

Das krb5loginmodule auswaumlhlen und den Edit-Button klicken

Hier wird Principal Name http[host]sivdeSIVDE und seine keyTab Datei eingetragen Hier ist

besonders darauf zu achten dass man die key-Namen richtig schreibt und auf Groszlig-

Kleinschreibung achtet (Camel Case) Das kann viel Arbeit ersparen

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 19: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 17

Siehe auch [2]

Key store einrichten

Den Befehl keytool aus der Java-Umgebung starten mit der der OSB gestartet wird

Erstellen eines Zertifikats fuumlr die SOA

[oracleserver bin]$ keytool -genkey -alias serverKey -keyalg RSA -sigalg SHA1withRSA -

dname CN=server C=DE -keypass welcome -keystore tmpserverjks -storepass welcome -validity

3600

Kopieren der serverjks zum configfmwconfig-Verzeichnis der SOA Suite

[oracleserver bin]$ cp tmpserverjks [domain home path]configfmwconfig

Testen der serverjks

[oracleoraclevm90 bin]$ keytool -list -keystore tmpserverjks

Enter keystore password

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 20: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 18

Keystore type JKS

Keystore provider SUN

Your keystore contains 1 entry

serverkey Apr 15 2014 PrivateKeyEntry

Certificate fingerprint (SHA1) 16A95962CBAC863757DDA1CCB0AE2FDF7297E8C4

Import des Java Keystore in den Enterprise Manager

Im Enterprise Manager die SOA-Domaumlne auswaumlhlen und mit rechter Maustaste den Menuumlpunkt

Security Provider Configuration oumlffnen

Auf den Configure-Button in der keystore-Sektion klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 21: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Umsetzung

SIVAG 2014 19

Eintragen von serverjks in das Keystore Path-Feld Eintragen von serverKey in das Key Alias- und

Crypt Alias-Feld Eintragen von welcome in allen Passwort-Feldern

Restart aller Server der Domain

Siehe auch [3]

2310 OSB Web Service mit Policy sichern

Das Projekt waumlhlen und in das Verzeichni wechseln in dem der Proxy Server liegt

customerTaskService_V1 anklicken und auf den Policies-Reiter klicken

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 22: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

GlossarAbkuumlrzungsverzeichnis

SIVAG 2014 20

Die oraclewss11_kerberos_token_with_message_protection_basic128_service_policy hinzufuumlgen

und Konfiguration speichern

Siehe auch [1]

24 Abschlieszligender Test des WCF Client

Den WCF Client ausfuumlhren Er sollte nun den entsprechenden Service aufrufen koumlnnen und die

Ausgaben ausgeben In unserem Fall tat er das und gab eine Liste von Titeln aus

3 GlossarAbkuumlrzungsverzeichnis

BegriffAbkuumlrzung Erklaumlrung

ADS Active Directory Server

AD Active Directory

KDC Key Distribution Center

OSB Oracle Service Bus

OWSM Oracle Web Service Manager

4 Quellen

[1] How To Configure Kerberos SSO Authentication for Linux or Unix Based Webcenter Content

(Doc ID 15432091)

[2] httpbiemondblogspotde201109using-owsm-kerberos-policieshtml

[3] httpbiemondblogspotde201108do-saml-with-owsmhtml

[4] httpdocsoraclecomjavase7docsjreapisecurityjaasspeccomsunsecurityauthmoduleKrb

5LoginModulehtml

[5] Oracle Service Bus 11g Development Cookbook

[6] httpdocsoraclecomcdE28280_01web1111e16098interop_nethtmBIIHEBGC

[7] httptechnetmicrosoftcomen-uslibrarybb742431aspx

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE

Page 23: Interoperabilität zwischen Oracle WSM 11g und Microsoft ... fileInteroperabilität zwischen Oracle WSM 11g und Microsoft WCF/.NET 4.0 Einleitung SIV.AG 2014 2 1 Einleitung 1.1 Ausgangssituation

Interoperabilitaumlt zwischen Oracle WSM 11g und Microsoft WCFNET 40

Quellen

SIVAG 2014 21

[9] httpwwworaclecomtechnetworkjavajavasedownloadsindexhtml

[10] httpsblogsoraclecomblogbypuneethentrysteps_to_configure_weblogic_server

[11] httpdocsoraclecomjavase150docsguidesecurityjgsstutorialsTroubleshootinghtml

[12] httpfusionsecurityblogspotde2011075-minutes-or-less-kerberoshtml

[13] httpwwwroguelynncomwordsexplain-like-im-5-kerberos

[15] httpwwwyoutubecomwatchv=KD2Q-2ToloE