Showing posts with label OSB. Show all posts
Showing posts with label OSB. Show all posts

Wednesday, 23 April 2014

OSB 11g: SAML 1.1 Sender Vouches As CSF User

This blog post explains the steps required to secure an OSB proxy service with an OWSM security policy that requires a SAML 1.1 Sender Vouches token and also how to configure OSB such that this proxy can readily be tested from the OSB test console using am identity defined in the Credential Store Framework.


Pre-Requisites

The following are pre-requisites for following this post:

  • The OSB domain mus have been configured for OWSM and EM
  • An entry in the Credential Store Framework (CSF) for the weblogic username/password

This post explains how to setup the OSB domain to meet these pre-requisites

Applying the Policy

The following procedure will apply the required oracle/wss10_saml_token_service_policy Policy to the Proxy Service. In this instance the instructions are for the OSB console but the same can be readily achieved in the OEPE IDE.

  1. Open the Oracle Service Bus Console in your browser (typically http://localhost:7001/sbconsole
  2. Navigate to the Proxy Service
  3. Ensure that there is a edit session created in the change center
  4. Click the "Polcies" tab
  5. Click the "From OWSM Policy Store" radio button
  6. Click the "Add" button, this will pop-up a "Select OWSM Policy" window.
  7. Select radio button next to the oracle/wss10_saml_token_service_policy policy in the list
  8. Click the "Submit" button which will close the "Select OWSM Policy" pop-up window
  9. Click the "Update" button to save the policy change.
  10. Activate the edit session in the change center

Figure 1. Proxy Service Policies Tab

Figure 2. Choosing the OWSM Policy

Testing as Anonymously

Attempting to test the proxy such that it generates a SAML assertion containing the "weblogic" user as follows:

PropertyOverride Value
subject.precedencetrue
csf-keyweblogic

However this results in an anonymous SAML token being created.

 <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
     <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">  
         <saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="SAML-ItxCC78g5ngixaGfX3cJzg22" IssueInstant="2014-04-22T12:58:19Z" Issuer="www.oracle.com" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">  
             <saml:Conditions NotBefore="2014-04-22T12:58:19Z" NotOnOrAfter="2014-04-22T13:03:19Z"/>  
             <saml:AuthenticationStatement AuthenticationInstant="2014-04-22T12:58:19Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">  
                 <saml:Subject>  
                     <saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">owsm_anonymous_fe24daa0-bc21-4434-9d8e-148833612e92</saml:NameIdentifier>  
                     <saml:SubjectConfirmation>  
                         <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>  
                     </saml:SubjectConfirmation>  
                 </saml:Subject>  
             </saml:AuthenticationStatement>  
         </saml:Assertion>  
     </wsse:Security>  
 </soap:Header>  

Note the use of owsm_anonymous_fe24daa0-bc21-4434-9d8e-148833612e92 as the username. This is because the subject.precedence override property on the client policy was true. The same test can be attempted again but this time with the property set to false to allow the weblogic user from CSF to be used.

PropertyOverride Value
subject.precedencefalse
csf-keyweblogic

As seen in the following screenshot.


Figure 1. Testing as WebLogic user

However this results in the following error:

 An error occurred during web service security outbound request processing [error-code: SecurityHeaderMarshallingError, message-id: <test-message>, proxy: <alsb-test-service>, target: OSBExamplesProject/helloworld/proxy/HelloWorldSAML, operation: SayHello]  
 --- Error message:  
 [Additional Information] If you are using SAML Client Policy and you see 'access denied' error, there could be two possible reasons:  
 (1) You may be trying to propagate the inbound subject on outbound, but there is no inbound subject. SAML Client policy needs a valid current user to create the appropriate SAML token. Make sure you have a valid inbound subject and the value of override 'subject.precedence' is TRUE.  
 (2) You may be trying to use an override to specify a static subject from CSF to generate the SAML token, but you have not granted appropriate permission to the OSB project that contains this business service. You need to add permissions to the system-jazn-data.xml in your domain through Oracle Enterprise Manager - Fusion Middleware Control. Make sure you have a valid CSF entry in override 'csf-key' and the value of override 'subject.precedence' is FALSE.  
 oracle.wsm.security.SecurityException: access denied (oracle.wsm.security.WSIdentityPermission resource=OSBExamplesProject assert)  
 at oracle.wsm.security.policy.scenario.util.PermissionUtil.checkIdentityPermission(PermissionUtil.java:83)  
 at oracle.wsm.security.policy.scenario.processor.WssSamlTokenProcessor.getUserNameWhenSubjectIgnoredAfterCheckingPermission(WssSamlTokenProcessor.java:535)  
 at oracle.wsm.security.policy.scenario.processor.WssSamlTokenProcessor.retrieveUserNameAndAttributesForSamlAssertionSubject(WssSamlTokenProcessor.java:402)  
 at oracle.wsm.security.policy.scenario.processor.WssSamlTokenProcessor.build(WssSamlTokenProcessor.java:231)  
 at oracle.wsm.security.policy.scenario.processor.WssSamlTokenProcessor.build(WssSamlTokenProcessor.java:204)  
 at oracle.wsm.security.policy.scenario.executor.Wss10SamlTokenScenarioExecutor.sendRequest(Wss10SamlTokenScenarioExecutor.java:127)  
 at oracle.wsm.security.policy.scenario.executor.SecurityScenarioExecutor.execute(SecurityScenarioExecutor.java:855)  
 at oracle.wsm.policyengine.impl.runtime.AssertionExecutor.execute(AssertionExecutor.java:41)  
 at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeSimpleAssertion(WSPolicyRuntimeExecutor.java:425)  
 at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeAndAssertion(WSPolicyRuntimeExecutor.java:344)  
 at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.execute(WSPolicyRuntimeExecutor.java:291)  
 at oracle.wsm.policyengine.impl.PolicyExecutionEngine.execute(PolicyExecutionEngine.java:102)  

This error occurs because we have asked the proxy to switch the identity to the user specified in the CSF but the proxy does not have the security permission that allows it to perform this identity switch.

Enabling Identity Switching

In order to be able to use the CSF to specify the user to test as the proxy needs to be able to perform an identity switch. In order for this to occur the proxy, or more accurately the OSB project, must have permission to perform identity switching. This is accomplished by creating a system policy permission that enables identity switching through the Enterprise Manager console (it can also be scripted in WLST if required). The Oracle OSB documentation here is the starting point for the documentation around enabling identity switching.

In order to allow identity switching you must grant the OSB Project containing the OSB project the oracle.wsm.security.WSIdentityPermission permission. The following procedure will enable the permission.

  1. Open the Enterprise Manager console in your browser, typically http://localhost:7001/em
  2. Expand the "WebLogic Domain" tree node and right-click the domain name to bring up the context window
  3. Select "Security/System Polcies" from the context menu
  4. Search for all "codebase" policies
  5. Select the first policy and click the "Create-Like" button
  6. In the "Codebase" field enter: file:${common.components.home}/modules/oracle.wsm.agent.common_11.1.1/wsm-agent-core.jar
  7. In the Permissions list delete any existing permissions
  8. Add a permission by clicking on the "Add" button. Enter the following details into the "Edit Permission" overlay:
    • Permission Class: oracle.wsm.security.WSIdentityPermission
    • Resource Name: resource=<OSB Project Name>
    • Permission Actions: assert
    Where <OSB Project Name> is the name of your OSB project not the path. Click the "OK" button when complete.
  9. Click the "OK" button in "Create System Grant" screen to save the policy permission.

Figure 1. Opening up the System Policies

Figure 2. Searching the existing System Policies (Create Like)

Figure 3. Create System Grant Policy

Figure 4. Create new Permission

Testing as WebLogic User

Now that the OSB project has the correct permissions it should be possible to use CSF to specify the user "weblogic" and get the proxy to generate the correct SAML assertion.

PropertyOverride Value
subject.precedencefalse
csf-keyweblogic

As seen in the following screenshot.


Figure 1. Testing as WebLogic user

Now when the SOAP header is observed through the test console the SAML assertion contains "weblogic" as the username:

 <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
   <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">  
     <saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="SAML-BkdkFqlRMZ0TgRjyBkYMow22" IssueInstant="2014-04-23T09:56:23Z" Issuer="www.oracle.com" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">  
       <saml:Conditions NotBefore="2014-04-23T09:56:23Z" NotOnOrAfter="2014-04-23T10:01:23Z"/>  
       <saml:AuthenticationStatement AuthenticationInstant="2014-04-23T09:56:23Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">  
         <saml:Subject>  
           <saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">weblogic</saml:NameIdentifier>  
           <saml:SubjectConfirmation>  
           <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>  
           </saml:SubjectConfirmation>  
         </saml:Subject>  
       </saml:AuthenticationStatement>  
     </saml:Assertion>  
   </wsse:Security>  
 </soap:Header>  

Success! The OSB proxy can now be tested using a user stored in CSF as the identity asserted in the SAML token.

The example in this blog post uses a policy that does not enforce message integrity or message protection and therefore whilst suitable for testing purposes should not be used for a proper implementation. It is highly recommended that once successful testing has been achieved that a policy that enforces at least message integrity is employed as otherwise the SAML token can be easily spoofed.

Friday, 25 October 2013

OSB 11g: Testing OWSM with UsernameToken Policy (oracle/wss_username_token_service_policy)

One of the quick tests I perform to make sure that I have things correctly configured is to create a test proxy that uses the basic UsernameToken as most Web Service stacks can readily generate and send this token.

OSB 11gR1 PS 7 (11.1.1.7) makes use of OWSM and one of the out of the box policies should enforce the use of UsernameToken, specifically the policy oracle/wss_username_token_service_policy. However there are a few additional steps that may need to be completed before this can be successfully tested. This article attempts to capture all of the steps.

Pre-requisites for OWSM


Firstly in order to use OWSM and its associated policies this must be enabled for the OSB domain. This is not the case by default and requires some additional configuration. Note also that the use of OWSM requires the use of a database.


1. Use the 11.1.1.7 Repository Creation Utility (RCU) to create a Database schema that the OSB domain will use. For OWSM the "Oracle AS Repository Components/AS Common Schemas/Metadata Services" schema is required however the Reporting Provider requires "Oracle AS Repository Components/SOA and BPM Infrastructure/SOA Infrastructure" schema and "Oracle AS Repository Components/SOA and BPM Infrastructure/User Messaging Service" schema
  •   "Oracle AS Repository Components/AS Common Schemas/Metadata Services"



2. The domain must be created or extended with the following product options:
  • Oracle Service Bus OWSM Extension
  • Oracle Enterprise Manager
  • Either Oracle Service Bus for developers, or
  • Oracle Service Bus
  • WebLogic Adavanced Web Services for JAX-RPC Extension (required by OSB)
  • Oracle WSM Policy Manager (recommended by OSB OWSM)
  • Oracle JRF (required by OSB)

3. During the domain creation the OWSM MDS Schema must be configured to use the Database schema that was created with the RCU.


Applying the OWSM Policy


Assuming that the per-requisites for using OWSM have been met then it should be possible to select OWSM policies from the "Security" tab of the Proxy service that should use the policy.



Clicking the "Browse" button will bring up a new window which will list all the policies that have been registered with OWSM. Select the one named "oracle/wss_username_token_service_policy".





Ensure that the Proxy Service has been saved.


Testing the Secured Proxy

Before the OSB test console can be used for the selected "oracle/wss_username_token_service_policy" policy a test credential (in this case a user name and password) must be configured in the Credential Store Framework (CSF). The OSB test console uses CSF to locate the username and password it should supply to the service.

Creating the Credential in CSF


To create the test user credential in the Credential Store Framework (CSF).

1. Open the Enterprise Manager Fusion Middleware Control (http://localhost:7001/em)

2. Navigate to the CSF page by performing the following:
a) Expand the WebLogic Domain.
b) Right Click on the domain and then select "Security/Credentials" from the resulting context menu.




3. Create the required credential.
a) Click the "Create Map" button and create a new map with the name "oracle.wsm.security". It has to be this name precisely and no other! If it already exists then this can be skipped.
b) Click the "Create Key" button and create a new key with the same name as your WebLogic administration user, typically "weblogic". Enter the following details and then click the "Ok" button:
Map = oracle.wsm.security
Type = Password
User Name =  weblogic
Password = ****** (whatever your WebLogic user's password is)




Using the CSF Credential in the Test Console


Now that a user credential has been created in the CSF we can refer to that from the OSB test console when making a call to the secured proxy.

1. Launch the OSB test console. Right-click on the proxy within OEPE and select "Run on Server". This should launch the test console within the IDE.

2. Enter whatever data you require as the payload of the request.

3. Under the "Security" section of the page specify the csf-key property of "weblogic" (or whatever you setup as the key in the CSF).



You should see the Proxy Service testing result page and in the request there should be a UsernameToken that looks something like the following:


            soap:mustUnderstand="1"
        xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
       
                    wsu:Id="UsernameToken-8ApzkQ62AxhaZkMfKepvBw22"
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
           
            weblogic
                            Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">welcome1
               
       

   



Monday, 23 April 2012

OSB 11g: Patching OSB on Windows 7 with OPatch

There are a few hoops that need to be jumped through to patch Oracle Service Bus on Windows 7 with the OPatch utility. Note that the paths given in this post are accurate for the system on which this post was based but may be different on other systems and are dependant on where the Oracle software has been installed.

1. Start a Command window with Administrator priviledges

Administrator priviledges are required in order for the OPatch utility to get the appropriate locks on the files that are used by the OPatch utility. To initiate the Command window with Administrative priviledges right-click the icon that you use to start the Command window and select "Run as administrator" from the resulting context menu. This should launch the Command window.


2. Set the ORACLE_HOME environment variable

The ORACLE_HOME environment variable needs to be set within the context of the new Command window. This should be set to the OSB_HOME, typically this


SET ORACLE_HOME=c:\oracle\middleware\Oracle_OSB1



3. Navigate to the directory in which you have unzipped the patch to be applied.

cd PATH_TO_PATCH_DIR


4. Run the OPatch utility to apply the patch.

The OPatch utility can be used to apply the patch with the command:

opatch apply -jdk JDK_HOME -jre JRE_HOME

The OPatch utility is available from the OSB_HOME. As we have already set the ORACLE_HOME environment variable to this location we can use this variable to launch the OPatch script. You need to provide the JDK and JRE location. The exact value for JDK and JRE locations will vary depending on the system and installation locations.

%ORACLE_HOME%\OPatch\opatch apply -jdk c:\oracle\middleware\jdk160_24 -jre c:\oracle\middleware\jdk160_24\jre


5. Confirm that the patch has been applied

The OPatch utility can be used to list any patches that have been applied with the following command:

opatch lsinventory

Again, we can use the ORACLE_HOME environment variable to launch the OPatch utility

%ORACLE_HOME%\OPatch\opatch lsinventory

Possible Errors and Solutions


If you have followed the process above then you should not see these errors. They are included here for completeness.

Unable to lock Central Inventory

OiiolLogger.addFileHandler:Error while adding file handler - C:\Program Files (x
86)\Oracle\Inventory/logs\OPatch2012-04-23_11-11-28-AM.log
java.io.FileNotFoundException: C:\Program Files (x86)\Oracle\Inventory\logs\OPat
ch2012-04-23_11-11-28-AM.log (Access is denied)
Unable to lock Central Inventory.  OPatch will attempt to re-lock.
Do you want to proceed? [y|n]
n
User Responded with: N
Unable to lock Central Inventory.  Stop trying per user-request?
OPatchSession cannot load inventory for the given Oracle Home C:\oracle\middlewa
re\Oracle_OSB1. Possible causes are:
   No read or write permission to ORACLE_HOME/.patch_storage
   Central Inventory is locked by another OUI instance
   No read permission to Central Inventory
   The lock file exists in ORACLE_HOME/.patch_storage
   The Oracle Home does not exist in Central Inventory

ApplySession failed: ApplySession failed to prepare the system. Unable to lock C
entral Inventory.  Stop trying per user-request?
System intact, OPatch will not attempt to restore the system

OPatch failed with error code = 73


Solution: Run the command window with Administrator priviledges.


The Oracle Home is not OUI based home


If the ORACLE_HOME environment variable is not set then attempting to run the OPatch utility will result in the error message:

The Oracle Home is not OUI based home. Please give proper Oracle Home.

Solution: Set the ORACLE_HOME to be the OSB_HOME (Oracle_OSB1)

Thursday, 29 September 2011

OSB 11g: HTTP Proxy Services And SSL

I was involved in a Oracle Sevice Bus POC recently and came across some interesting behaviour with respect to how it handles proxy services when accessed via SSL that I was not fully expecting. The proxy services behaved as expected when accessed as intended, i.e. when a proxy service that required SSL was accessed via HTTPS or a proxy service the does not require SSL was accessed via HTTP. The behaviour of interest was when the access method was the opposite of the required scheme.

The following summarizes this behaviour and discusses some options to alter the default behaviour.

SSL Proxy SSL Request Expected Actual Notes
False False 200/OK 200/OK As expected
False True 200/OK 500/ERROR Use "WLS-Proxy-SSL=true" HTTP Header to get expected result
True True 200/OK 200/OK As expected
True False 302/Redirect 302/Redirect The redirect will be to from POST to GET with missing payload!

OSB Proxy Service - HTTP Transport Without SSL

If an OSB proxy service has been configured to use the HTTP transport and has NOT been configured to "Require SSL" (transport configuration option) then attempting to access the proxy service with a client over HTTPS then the OSB will respond with a 500 error response. This is designed behaviour of OSB. It may be a requirement that an OSB proxy service should be accessible over BOTH HTTP and HTTPS. In this case the default behaviour of the OSB proxy service can be altered by setting the HTTP header "WLS-Proxy-SSL" to "true". Setting this header will allow the OSB proxy service to process the message with SSL.


OSB Proxy Service - HTTP With SSL Transport

If an OSB proxy service has been configured to use the HTTP transport and has been configured to "Require SSL" (transport configuration option) then when attempting to access the proxy service with a client over plain HTTP then OSB will respond with a 302 redirect response attempting to redirect the client to the endpoint over the HTTPS scheme. Most HTTP clients if configured to follow redirects will (correctly) follow the POST redirect GET pattern and issue a GET request to the HTTPS endpoint. The request to OSB then does not contain any payload. To protect against this there are two methods which should be considered.

If required a proxy service message pipeline can use the $inbound context variable to retrieve the HTTP method. If the HTTP verb is a GET then the proxy service can raise an error, which in turn will generate a SOAP fault. The HTTP method verb can be accessed by the value of:

$inbound/ctx:transport/ctx:request/http:http-method

The error message returned to the client can then be crafted to indicate to the client that they have attempted to use a method which is not supported and provide a hint that their web service stack may have performed the GET.

Additionally it is good practice to perform validation on the incoming request according to the OSB VETO (validate, enhance, transform, operate) pattern. This validation would fail given a missing message paylod, again by default causing a SOAP fault to be returned to the client. In this case the error message returned to the client would indicate a missing payload which may be somewhat misleading unless the client is aware that they or their web service stack performed the GET.

Wednesday, 1 June 2011

OSB 11g Security - Predefined sign.xml Policy and SoapUI

I have been experimenting recently with security in Oracle Service Bus 11g. The aim of this experimentation has been to demonstrate how to apply and test various security policies - especially when OSB is an active intermediary. Whilst experimenting I have been trying to use Eviware's SoapUI as a client rather than relying on the OSB test console.

Whilst experimenting with security I decided to use the predefined WebLogic 9.2 policies to secure a service endpoint on the bus and ran into a bit of an issue when trying to configure SoapUI to adhere to the predefined "sign.xml" policy. If we look at the policy we can see that it requires that the Timestamp, Body and BinarySecurityToken (well actually system headers) to be signed:

<wsp:Policy WL5G3N0:Id="Sign.xml">
<wssp:Integrity>
 <wssp:SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
 <wssp:CanonicalizationAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#"/>
 <wssp:Target>
  <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1"/>
  <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
   wls:SystemHeaders()
  </wssp:MessageParts>
 </wssp:Target>
 <wssp:Target>
  <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1"/>
  <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
   wls:SecurityHeader(wsu:Timestamp)
  </wssp:MessageParts>
 </wssp:Target>
 <wssp:Target>
  <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1"/>
  <wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
 wsp:Body()
  </wssp:MessageParts>
 </wssp:Target>
 <wssp:SupportedTokens>
  <wssp:SecurityToken IncludeInMessage="true" TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
   <wssp:TokenIssuer>CN=CACERT,OU=FOR TESTING ONLY...</wssp:TokenIssuer>
  </wssp:SecurityToken>
 </wssp:SupportedTokens>
</wssp:Integrity>
<wssp:MessageAge Age="60"/>
</wsp:Policy>
I am specifically not going to cover how to configure SoapUI for Web Service Security (WSS) profiles in this blog post as I want to focus on the issue I encountered and its solution, rather than making this post too verbose. I may add another post if there is demand and I have time but it is reasonably well covered in the SoapUI documentation.

The particular issue that I encountered was configuring SoapUI (I was using version 3.6.1) to sign all the items to match the predefined policy described above (specifically the BinarySecurityToken element).

Leaving the BinarySecurityToken unsigned gave the following SOAP fault error message:

"Could not validate signature using any of the supported token types"

However attempting to specify the Binary Security Token directly in the parts configuration resulted in SoapUI raising the following error and not performing any signing:

General security error (WSEncryptBody/WSSignEnvelope: Element to encrypt/sign not found: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd, BinarySecurityToken)], see error log for details


The solution was hinted at in this post on the OTN forums. Using Axis2 there is a "special"Token keyword which instructs the stack to encrypt the security token. This seems to be what is being used by SoapUI as if this is added as though it is an element to the configuration then this then works.

In the outgoing WSS configuration I needed the following WSS entries:

  • Timestamp

  • Signature

    • Keystore: <keystore.jks>

    • Alias: <alias>

    • Password: <password>

    • Key Identifier Type: Binary Security Token

    • Signature Algorithm: http://www.w3.org/2009/09/xmldsig#rsa-sha1

    • Signature Canonicalization: http://www.w3.org/2001/10/xml-exc-c14n#

    • Parts

      • Name: Body, Namespace: http://schemas.xmlsoap.org/soap/envelope/

      • Name: Timestamp, Namespace: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd

      • Name: Token



Screenshot of SoapUI with the correct outbound WSS configuration applied.

I hope this helps anyone who has been fighting with using SoapUI with the predefined WLS 9.2 Sign policy in either Oracle Service Bus or straight WLS web services.