Skip Headers
Oracle® Fusion Middleware Administrator's Guide for Oracle WebCenter
11g Release 1 (11.1.1)
E12405-02
  Go To Documentation Library
Library
Go To Product List
Product
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
 

14 Managing Security

This chapter describes how to configure your WebCenter application to handle authentication and authorization, and other aspects of application security.

This chapter includes the following sections:

Audience

The content of this chapter is intended for Fusion Middleware administrators (users granted the Admin role through the Oracle WebLogic Server Administration Console). Users with the Monitor or Operator roles can view security information but cannot make changes. See also, Section 1.8, "Understanding Administrative Operations, Roles, and Tools".

14.1 Introduction to WebCenter Application Security

The recommended security model for Oracle WebCenter is based on Oracle ADF Security, which implements the Java Authentication and Authorization Service (JAAS) model. For more information about Oracle ADF Security, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

Figure 14-1 shows the relationship between a WebCenter application deployment and its services, servers, portlets, portlet producers, its identity, credential and policy stores, and Oracle Enterprise Manager.

Figure 14-1 Basic WebCenter Application Architecture

Description of Figure 14-1 follows
Description of "Figure 14-1 Basic WebCenter Application Architecture"

The diagram in Figure 14-2 shows a basic WebCenter application after deployment with its back-end server connections.

Figure 14-2 WebCenter Application Architecture with Back-end Server Connections

Description of Figure 14-2 follows
Description of "Figure 14-2 WebCenter Application Architecture with Back-end Server Connections"

The diagram in Figure 14-3 shows the security layers for the WebCenter Spaces application.

Figure 14-3 WebCenter Spaces Security Layers

Description of Figure 14-3 follows
Description of "Figure 14-3 WebCenter Spaces Security Layers"

The security layers for a WebCenter application could have the same four bottom layers (WebCenter Security Framework, ADF Security, OPSS, and WebLogic Server Security) depending on how the application was structured. The application layer will, of course, depend on the implementation.

WebCenter Spaces Application Security

WebCenter Spaces provides support for:

WebCenter Security Framework

WebCenter Security Framework provides support for:

ADF Security

ADF Security provides support for:

Oracle Platform Security Services (OPSS)

OPSS provides support for:

WebLogic Server Security

WebLogic Server Security provides support for:

14.2 Default Security Configuration

This section describes the security configuration that is in place when custom WebCenter applications and WebCenter Spaces are deployed, and the tasks that need to be carried out after deployment:

14.2.1 Administrator Accounts

Custom WebCenter applications do not contribute any pre-seeded accounts, and therefore rely on the administrator account (weblogic by default) that is set up when Fusion Middleware is installed. Use this administrator account to log into Fusion Middleware Control and set up new accounts.

Although WebCenter Spaces does not contribute any pre-seeded accounts, there are certain pre-seeded grants that are given to the default administrator account (weblogic) for the WebCenter Spaces application. If your installation does not use weblogic as the account name for the administrator role, you will need to configure one or more other users for this role as described in Section 14.3.5.1, "Granting the WebCenter Spaces Administrator Role Using Fusion Middleware Control".

14.2.2 Application Roles and Enterprise Roles in WebCenter Spaces

Application roles and permissions are defined within WebCenter Spaces and are stored in an application-specific stripe of the policy store. Consequently, WebCenter Spaces roles apply only to WebCenter Spaces; WebCenter Spaces roles and permissions do not extend to other applications.

Application roles differ from roles that appear in the identity store portion of the embedded LDAP server or in roles defined by the enterprise LDAP provider. Application roles are specific to an application and defined in the application policy store.

Enterprise roles, which are stored in the enterprise identity store, apply at the enterprise level. That is, the roles and permissions that you or a system administrator define within the enterprise identity store do not imply permissions within WebCenter Spaces.

Within WebCenter Spaces you can add users defined in the corporate identity store and assign them roles and permissions. You can also add roles defined in the enterprise identity store and assign permissions to those roles for WebCenter Spaces.


Note:

When Groups (enterprise roles) are assigned to a group space role in WebCenter Spaces, the users that belong to that group (rather than the enterprise role) are added individually to the group space role. Consequently, be careful not to add groups with inordinately large amounts of users as performance during authentication may be affected.

14.2.3 Default Identity and Policy Stores

By default, WebCenter applications are configured to use a file-based embedded LDAP identity store to store application-level user IDs, and a file-based LDAP policy store to store policy grants.

Although secure, the embedded LDAP identity store is not a "production-class" store and should be replaced with an external LDAP-based identity store such as Oracle Internet Directory for enterprise production environments.

The default file-based policy store can only be used for single-node WebCenter Spaces configurations. For multi-node configurations, you must reassociate the policy and credential store with an external LDAP-based store (such as Oracle Internet Directory) as described in Section 14.4, "Configuring the Policy and Credential Store to Use OID".

The policy store can be configured to use Oracle Internet Directory 11gR1 and 10.1.4.3, and OVD 11gR1 with the Local Store Adapter (LSA).

The identity store can be configured to use the following LDAP servers:

  • Oracle Internet Directory (OID) 11gR1 and 10.1.4.3

  • Oracle Virtual Directory (OVD) 11gR1 and 10.1.4

  • Sun iPlanet version 4.1.3

  • Active Directory shipped as part of Windows 2000

  • Open LDAP version 2.0.7

  • Novell NDS version 8.5.1

For more information on reconfiguring the identity and policy stores, see Section 14.3, "Configuring the Identity Store" and Section 14.4, "Configuring the Policy and Credential Store to Use OID".


Note:

The Oracle Content Server and Oracle WebCenter Discussions back-ends can only be configured to use an external LDAP-based identity store. Consequently, the Documents service, which relies on the Oracle Content Server back-end, requires that you reassociate the identity store with on of the external LDAP servers listed above. It is also recommended that WebCenter Spaces and the Oracle Content Server share the same LDAP server.

14.2.3.1 File-based Credential Store

The out-of-the-box credential store is wallet-based (that is, file-based) and is contained in the file cwallet.sso. The location of this file is specified in the Oracle Platform Security configuration file jps-config.xml. When you reassociate the policy store to an LDAP directory, the application credentials are automatically migrated to the same LDAP directory as the policy store.

14.2.4 Default Policy Store Permissions and Grants

The ADF Security permissions model supports both permission-based and role-based authorization. These two types of authorization are discussed in the following sections:

14.2.4.1 Permission-based Authorization

Use permission-based authorization for services, such as the Lists service, where access control is implemented within the WebCenter application using Oracle Platform Security Services (OPSS). WebCenter Spaces provides extensive user and role management tools with which you can create application roles, and define what permissions should be granted to those roles. For information on managing users and roles in WebCenter Spaces, see Managing Application Roles and Permissions.

14.2.4.2 Role-mapping Based Authorization

Services that need to access "remote" (back-end) resources require role-mapping based authorization. For example, for the Discussions service, role mapping is required when the users of a WebCenter application (mapping to one or more group space roles) need to be mapped to another set of roles on the Oracle WebCenter Discussions Server (or Oracle Content Server).

The following points should be considered when provisioning role-mapping based authorization in WebCenter Spaces:

14.2.4.3 Default Policy Store Permissions for WebCenter Spaces

Table 14-1 shows the pre-seeded roles in the WebCenter policy store (WebCenter Seeded Roles). The Community of Interest Role Template and Group Space Project Role Template are policy entries that are kept in the corresponding group space templates. When a new group space is created, the roles and corresponding permissions are added to the policy store at runtime.

Table 14-1 WebCenter Role Permissions

Permission grants to roles in WebCenter WebCenter- admin Spaces- User Public- User Community of Interest Community of Interest Community of Interest Group Space Project Group Space Project Group Space Project
Role Mapping


moderator participant viewer moderator participant viewer

WebCenterPermission(Application)










manage









configure









view







SpacePermission (Group Spaces)










manage







configure







view



create








PagePermission(Page)










manage







create






delete







edit







personalize






view



ListPermission*(Lists)










manage








create






delete






edit






update





view




EventPermission(Events)










manage








create






delete






edit






view




NotePermission(Notes)










manage








create






delete






update






view




Discussions










manage (Forum Moderator Role)







edit (Forum Writer Role)






view (Forum Reader Role)






Document Library roles (Role id/Enum name/short description)**(Documents)










1/SUPER_ADMINISTRATOR (manage)










2/DELETE (delete)








3/WRITE (create)






4/READ (view)




Announcements










manage








edit






view






Links










manage







delete






create






ProfilePermission










manage









edit









* For the Lists service, "Edit" means the ability to edit a definition as well as content, and "update" means the ability to edit content. "Manage", for lists and elsewhere in this table, means the ability to make configuration and security changes.

** The Documents service uses integer identifiers for roles. The role mapping information in the policy store therefore refers to the corresponding service role's integer identifier. Each service role has an associated short and long description. The WebCenter security provisioning screens show the corresponding description instead of IDs.

Legend Description
Shows an explicitly granted permission, action, or role mapping.
Shows an implied permission as a result of an explicitly granted permission. The permission implementation itself does the implication.

14.2.4.4 Default Code-based Grants

Some WebCenter application and framework code calls APIs from the security platform that are secured with Permission checks. The WebCenter code needs to be granted the appropriate permissions to invoke the OPSS APIs, and itself should authorize access to the various operations exposed in the User Interface. For example, the permission to access policy store and grant or revoke permissions (PolicyStoreAccessPermission), CRUD on application roles, is granted to the "webcenter" application out of the box. The WebCenter code must then pre-authorize access to the various operations, using the above WebCenter-specific permissions, and then invoke the OPSS APIs as privileged actions.

14.2.5 Post-deployment Security Configuration Tasks

After deploying your WebCenter application, consider the following configuration tasks for your site:

  • SSL

    Secure Sockets Layer (SSL) provides additional security for connections between WebCenter applications or components by providing an additional authentication layer, and by encrypting the data exchanged. For connections between applications or components where the data exchanges is sensitive, consider securing the connection with SSL. For a list of the connections that can and should be protected with SSL in a production environment, see Section 14.6, "Configuring WebCenter Applications and Components to Use SSL".


    Note:

    Using SSL is computationally intensive and adds overhead to a connection. SSL should therefore not be used where it is not required, and is best reserved for production environments.

  • SSO

    Single Sign-On (SSO) allows users to log in once across WebCenter applications and components rather than having to log in for each sub-application (for example, for accessing a wiki page in WebCenter Spaces). Users do not have to maintain a separate user ID and password for each application or component that they access. However, you can still configure a variety of authentication methods, so that more sensitive applications can be protected using more stringent methods. WebCenter supports four single sign-on solutions: Oracle Access Manager (OAM), Oracle Single Sign-on (OSSO), a SAML-based single sign-on solution for Oracle WebCenter applications only, and an SSO solution for Microsoft clients, using Windows authentication based on the Simple and Protected Negotiate (SPNEGO) mechanism and the Kerberos protocol. For a discussion of these solutions and an overview of single sign-on, see Section 14.7, "Configuring a WebCenter Application to Use Single Sign-On".

  • Reassociate the identity store to use an external LDAP

    By default, WebCenter applications use an embedded LDAP for its identity store. Although secure, the out-of-the-box embedded LDAP may not scale appropriately for large enterprise production environments. For instructions on how to configure the identity store to use an external LDAP such as Oracle Internet Directory (OID), see Section 14.3, "Configuring the Identity Store".


    Note:

    Oracle Content Server and Oracle WebCenter Discussions Server must use an external LDAP identity store rather the default embedded LDAP identity store. Consequently, if you plan on using the Documents or Discussions services in your WebCenter application, you must reconfigure the identity store to use an external LDAP. For more information on reconfiguring the identity store, see Section 14.3, "Configuring the Identity Store".

  • Reassociate the policy store to use an external LDAP

    By default, WebCenter uses a file-based system-jazn-data.xml policy store to store policy grants. You should consider using an LDAP-based policy store. For information on how to configure the policy store to use LDAP, see Section 14.4, "Configuring the Policy and Credential Store to Use OID".

  • WS-Security

    Although the use of WS-Security adds complexity to the configuration and management of a WebCenter application and the set of producers it consumes, it helps ensures the security of the information being published by the WebCenter application. Adding WS-Security provides authentication for the consumer, and message-level security.

    For information on how to configure WS-Security for WebCenter applications and components, see Section 14.8, "Configuring WS-Security".

14.3 Configuring the Identity Store

This section describes how to reassociate the identity store with an external LDAP rather than the default embedded identity store. It also provides additional configuration information for configuring services such as the discussions server, and contains the following subsections:

Note that for custom WebCenter applications, the steps for Granting the WebCenter Administrator Role to a WebCenter Spaces User and Configuring the Discussions Server to Share the Identity Store LDAP Server are not required. For more information about the identity store, see the Oracle Fusion Middleware Security Guide.


Caution:

Before reassociating the identity store, be sure to back up the relevant configuration files:
  • config.xml

  • jps-config.xml

  • system-jazn-data.xml

As a precaution, you should also back up the boot.properties file for the domain Administration Server for the domain.


14.3.1 Reassociating the Identity Store with an External LDAP

This section describes how to configure the identity store to use an external LDAP server, such as Oracle Internet Directory, rather than the default embedded LDAP.

To reassociate the identity store:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane (see Figure 14-12), click Security Realms.

    Figure 14-4 Domain Structure Pane

    Description of Figure 14-4 follows
    Description of "Figure 14-4 Domain Structure Pane"

    The Summary of Security Realms pane displays (see Figure 14-13).

    Figure 14-5 Summary of Security Realms pane

    Description of Figure 14-5 follows
    Description of "Figure 14-5 Summary of Security Realms pane"

  3. In the Name column, click the realm for which you want to reassociate the identity store.

    The Realm Settings pane displays (see Figure 14-6).

    Figure 14-6 Realm Settings Pane

    Description of Figure 14-6 follows
    Description of "Figure 14-6 Realm Settings Pane"

  4. Open the Providers tab.

    The Providers Settings pane displays (see Figure 14-7).

    Figure 14-7 Settings Pane - Providers

    Description of Figure 14-7 follows
    Description of "Figure 14-7 Settings Pane - Providers"

  5. Click New to add a new provider.

    The Create a New Authentication Provider pane displays (see Figure 14-8).

    Figure 14-8 Create a New Authentication Provider Pane

    Description of Figure 14-8 follows
    Description of "Figure 14-8 Create a New Authentication Provider Pane"

  6. Enter a name for the provider (for example OIDAuthenticator for a provider that will authenticate the user for the Oracle Internet Directory).

  7. Select the authenticator appropriate for your LDAP directory from the list of authenticators.

    Be sure to select the authenticator associated with the LDAP you are configuring rather than choosing the generic DefaultAuthenticator. For example, for OID select OracleInternetDirectoryAuthenticator, or for iPlanet select IPlanetAuthenticator. Move the authenticator to the top of the authenticator list and set its Control Flag (and any other authenticator Control Flags in the list), to SUFFICIENT.

    See Section 14.3.4, "Moving the Administrator Account to an External LDAP Server" for information about how to configure the default administrator account.


    Note:

    If more than one authenticator is configured, WebCenter Spaces will work only with the users in the identity store mapped by the first authenticator.

    The identity store access APIs use the first REQUIRED authenticator in the list. If there are no REQUIRED authenticators, it uses the first SUFFICIENT one. Therefore, for stacked authenticators, be sure to list the authenticator mapping the primary identity store to be used with the identity store access APIs first, and set all other authenticator control flags to SUFFICIENT.


  8. Click OK to save your settings.

    The Settings pane displays with the new authentication provider (see Figure 14-9).

    Figure 14-9 Settings Pane - Authentication Providers

    Description of Figure 14-9 follows
    Description of "Figure 14-9 Settings Pane - Authentication Providers"

  9. In the list of Authentication Providers, click the newly created provider.

    The Settings Pane for the new authentication provider displays (see Figure 14-10).

    Figure 14-10 Settings Pane for Authenticator

    Description of Figure 14-10 follows
    Description of "Figure 14-10 Settings Pane for Authenticator"

  10. Set the Control Flag to SUFFICIENT.

    Setting the Control Flag to SUFFICIENT indicates that if a user can be authenticated successfully by this authenticator, then the authentication provider should accept that authentication and should not invoke any additional authenticators.


    Note:

    If the authentication fails, it will fall through to the next authenticator in the chain. Therefore, be sure all subsequent authenticators also have their control flag set to SUFFICIENT.

  11. Click Save to save this setting.

  12. Open the Provider Specific tab to enter the details for the LDAP server.

    The Provider Specific pane displays (see Figure 14-11).

    Figure 14-11 Provider Specific Pane

    Description of Figure 14-11 follows
    Description of "Figure 14-11 Provider Specific Pane"

  13. Enter the details specific to your LDAP server.

    Parameter Value Description
    Host:
    The LDAP server's server ID (for example, <ldap_host>example.com)
    Port:
    The LDAP server's port number (for example, 3060)
    Principal:
    The LDAP user DN used to connect to the LDAP server (for example, cn=orcladmin)
    Credential:
    The password used to connect to the LDAP server
    User Base DN:
    Specify the DN under which your Users start (for example, cn=users,dc=example,dc=com)
    Group Base DN:
    Specify the DN that points to your Groups node (for example, cn=groups,dc=example,dc=com)
    Use Retrieved User Name as Principal Checked Must be turned on
    All Users Filter: (&(uid=*)(objectclass=person)) Search to find all users under the User Base DN
    User From Name Filter: (&(uid=%u)(objectclass=person))
    User Name Attribute: uid

    If you modify a username attribute to something other than the default set for the LDAP server in the authenticator, you must also edit the jps-config.xml file to correspond to these values. Specifically, the username.attr and user.login.attr properties (highlighted below) must be added for user lookups to function correctly:

    <!-- JPS WLS LDAP Identity Store Service Instance -->
    <serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
    <property name="idstore.config.provider" value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
    <property name="username.attr" value="uid"/>
    <property name="user.login.attr" value="uid"/>
    </serviceInstance>
    
  14. Click Save.

  15. Return to the Providers tab and reorder the providers so that the new authentication provider is on top, followed by any other authenticators with the DefaultAuthenticator placed at the end of the list.

    All should have their Control Flags set to SUFFICIENT so that subsequent authenticators can authenticate identities that fall through from the new provider all the way through to the DefaultAuthenticator (which is used only for the default file-based embedded LDAP). For example, logins such as the default administrator account are not typically created in the LDAP directory, but still need to be authenticated to start up the server. Unless identities are allowed to fall through to the DefaultAuthenticator, the default administrator account will not be authenticated. For more information about the DefaultAuthenticator and the default administrator account, see Section 14.3.4, "Moving the Administrator Account to an External LDAP Server".

  16. Restart the Administration Server and the managed server for the changes to take effect.

14.3.2 Tuning the Identity Store for Performance

For a production environment, we recommended that you add the following configuration entry to the jps-config.xml file for best performance:

<serviceInstance provider="idstore.ldap.provider" name="idstore.ldap">
<property value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider" name="idstore.config.provider"/>
<property name="CONNECTION_POOL_CLASS" value="oracle.security.idm.providers.stdldap.JNDIPool"/>
</serviceInstance>

14.3.3 Adding Users to the Identity Store

You can add users to the embedded LDAP or an external LDAP using the WLS Administration Console. For Oracle Internet Directory, although users are typically managed using ODSM (described in the section on "Managing Directory Entries" in the Oracle Fusion Middleware Administrator's Guide for Oracle Internet Directory), you can also use the WLS Administration Console as described below.


Note:

If you are planning to reassociate your identity store with an external LDAP, carry out that step (as described in Section 14.3.1, "Reassociating the Identity Store with an External LDAP") prior to adding users to avoid having to migrate the users from the embedded LDAP to the newly configured external LDAP.

For WebCenter Spaces, users who self-register are added directly to the identity store. For more information about self-registration, see Section 19.4, "Allowing Self-Registration".

You can also add users directly into the embedded LDAP identity store using an LDIF file and LDAP commands. Using an LDIF file lets you add additional attributes not available through the WLS Administration Console.


Note:

Adding users to the identity store is typically a system administrator task and may not be a task for which application-level administrators have the required permissions.

This section includes the following subsections:

14.3.3.1 Adding Users Using the WLS Administration Console

To add users to the embedded LDAP or to an external LDAP from the WLS Administration Console:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane (see Figure 14-12), click Security Realms.

    Figure 14-12 Domain Structure Pane

    Description of Figure 14-12 follows
    Description of "Figure 14-12 Domain Structure Pane"

    The Summary of Security Realms pane displays (see Figure 14-13).

    Figure 14-13 Summary of Security Realms pane

    Description of Figure 14-13 follows
    Description of "Figure 14-13 Summary of Security Realms pane"

  3. In the Name column, click the realm to which you want to add users.

    The Realm Settings pane displays (see Figure 14-14).

    Figure 14-14 Realm Settings Pane

    Description of Figure 14-14 follows
    Description of "Figure 14-14 Realm Settings Pane"

  4. Click the Users and Groups tab to display the list of current users.

  5. Click New to add a new user.

    Figure 14-15 Create a New User Page

    Description of Figure 14-15 follows
    Description of "Figure 14-15 Create a New User Page"

  6. On the Create a New User page, enter the new user login name in the Name field.

    User names are case sensitive and must be unique. Do not use commas, tabs or any other characters in the following comma-separated list:

    < >, #, |, &, ?, ( ), { }

  7. In the Description field, enter a description for the user (for example, the user's full name).

  8. From the Provider drop-down menu, select the Authentication provider for the user.

    If multiple WebLogic Authentication providers are configured in the security realm, they will appear in the list. For the embedded LDAP, choose DefaultAuthenticator; for Oracle Internet Directory, choose OracleInternetDirectoryAuthenticator. For other external LDAPs, choose the authenticator associated with that LDAP.

  9. In the Password field, enter a password for the user.

    The minimum password length for a user defined in the WebLogic Authentication provider is 8 characters (note that other LDAP providers may have different requirements for the password length). Do not use user name/password combinations such as weblogic/weblogic in a production environment.

  10. Re-enter the password in the Confirm Password field.

  11. Click OK to save your changes and add the user.

    The user should now appear in the list of users.

14.3.3.2 Adding Users to the Embedded LDAP Using an LDIF File

To add users to the embedded LDAP using an LDIF file you need to carry out the following tasks:

The WLS Administration Console does not provide support for adding any additional attributes. However, the embedded LDAP server is in fact, a proper LDAP server, and so you can use LDAP commands to add or modify users. You can also search the directory, which can be useful when exporting and importing user accounts.

Enable External LDAP Access

When WLS is installed, the LDAP access credential is set as a randomized value and encrypted in the config.xml file. To enable external LDAP access, you need to reset the access credential for the embedded LDAP.

To reset the access credential for the embedded LDAP:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane (see Figure 14-16), click on wc_domain.

    Figure 14-16 Domain Structure Pane (wc_domain)

    Description of Figure 14-16 follows
    Description of "Figure 14-16 Domain Structure Pane (wc_domain)"

  3. In the Settings pane for wc_domain, click the Security tab, and then click the Embedded LDAP tab.

    The Settings Pane for wc_domain displays the embedded LDAP settings (see Figure 14-17).

    Figure 14-17 Settings Pane with Embedded LDAP Settings

    Description of Figure 14-17 follows
    Description of "Figure 14-17 Settings Pane with Embedded LDAP Settings"

  4. Enter a new password in the Credential field, and re-enter it in the Confirm Credential field.

  5. Click Save to save your settings.

  6. Restart the WebLogic server.

    After this, you are ready to access the LDAP server with the following values:

    • the DN value for admin access is "cn=Admin"

    • the password is the value you entered in the Credential field

    • the port is the same as the admin port, which by default is 7001

Create an LDIF File

You can create an LDIF file with any text editor, and can include any attributes appropriate for the embedded LDAP directory. The objectclasses that are supported by default in the embedded LDAP server for WLS are the following:

  • person

  • inetOrgPerson

  • organizationalPerson

  • wlsUser

In order to interact successfully with the embedded LDAP server, you should understand the default layout of the directory information tree (DIT). The default layout in the embedded LDAP directory is shown in Figure 14-18.

Figure 14-18 Embedded LDAP Directory Information Tree

Description of Figure 14-18 follows
Description of "Figure 14-18 Embedded LDAP Directory Information Tree"


Note:

The naming attribute for the user entry in the embedded LDAP directory tree is "uid". This is different from the default configuration for Oracle Internet Directory (OID), where the naming attribute is "cn". Also, the location of the users in this tree is "ou=people,ou=myrealm,dc=wc_domain".

The following example shows an LDIF file with the attributes that are displayed in the WebCenter Spaces Profile Details screen:

dn: uid=john.doe,ou=people,ou=myrealm,dc=wc_domain
description: John Doe
cn: john.doe
uid: john.doe
sn: Doe
objectclass: wlsUser
objectclass: organizationalperson
objectclass: inetOrgPerson
objectclass: person
objectclass: top
userpassword: welcome1
displayName: John Doe
employeeNumber: 12345
employeeType: Regular
givenName: John
homePhone: 650-555-1212
mail: john.doe@example.com
title: Manager
manager: uid=mary.jones,ou=people,ou=myrealm,dc=wc_domain
preferredLanguage: en
departmentNumber: tools
facsimiletelephonenumber: 650-555-1200
mobile: 650-500-1200
pager: 650-400-1200
telephoneNumber: 650-506-1212
postaladdress: 200 Oracle Parkway
l: Redwood Shores
homepostaladdress: 123 Main St., Anytown 12345

To create a file with multiple user entries, just replicate the above lines as many times as required, with a blank line between entries.


Note:

Note that the WebCenter Spaces Profile Details screen also lists some attributes that are only available in an Oracle Internet Directory. These cannot be entered when using the embedded LDAP identity store. These include the following attributes, from the orclUserV2 objectclass:
  • orclTimeZone

  • orclDateOfBirth

  • maidenName


Add the Users

The example below uses the ldappadd command, a part of the LDAP command line utilities provided with the Oracle Internet Directory server. For more information about using the ldappadd command, see "Oracle Internet Directory Data Management Tools" in the Oracle Fusion Middleware User Reference for Oracle Identity Management.

ldapadd -h weblogichost.example.com -p 7001 -D cn=Admin -w password -v -f newuser.ldif
 
add description:
        John Doe
add cn:
        john.doe
add uid:
        john.doe
add sn:
        Doe
add objectclass:
        wlsUser
        organizationalperson
        inetOrgPerson
        person
        top
add userpassword:
        password
add displayname:
        John Doe
add employeenumber:
        12345
add employeetype:
        Regular
add givenname:
        John
add homephone:
        650-555-1212
add mail:
        john.doe@example.com
add title:
        Manager
add manager:
        uid=mary.jones,ou=people,ou=myrealm,dc=wc_domain
add preferredlanguage:
        en
add departmentnumber:
        tools
add facsimiletelephonenumber:
        650-555-1200
add mobile:
        650-500-1200
add pager:
        650-400-1200
add telephonenumber:
        650-506-1212
add postaladdress:
        200 Oracle Parkway
add l:
        Redwood Shores
add homepostaladdress:
        123 Main St., Anytown 12345
adding new entry uid=john.doe,ou=people,ou=myrealm,dc=wc_domain
modify complete

14.3.4 Moving the Administrator Account to an External LDAP Server

When configuring the domain to use an external LDAP server, you can also optionally move the administrator account (weblogic by default) to the LDAP server.

If the administrator account, or any other appropriate user in LDAP, is in an LDAP group called "Administrators", then this account should be sufficient to manage the server, and the DefaultAuthenticator provider can be removed from the list of authentication providers. In this case, all users and including the administrator account are looked up from the external LDAP.

If you cannot create the weblogic (default) user in the external LDAP directory, there are two options. You can:

  • Keep the DefaultAuthenticator provider and use the weblogic account with the local embedded LDAP server in WLS to start and stop servers and do other administrator operations from the WLS Administration Console. If you keep the DefaultAuthenticator, make sure that the control flag for the DefaultAuthentication provider is set to SUFFICIENT.

  • Remove the DefaultAuthenticator and make sure that any valid user account used for administrator operations, such as starting and stopping servers, is included in an "Administrators" group in Oracle Internet Directory or other named group that contains the list of users that are allowed to manage your domain. If a name other than "Administrators" is used, then you need to update the group name in the definition of the WLS Global Administrator role. By default, this is defined as membership in the enterprise group called "Administrators".

Changing the Administrator Group Name

You can change the group name to any other valid enterprise role in your LDAP server that contains users authorized to manage the domain. This lets you delegate the administration of specific domains in your enterprise. You can create various administration groups in the directory and have the corresponding domains be configured to use the appropriate group for defining its administrators.

The following example LDIF file creates an administrative group in Oracle Internet Directory:

dn: cn=wc_domain_Admin,cn=groups,dc=example,dc=com
cn: wc_domain_Admin
uniquemember: cn=joe.admin,cn=users,dc=example,dc=com
owner: cn=orcladmin
displayname: WebLogic Administrators Group
description: WebLogic Administrators Group
objectclass: orclgroup
objectclass: groupofuniquenames

Once this group is created, you need to update the role definition for the WLS Global Admin role in WLS:

To update the role definition for the WLS Global Admin role in WLS

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane (see Figure 14-19), click Security Realms.

    Figure 14-19 Domain Structure Pane

    Description of Figure 14-19 follows
    Description of "Figure 14-19 Domain Structure Pane"

    The Summary of Security Realms pane displays (see Figure 14-20).

    Figure 14-20 Summary of Security Realms pane

    Description of Figure 14-20 follows
    Description of "Figure 14-20 Summary of Security Realms pane"

  3. In the Name column, click the realm for which you want to reassociate the identity store.

    The Realm Settings pane displays (see Figure 14-21).

    Figure 14-21 Realm Settings Pane

    Description of Figure 14-21 follows
    Description of "Figure 14-21 Realm Settings Pane"

  4. Open the Roles and Policies tab, and then the Realm Roles subtab.

    The Realm Roles settings pane displays (see Figure 14-22).

    Figure 14-22 Realm Roles Settings Pane

    Description of Figure 14-22 follows
    Description of "Figure 14-22 Realm Roles Settings Pane"

  5. Expand the Global Roles node, and then the Roles node.

  6. Click View Role Conditions for the Admin role.

    The Edit Global Role page displays (see Figure 14-23).

    Figure 14-23 Edit Global Role Page

    Description of Figure 14-23 follows
    Description of "Figure 14-23 Edit Global Role Page"

    By default, the Administrators group in Oracle Internet Directory (or other configured identity store) defines who has the administrator role in WebLogic Server.

  7. Click Add Conditions to add a different group name.

    The Edit Global Role - Predicate List page displays (see Figure 14-24).

    Figure 14-24 Edit Global Role Page - Predicate List

    Description of Figure 14-24 follows
    Description of "Figure 14-24 Edit Global Role Page - Predicate List"

  8. Select Group from the Predicate List list and click Next.

    The Edit Global Role - Arguments page displays (see Figure 14-25).

    Figure 14-25 Edit Global Role Page - Arguments

    Description of Figure 14-25 follows
    Description of "Figure 14-25 Edit Global Role Page - Arguments"

  9. Enter the name for the new administrator group and click Add.

  10. Select the pre-existing administrator group and click Remove to delete it leaving the new one you've selected in its place.

  11. Click Finish to save your changes.

    After making this change, any members of the new group specified will be authorized to administer WebLogic Server.

14.3.5 Granting the WebCenter Administrator Role to a WebCenter Spaces User

WebCenter Spaces only recognizes users in the identity store that is mapped by the first authenticator. Since the WebCenter Spaces Administrator account is initially created only in the embedded LDAP server, if an external LDAP such as Oracle Internet Directory is configured as the primary authenticator for WebCenter Spaces, you must also create a user in that LDAP and grant that user the WebCenter Spaces Administrator role. For more information, see "Granting Administrator Role to a Non-Default User" in the Oracle Fusion Middleware Installation Guide for Oracle WebCenter.

You can grant a user the WebCenter Administrator role using Fusion Middleware Control or WLST as shown below in the sections on:

14.3.5.1 Granting the WebCenter Spaces Administrator Role Using Fusion Middleware Control

This section describes how to grant the WebCenter Spaces administrator role to a user account other than the default "weblogic" account.

To grant the WebCenter Spaces Administrator role using Fusion Middleware Control:

  1. Log into Fusion Middleware Control and select the WebLogic domain for WebCenter Spaces.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. From the WebLogic Domain menu, select Security -> Application Roles.

    The Application Roles page displays (see Figure 14-26).

    Figure 14-26 Application Roles Page

    Description of Figure 14-26 follows
    Description of "Figure 14-26 Application Roles Page"

  3. Search for the Administration application role by selecting the Application name for WebCenter Spaces (WLS_Spaces/webcenter), and providing the following internal identifier used by WebCenter Spaces as the Role Name:

    s8bba98ff_4cbb_40b8_beee_296c916a23ed#-#Administrator
    

    The search should return s8bba98ff_4cbb_40b8_beee_296c916a23ed#-#Administrator, which is the administrator role identifier.

  4. Click the administrator role name (s8bba98ff_4cbb_40b8_beee_296c916a23ed#-#Administrator) in the Role Name column.

    The Edit Application Role page displays (see Figure 14-27).

    Figure 14-27 Edit Application Role Page

    Description of Figure 14-27 follows
    Description of "Figure 14-27 Edit Application Role Page"

  5. Click Add User.

    The Add User pop-up displays (see Figure 14-28).

    Figure 14-28 Add User Pop-up

    Description of Figure 14-28 follows
    Description of "Figure 14-28 Add User Pop-up"

  6. Use the Search function to search for the user to assign the Administrator role to.

  7. Use the arrow keys to move the user from the Available Users column to the Selected Users column, and click OK.

  8. On the Edit Application Role page, click OK.

  9. After granting the WebCenter Spaces Administrator role to new accounts, remove this role from accounts that no longer need it or should no longer have it using the WLST revokeAppRole command described below. For example, if WebCenter Spaces was installed with a different administrator user name than "weblogic", the administrator role should be given to that user and should be revoked from the default "weblogic".

    revokeAppRole(appStripe="webcenter", appRoleName="s8bba98ff_4cbb_40b8_beee_296c916a23ed#-#Administrator", 
    principalClass="weblogic.security.principal.WLSUserImpl", principalName="weblogic")
    
  10. Restart the WLS_Spaces managed server.

    When you login to WebCenter Spaces, the Administration link should appear and you should be able to perform all administrator operations. See also, Section 17.1, "Logging into WebCenter Spaces as an Administrator".

14.3.5.2 Granting the WebCenter Spaces Administrator Role Using WLST

To grant the WebCenter Administrator role using WLST:

  1. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands".

  2. Connect to the WebCenter Spaces Administration Server for the target domain with the following command:

    connect('user_name','password, 'host_id:port')
    

    Where:

    • user_name is the name of the user account with which to access the Administration Server (for example, weblogic)

    • password is the password with which to access the Administration Server

    • host_id is the host ID of the Administration Server

    • port is the port number of the Administration Server (for example, 7001).

  3. Grant the WebCenter Spaces administrator application role to the user in Oracle Internet Directory using the grantAppRole command as shown below:

    grantAppRole(appStripe="webcenter", appRoleName="s8bba98ff_4cbb_40b8_beee_296c916a23ed#-#Administrator",
    principalClass="weblogic.security.principal.WLSUserImpl", principalName="wc_admin")
    

    Where wc_admin is the name of the administrator account to create.

  4. To test the new account, log into WebCenter Spaces using the new account name.

    The Administration link should appear, and you should be able to perform all administrator operations. See also, Section 17.1, "Logging into WebCenter Spaces as an Administrator".

  5. After granting the WebCenter Spaces Administrator role to new accounts, remove this role from accounts that no longer need it or should no longer have it. For example, if WebCenter Spaces was installed with a different administrator user name than "weblogic", the administrator role should be given to that user and should be revoked from the default "weblogic".

14.3.6 Configuring the Discussions Server to Share the Identity Store LDAP Server

After installing Oracle Discussions, it must also be configured to use the same Identity Store as WebCenter Spaces. The Discussions server can be configured to use either the default embedded LDAP or an external LDAP server (such as Oracle Internet Directory Server) depending on the identity store used by WebCenter Spaces. The steps below describe how to configure Oracle WebCenter Discussions Server to share the same external LDAP server as the WebCenter Spaces identity store. For information on how to configure the Oracle WebCenter Discussions Server to use the same embedded LDAP server as the WebCenter Spaces identity store, see Section 14.3.7, "Configuring the Discussions Server to Share the Identity Store Embedded LDAP Server".

To configure the discussions server to share the same external LDAP server as the identity store:

  1. Locate the jive_startup.xml file in your WebCenter installation (it can be found in MW_HOME/user_projects/domains/<my_domain>/config/fmwconfig/servers/WLS_Services/owc_discussions_11.1.1.1.0), and make a backup copy.

  2. Change the line with the content:

    <setup>true</setup>
    

    to

    <setup>false</setup>
    
  3. Save the file and restart the WLS_Services managed server.

  4. Connect to the Oracle WebCenter Discussions Server administration console at:

    http://host:port/owc_discussions
    

    where host and port are the host ID and port number of the WLS_Services managed server.

  5. On the Database Settings page, choose JNDI Datasource, and click Continue.

  6. On the Datasource Settings page, enter jdbc/OWC_DiscussionsDS as the JNDI Datasource Name, and click Continue.

  7. On the User, Group and Authentication Systems page, choose LDAP and click Continue.

  8. On the LDAP User System page, enter the LDAP values of the identity store and click Continue.

  9. On the Other Settings page, check and correct the SMTP settings as appropriate for your WebCenter configuration and click Continue.

  10. On the LDAP User Data Storage Mode page, specify a user in LDAP that should be set as the discussions server administrator (typically orcladmin), and click Continue.

    The is the same administrator account as the one specified on the discussion connection. See also, Section 11.1, "Setting Up Connections for the Discussions and Announcements Services".

  11. Restart the WLS_Services managed server.

14.3.7 Configuring the Discussions Server to Share the Identity Store Embedded LDAP Server

After installing Oracle Discussions, it must also be configured to use the same Identity Store as WebCenter Spaces. The Discussions server can be configured to use either the default embedded LDAP or an external LDAP server (such as Oracle Internet Directory Server) depending on the identity store used by WebCenter Spaces. The steps below describe how to configure the Oracle WebCenter Discussions Server to use the embedded LDAP server used by the WebCenter Spaces identity store. For information on how to configure the Oracle WebCenter Discussions Server to share the same external LDAP server as the WebCenter Spaces identity store, see Section 14.3.6, "Configuring the Discussions Server to Share the Identity Store LDAP Server".

Follow the steps below to configure the Discussions server to use the embedded LDAP server:

  1. To interact with the embedded LDAP server, you first need to set up the credential for external access as the admin user ("cn=Admin") as described under Enable External LDAP Access in the section "Adding Users to the Embedded LDAP Using an LDIF File" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter.

  2. Continue by adding users to the embedded LDAP server using an LDIF file as described under Create an LDIF File and Add the Users in the same section. Be sure to add an email address (for example, mail: john.doe@example.com) for each user added.


    Note:

    Although you can add users to an LDAP server using the WLS Administration Console, Oracle Discussions requires that every user created has an associated email address, which can only be done through an LDIF file.

  3. Stop the Discussions server (WLS_Services by default).

  4. Locate the jive_startup.xml file in your WebCenter installation (it can be found in MW_HOME/user_projects/domains/<my_domain>/config/fmwconfig/servers/WLS_Services/owc_discussions_11.1.1.1.0), and make a backup copy.

  5. Change the line with the content:

    <setup>true</setup>
    

    to

    <setup>false</setup>
    
  6. Save the file and start the Discussions server (WLS_Services by default).

  7. Log in to the Discussions Server Administration Console at:

    http://host:port/owc_discussions/admin
    

    where host and port are the host ID and port number of the WLS_Services managed server (the default port is 8890).

  8. On the Installation Checklist page, click Continue.

  9. On the Database Settings page, choose JNDI Datasource, and click Continue.

  10. Enter jdbc/OWC_DiscussionsDS in the JNDI Datasource Name field and click Continue.

  11. For User, Group and Authentication Systems, enter the values for the embedded LDAP system and click Continue.

  12. For Other Settings, check that your email server settings are correct and click Continue.

  13. For Admin Account Setup, enter the user name of the user for the Discussions (Jive) administrator.

  14. Click Continue.

    You can now log in to Oracle Discussions with any user available in the LDAP server at:

    http://<host>:8890/owc_discussions

    You can log in to the Oracle Discussions Admin Console at:

    http://<host>:8890/owc_discussions/admin

14.3.8 Configuring the Oracle Content Server to Share the Identity Store LDAP Server

Oracle Content Server (OCS) must be configured to use the same identity store LDAP server as Oracle WebCenter Spaces. For more information on configuring the OCS, see the section "Configuring the Identity Store Service" in the Oracle Fusion Middleware Security Guide.

14.4 Configuring the Policy and Credential Store to Use OID

Reassociating the policy and credential store with Oracle Internet Directory (OID) consists of creating a root node in the LDAP directory, and then reassociating the policy and credential store with the OID server using Fusion Middleware Control, or from the command line using WLST as described in the following sections:

14.4.1 Creating a root Node

The first step in reassociating the policy and credential store with OID, is to create an LDIF file in the LDAP directory and add a root node under which all data is added. After creating the file and adding the node, continue by reassociating the store using either Fusion Middleware Control or WLST.

To create a root node:

  1. Create a root node by adding the following to an LDIF file (for example, root.ldif) in the LDAP directory:

    dn: cn=root_webcenter_xxxx
    cn: root_webcenter_xxxx
    objectclass: top
    objectclass: orclcontainer
    

    Where xxxx is a string (for example, the server name) that uniquely identifies the node.

  2. Add this node to the directory by running the following LDAP command from your LDAP installation directory:

    OID_HOME/as_1/bin/ldapadd -h ldap_host_name -p ldap_port -D cn=orcladmin -w password -v -f root.ldif
    

    where:

    • OID_HOME is the directory in which LDAP is installed

    • ldap_host_name is the host name of the OID server

    • ldap_port is the OID server port number

    • password is the password with which to access the OID server

    Note that each root container must have a unique name.

14.4.2 Reassociating the Credential and Policy Store Using Fusion Middleware Control

When initially installed, WebCenter Spaces and Enterprise Manager are already associated and deployed in the same domain.

Before reassociating the policy and credential store with Oracle Internet Directory, you must first have created the root node as described in Section 14.4.1, "Creating a root Node."

To reassociate the policy and credential store with the OID server:

  1. Open Fusion Middleware Control and log into your target instance.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, click your domain.

  3. From the WebLogic Domain menu, select Security and then Security Provider Configuration.

    The Security Provider Configuration page displays (see Figure 14-29).

    Figure 14-29 Security Provider Configuration Page

    Description of Figure 14-29 follows
    Description of "Figure 14-29 Security Provider Configuration Page"

  4. On the Security Provider Configuration page, click Configure... to add the new Oracle Internet Directory provider.

    The Set Security Provider page displays (see Figure 14-30).

    Figure 14-30 Set Security Provider Page

    Description of Figure 14-30 follows
    Description of "Figure 14-30 Set Security Provider Page"

  5. Under LDAP Server Details, select Oracle Internet Directory as the LDAP Server Type.

  6. In the Host and Port fields, enter the host name and the LDAP port for Oracle Internet Directory.

  7. Set the User DN field to cn=orcladmin, and enter the associated password in the Password field.

  8. Under JPS Root Node Details, set the JPS Root DN field to the one you added to the root.ldif file (for example, cn=root_webcenter_abcd99). Be sure to include the cn=.

  9. Click OK to begin the reassociation. Restart the WebLogic server when prompted after migration.

14.4.3 Reassociating the Credential and Policy Store Using WLST

Before reassociating the policy and credential store with Oracle Internet Directory, you must first have created the root node as described in Section 14.4.1, "Creating a root Node".

  1. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands".

  2. Connect to the Administration Server for the target domain with the following command:

    connect('username>,'password', 'host_id:port')
    

    where:

    • username is the administrator account name used to access the Administration Server (for example, weblogic)

    • password is the administrator password used to access the Administration Server (for example, weblogic)

    • host_id is the server ID of the Administration Server (for example, example.com)

    • port is the port number of the Administration Server (for example, 7001).

  3. Reassociate the policy and credential store using the reassociateSecurityStore command:

    reassociateSecurityStore(domain="domain_name", admin="admin_name", password="password", 
    ldapurl="ldap_uri", servertype="ldap_srvr_type", jpsroot="root_webcenter_xxxx")
    

    Where:

    • domain_name specifies the domain name where reassociation takes place.

    • admin_name specifies the administrator's user name on the LDAP server. The format is cn=usrName.

    • password specifies the password associated with the user specified for the argument admin.

    • ldap_uri specifies the URI of the LDAP server. The format is ldap://host:port, if you are using a default port, or ldaps://host:port, if you are using a secure LDAP port. The secure port must have been configured to handle an anonymous SSL connection, and it is distinct from the default (non-secure) port.

    • ldap_srvr_type specifies the kind of the target LDAP server. Valid types are OID (Oracle Internet Directory) or OVD (Oracle Virtual Directory).

    • root_webcenter_xxxx specifies the root node in the target LDAP repository under which all data is migrated. Be sure to include the cn=. The format is cn=nodeName.

    All arguments are required. For example:

    reassociateSecurityStore(domain="myDomain", admin="cn=adminName", password="myPass", ldapurl="ldaps://myhost.example.com:3060", servertype="OID", jpsroot="cn=testNode")
    

14.5 Managing Users and Roles

WebCenter Spaces provides a Users tab from which an administrator can add users defined in the identity store, and assign roles to those users within WebCenter Spaces. For information about managing users and user roles for WebCenter Spaces, see Chapter 19, "Managing Users and Roles for WebCenter Spaces ".


Caution:

The "Allow Password Change" property, which specifies whether users can change their passwords within WebCenter Spaces, should be carefully controlled for corporate identity stores. WebCenter Spaces administrators can set this property from the Profile Management Settings page in WebCenter Spaces. For more information, see Section 18.9, "Managing Personal Profiles".

The user interface and management tools with which to manage users and user roles for custom WebCenter applications depends on what has been implemented for the particular deployment. For more information about role-mapping for ADF-security based WebCenter applications, see the section What You May Need to Know About Application Roles and Enterprise Roles in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

14.6 Configuring WebCenter Applications and Components to Use SSL

This section includes the following sub-sections:


Note:

The following can use WS-Security with message protection, and consequently have no hard requirement for SSL:
  • BPEL servers - Worklist service

  • WSRP Producers

  • Oracle WebLogic Communication Services (OWLCS) - IMP service

  • Microsoft Live Communication Server (LCS) - IMP service

  • Oracle WebCenter Discussions - Discussions and Announcements


14.6.1 Securing the Browser Connection to WebCenter Spaces with SSL

Securing the browser connection to WebCenter Spaces with SSL consists of the following steps:

14.6.1.1 Creating the Custom Keystore

The first step is to generate a custom keystore for WebCenter Spaces.

To create a custom keystore:

  1. Go to JAVA_HOME/bin/ and open a command prompt.

  2. Using keytool, generate a key pair:

    keytool -genkeypair -keyalg RSA -dname "dname" -alias alias-keypass key_password -keystore keystore -storepass keystore_password-validity days_valid
    

    Where:

    • dname is the DN (distinguished name) to use (for example, cn=customidentity,dc=example,dc=com)

    • alias is the alias to use (for example, webcenter_wls)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, webcenter_wls.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 360).


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key is incompatible with Oracle WebServices Security Manager requirements.

  3. Export the certificate containing the public key so WebCenter Spaces clients can import it into their trust store:

    keytool -exportcert -v -alias alias -keystore keystore-storepass keystore_password -rfc -file certificate_file
    

    Where:

    • alias is the WebCenter Spaces alias (for example, webcenter_wls)

    • keystore is the keystore name, (for example, webcenter_wls.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • certificate_file is the file name for the certificate to export the key to (for example, webcenter_wls.cer)

  4. Determine the trust store to use:

    Since you are using a self-signed certificate, you must update it as a trusted certificate in the server trust store. To do this, you must determine your trust store by going to the server:

    1. Log into the WLS Administration Console.

    2. In the Domain Structure pane, expand Environments and click Servers.

    3. In the list of servers, click WLS_Spaces.

    4. Open the Configuration tab, and the Keystores subtab.

      The Keystores Settings pane displays (see Figure 14-31).

      Figure 14-31 Keystores Settings Pane

      Description of Figure 14-31 follows
      Description of "Figure 14-31 Keystores Settings Pane"

    5. Note down the location of the server in the Java Standard Trust Keystore field (shown in Figure 14-31).

      Note that the cacerts file may be "read only", in which case you will need to change it's permissions so that it's writable.

  5. Import the self-signed certificate generated above in this trust store:

    keytool -importcert -trustcacerts -alias alias -file certificate_file-keystore cacerts -storepass changeit
    

    Where:

    • alias is the WebCenter Spaces alias (for example, webcenter_wls)

    • certificate_file is the file name for the certificate to export the key to (for example, webcenter_wls.cer)

14.6.1.2 Configuring the Identity and Trust Keystores

The next step is to configure the identity and trust keystores on the WebCenter Spaces server.

To configure the identity and trust keystores:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, expand Environment and click Servers.

    The Summary of Servers pane displays (see Figure 14-32).

    Figure 14-32 Summary of Servers Pane

    Description of Figure 14-32 follows
    Description of "Figure 14-32 Summary of Servers Pane"

  3. Click the WebCenter Spaces server (WLS_Spaces) to configure the identity and trust keystores.

    The Settings pane for the WebCenter Spaces server displays (see Figure 14-33).

    Figure 14-33 Settings Pane for WebCenter Spaces Server

    Description of Figure 14-33 follows
    Description of "Figure 14-33 Settings Pane for WebCenter Spaces Server"

  4. Open the Configuration tab, and then the Keystores subtab.

    The Keystores pane displays (see Figure 14-34).

    Figure 14-34 Keystores Pane

    Description of Figure 14-34 follows
    Description of "Figure 14-34 Keystores Pane"

  5. For Keystores, select Custom Identity and click Save.

  6. Enter the path of the custom identity store in the Java Standard Trust Keystore field.

  7. Enter jks as the Java Standard Trust Keystore Type.

  8. Enter and confirm the Java Standard Trust Keystore.

  9. Click Save to save your entries.

  10. Open the SSL tab.

  11. Enter the Private Key Alias.

  12. Enter the Private Key Passphrase.

  13. Click Save to save your entries.

14.6.1.3 Configuring the SSL Connection

To configure the SSL connection:

  1. On the Settings pane for the WebCenter Spaces server, open the Configuration tab and then the General subtab.

    The General Configuration pane displays (see Figure 14-35).

    Figure 14-35 General Configuration Pane

    Description of Figure 14-35 follows
    Description of "Figure 14-35 General Configuration Pane"

  2. Check SSL Listen Port Enabled.

  3. Enter an SSL Listen Port number and click Save.

  4. Open the SSL subtab and expand the Advanced options at the bottom of the page.

    The SSL advanced options are displayed (see Figure 14-36).

    Figure 14-36 Advanced SSL Configuration Settings

    Description of Figure 14-36 follows
    Description of "Figure 14-36 Advanced SSL Configuration Settings"

  5. Set the Two Way Client Cert Behavior option to Client Certs Not Requested and click Save.

  6. Open the Control tab.

    The Control Settings pane displays (see Figure 14-37).

    Figure 14-37 Control Settings Pane

    Description of Figure 14-37 follows
    Description of "Figure 14-37 Control Settings Pane"

  7. Click Restart SSL.

  8. Restart the WebLogic Server and open the SSL WebCenter Spaces URL.

  9. Accept the certificate for the session and log in.

14.6.2 Securing the Browser Connection to a Custom WebCenter Application with SSL

Securing the browser connection to a custom WebCenter application uses the same configuration steps as for securing the browser connection to WebCenter Spaces. The only difference is that the configuration occurs on the managed server that is hosting the custom WebCenter application deployment rather than the WLS_Spaces server. For more information, see Section 14.6.1, "Securing the Browser Connection to WebCenter Spaces with SSL".

14.6.3 Securing the Connection from Oracle HTTP Server to WebCenter Spaces with SSL

Securing the connection between the Oracle HTTP Server (OHS) and WebCenter Spaces consists of these steps:

Configure the Identity and Trust Keystores

For instructions on how to configure the Identity and Trust keystores, see Section 14.6.1, "Securing the Browser Connection to WebCenter Spaces with SSL".

Configure the SSL Connection

  1. On the Settings pane for the WebCenter Spaces server, open the Configuration tab and then the General subtab.

    The General Configuration pane displays (see Figure 14-38).

    Figure 14-38 General Configuration Pane

    Description of Figure 14-38 follows
    Description of "Figure 14-38 General Configuration Pane"

  2. Check SSL Listen Port Enabled.

  3. Enter an SSL Listen Port number and click Save.

  4. On the Configuration tab, open the SSL subtab, and then expand the Advanced options at the bottom of the page.

    The SSL advanced options are displayed (see Figure 14-39).

    Figure 14-39 Advanced SSL Configuration Settings

    Description of Figure 14-39 follows
    Description of "Figure 14-39 Advanced SSL Configuration Settings"

  5. Set the Two Way Client Cert Behavior option to Client Certs Not Requested and click Save.

  6. Open the Control tab on the Settings pane, and select the Start/Stop subtab.

  7. Click Restart SSL.

  8. Open the SSL WebCenter Spaces URL.

  9. Accept the certificate for the session and log in.

  10. In the WSL Administration Console, click View Changes and Restarts on the Change Center pane and restart any affected servers or components.

Install OHS

  1. Install the WebTier.

    • Do not select WebCache; only select the HTTP Server.

    • Uncheck the checkbox to associate a WebLogic server during install.

  2. Navigate to the OHS_HOME/instances/instance1/bin directory and start OHS using the following command:

    ./opmnctl startall
    
  3. Check the status of OHS using the following command:

    ./opmnctl status -l
    

Wire WebCenter Spaces Ports to OHS

  1. Open the file OHS_HOME/instances/instance1/config/OHS/ohs1/mod_wl.conf

  2. Add the following entry to mod_wl.conf to make WebCenter Spaces work with OHS:

    <IfModule mod_weblogic.c>
            WebLogicHost host_id
            WebLogicPort port
            Debug OFF
            WLLogFile /tmp/ohs.log
            MatchExpression *.jsp
         </IfModule>
     
         <Location />
           SetHandler weblogic-handler
         </Location>
    

    Replacing host_id and port with the WebCenter Spaces server ID and port number.

  3. Open the file OHS_HOME/instances/instance1/config/OHS/ohs1/mod_ssl.conf.

  4. Add the following entry to mod_ssl.conf to make WebCenter Spaces run on the OHS SSL port:

    <IfModule mod_weblogic.c>
            WebLogicHost host_id
            WebLogicPort port
            WLLogFile /tmp/ohs_ssl.log
            Debug OFF
            DebugConfigInfo ON
            SecureProxy ON
            MatchExpression *.jsp
            WlSSLWallet SSL_wallet
          </IfModule>
     
         <Location />
           SetHandler weblogic-handler
         </Location>
    

    Replacing host_id and port with the WebCenter SSL server ID and port number, and SSL_wallet with the path to the WebLogic SSL wallet (for example, OHS_HOME>/oracle/product/11.1.1/as_1/instances/instance1/config/OHS/ohs1/keystores/default).

  5. Go to OHS_HOME>/instances/instance1/bin and start and check the status of OHS using the following commands:

    ./opmnctl stopall
     
    ./opmnctl startall
    ./opmnctl status -l
    

Configure the SSL Certificates

  1. For OHS to trust WebCenter's certificate, the WLS_Spaces certificate must be imported into the OHS trust store. Export the certificate from the WLS_Spaces identity keystore:

    keytool -exportcert -v -alias webcenter_wls -keystore webcenter_wls.jks -storepass <password> -rfc -file webcenter_wls.cer
    
  2. Import the certificate into the wallet on the OHS side using orapki:

    orapki wallet add -wallet . -trusted_cert -cert webcenter_wls.cer -auto_login_only
    
  3. For WebCenter to trust OHS certificates, export the user certificate from OHS wallet and import it as a trusted certificate in the WebLogic trust store.

    orapki wallet export -wallet . -cert cert.txt  -dn 'CN=\"Self-signed Certificate for ohs1 \",OU=EXAMPLEORGUNIT,O=EXAMPLEORG,L=EXAMPLELOCATION,ST=CA,C=US'
    
  4. Import the above certificate into the WLS_Spaces managed server trust store available in /scratch/wcwlsinstall/0408/wlshome/jrockit_160_05_R27.6.2-20/jre/lib/security/cacerts:

    keytool -file cert.txt -importcert -trustcacerts -alias ohs_cert -keystore cacerts -storepass changeit
    
  5. Restart OHS and the WLS_Spaces server.

    You should now be able to access the SSL OHS, as well as the non-SSL OHS.

14.6.4 Securing the Browser Connection to the Wiki Service with SSL

As with securing the browser connection to WebCenter Spaces, securing the Wiki service connection with SSL consists of two steps:

Configure the identity and trust keystores

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, expand Environment and click Servers.

    The Summary of Servers pane displays (see Figure 14-40).

    Figure 14-40 Summary of Servers Pane

    Description of Figure 14-40 follows
    Description of "Figure 14-40 Summary of Servers Pane"

  3. Click the Services server (WLS_Services) to configure the identity and trust keystores.

    The Settings pane for the services server displays (see Figure 14-41).

    Figure 14-41 Settings Pane for Services Server

    Description of Figure 14-41 follows
    Description of "Figure 14-41 Settings Pane for Services Server"

  4. Open the Configuration tab, and then the Keystores subtab.

    The Keystores pane displays (see Figure 14-42).

    Figure 14-42 Keystores Pane

    Description of Figure 14-42 follows
    Description of "Figure 14-42 Keystores Pane"

  5. For Keystores, select Custom Identity and Java Standard Trust and click Save.

  6. Open the Control tab.

    The Control Settings pane displays (see Figure 14-43).

    Figure 14-43 Control Settings Pane

    Description of Figure 14-43 follows
    Description of "Figure 14-43 Control Settings Pane"

  7. Click Restart SSL.

Configure the SSL connection

  1. On the Settings pane for the Services server, open the Configuration tab and then the General subtab.

    The General Configuration pane displays (see Figure 14-44).

    Figure 14-44 General Configuration Pane

    Description of Figure 14-44 follows
    Description of "Figure 14-44 General Configuration Pane"

  2. Check SSL Listen Port Enabled.

  3. Enter an SSL Listen Port number and click Save.

  4. On the Configuration tab, open the SSL subtab, and then expand the Advanced options at the bottom of the page.

    The SSL advanced options are displayed (see Figure 14-45).

    Figure 14-45 Advanced SSL Configuration Settings

    Description of Figure 14-45 follows
    Description of "Figure 14-45 Advanced SSL Configuration Settings"

  5. Set the Two Way Client Cert Behavior option to Client Certs Not Requested and click Save.

  6. Restart the WLS_Services server and open the SSL Wiki URL at https://host:port/owc_wiki.

  7. Accept the certificate for the session and log in.

14.6.5 Securing the WebCenter Spaces Connection to Portlet Producers with SSL

Securing the connection to WSRP and PDK-Java portlet producers with SSL consists of the following steps:

Configure the identity and trust keystores

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, expand Environment and click Servers.

    The Summary of Servers pane displays (see Figure 14-46).

    Figure 14-46 Summary of Servers Pane

    Description of Figure 14-46 follows
    Description of "Figure 14-46 Summary of Servers Pane"

  3. Click the Portlet server (for example, WLS_Portlet) to configure the identity and trust keystores.

    The Settings pane for the Portlet server displays (see Figure 14-47).

    Figure 14-47 Settings Pane for Portlet Server

    Description of Figure 14-47 follows
    Description of "Figure 14-47 Settings Pane for Portlet Server"

  4. Open the Configuration tab, and then the Keystores subtab.

    The Keystores pane displays (see Figure 14-48).

    Figure 14-48 Keystores Pane

    Description of Figure 14-48 follows
    Description of "Figure 14-48 Keystores Pane"

  5. For Keystores, select Custom Identity and Java Standard Trust and click Save.

  6. Open the Control tab.

    The Control Settings pane displays (see Figure 14-49).

    Figure 14-49 Control Settings Pane

    Description of Figure 14-49 follows
    Description of "Figure 14-49 Control Settings Pane"

  7. Click Restart SSL.

Configure the SSL connection

  1. In the Domain Structure pane, expand Environment and select Servers.

  2. Click on the Portlet server (for example, WLS_Portlet) for which you want to configure SSL.

  3. Select Configuration.

  4. Check SSL Listen Port Enable.

  5. Enter a listen port number.

  6. Select Configuration > SSL, and then open the Advanced options at the bottom of the page.

  7. Select the Two Way Client Cert Behavior attribute and choose the Client Certs Not Requested option.

  8. Click Save.

  9. Restart the WebLogic Server and open the SSL URL.

  10. Accept the certificate for the session and log in.

Register the SSL-enabled WSRP producer and run the portlets

  1. Configure the WebCenter Spaces managed server to use the Custom Identity and Java Standard Trust store. This also uses the certificates in javahome/jre/lib/security/cacerts.

  2. Download the certificate of the HTTPS producer URL and save it in .PEM format.

    Use Firefox 3.0 or later to download the certificate directly to .PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  3. Import the certificate into the cacerts file in JAVAHOME/jre/lib/security using the following keytool command:

    keytool -importcert -alias portlet_cert -file HOME/portlet_pem -keystore ./cacerts -storepass password
    

    Where:

    • portlet_cert is the portlet certificate alias

    • portlet_pem is the portlet certificate file (for example, portlet_cert.pem)

    • password is the keystore password

  4. Restart WLS_Spaces.

  5. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands"

  6. Connect to the Administration Server for the target domain with the following command:

    connect('user_name','password, 'host_id:port')
    

    Where:

    • user_name is the name of the user account with which to access the WLS_Spaces server (for example, weblogic)

    • password is the password with which to access the WLS_Spaces server

    • host_id is the host ID of the Administration Server

    • port is the port number of the Administration Server (for example, 7001).

  7. Run the registerWSRPProducer WLST command to register the producer:

    registerWSRPProducer('webcenter', 'sslwsrpprod','producer_wsdl)
    

    Where:

    • sslwsrpprod is the name of the SSL-enabled WSRP producer

    • producer_wsdl is the WSDL URL of the SSL-enabled WSRP producer

    For example:

    registerWSRPProducer('webcenter', 'sslwsrpprod','https://example.oracle.com:7004/richtextportlet/portlets/wsrp2?WSDL')
    
  8. Navigate to the HTTP or HTTPS WebCenter URL.

  9. Create a page and go to the Portlets link.

  10. Go to the registered WSRP producer.

  11. Add the portlet to the page.

  12. Go to the view mode of the page and check that the WSRP portlet renders correctly.

Register the SSL-enabled PDK-Java Producer and run the portlets

  1. Configure the WebCenter Spaces managed server to use the Demo Identity and Trust store. This also uses the certificates in javahome/jre/lib/security/cacerts.

  2. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  3. On the Domain Structure pane, expand Environment and click Servers.

    The Summary of Servers pane displays (see Figure 14-50).

    Figure 14-50 Summary of Servers Pane

    Description of Figure 14-50 follows
    Description of "Figure 14-50 Summary of Servers Pane"

  4. Click WLS_Spaces in the servers list.

    The Settings pane displays (see Figure 14-51).

    Figure 14-51 Settings Pane (WLS_Spaces Server)

    Description of Figure 14-51 follows
    Description of "Figure 14-51 Settings Pane (WLS_Spaces Server)"

  5. Open the Configuration tab and select the Keystores tab.

  6. Make sure that the value for Demo Identity and Demo Trust is either jks or left blank.

  7. Click Save.

  8. Download the certificate of the HTTPS producer URL and save it in .PEM format.

    Use Firefox 3.0 or later to download the certificate directly to .PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  9. Import the certificate into the cacerts file in JAVAHOME/jre/lib/security using the following keytool command:

    keytool -importcert HOME/portlet_cert.pem -keystore ./cacerts -storepass changeit
    
  10. Restart WLS_Spaces.

  11. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands".

  12. Connect to the Administration Server for the target domain with the following command:

    connect('user_name','password, 'host_id:port')
    

    where:

    • user_name is the name of the user account with which to access the WLS_Spaces server (for example, weblogic)

    • password is the password with which to access the WLS_Spaces server

    • host_id is the host ID of the Administration Server

    • port is the port number of the Administration Server (for example, 7001).

  13. Run the registerPDKJavaProducer command:

    registerPDKJavaProducer('webcenter', 'ssljpdkprod', 'producer_wsdl')
    

    Where:

    • ssljpdkprod is the name of the SSL-enabled PDK-Java producer

    • producer_wsdl is the WSDL URL of the SSL-enabled PDK-Java producer

    This will enable one-way SSL for a Web producer. That is, only the server side (web producer) uses certificates. The Web producer code also uses a shared key feature (discussed later) for client authentication.

  14. Go to the HTTP or HTTPS WebCenter URL.

  15. Create a page and go to the Portlets link.

  16. Go to the registered PDK-Java producer.

  17. Add the portlet to the page.

  18. Go to the view mode of the page and check that the PDK-Java portlet renders correctly.

14.6.6 Securing the WebCenter Spaces Connection to the LDAP Identity Store

To configure the LDAP server port for SSL, refer to the appropriate administration documentation for the LDAP server. For Oracle Internet Directory (OID), an SSL port is installed by default. To use this port for LDAP communication from WebCenter, the identity store should be configured for authentication with the appropriate authenticator. See Section 14.3, "Configuring the Identity Store" for the steps to do this for the identity store.


Note:

When entering the Provider Specific information, be sure to specify an SSL port and to check the SSL Enabled checkbox.

If the CA is unknown to the Oracle WebLogic server, complete the two additional steps described in the following subsections:

For more information, see "Setting Up a One- Way SSL Connection" in the Oracle Fusion Middleware Security Guide.

14.6.6.1 Exporting the OID Certificate Authority (CA)

If the CA is unknown to the Oracle WebLogic server (the command prompts the user to enter the keystore password) you will need to use orapki to create a certificate. The following example shows how to use this command to create the certificate serverTrust.cert:

orapki wallet export -wallet CA -dn "CN=myCA" -cert oid_server_trust.cert

14.6.6.2 Setting Up the WebLogic Server

If the CA is unknown to the Oracle WebLogic server, use the utility keytool to import the Oracle Internet Directory's CA into the WebLogic trust store. The following example shows how to use keytool to import the file oid_server_trust.cert into the server trust store cacerts:

keytool -importcert -v -trustcacerts -alias oid_server_trust -file oid_server_trust.cer -keystore cacerts -storepass changeit

14.6.7 Securing the WebCenter Spaces Connection to OCS with SSL

For instructions on how to configure Oracle Content Server (OCS) for SSL, see Section 10.2.1.2.3, "Configuring Secure Socket Layer (SSL)". For instructions on adding a trusted certificate to the WebCenter Spaces trust store, see the section on importing the certificate into the trust store in Section 14.6.1.2, "Configuring the Identity and Trust Keystores".

14.6.8 Securing the WebCenter Spaces Connection to IMAP and SMTP with SSL

Before associating you need to first import the certificate into the trust store. Follow the steps below to put the certificate in the trust store and configure WebCenter Spaces to use the trust store.

To secure the WebCenter Spaces connection to IMAP and SMTP with SSL:

  1. Open a browser and connect to your IMAP server with the following command:

    https://imapserver:ssl_port
    

    For example:

    https:mailserver.example:993 
    
  2. Place your cursor on the page, right-click, and select Properties.

  3. Click Certificate.

  4. In the popup window, click the Details tab and click Copy to File...

    Be sure to use the DER encoded binary(X.509) format and copy to a file.

  5. Convert the .DER format certificate to .PEM format.

    Use Firefox 3.0 or later to download the certificate directly to.PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  6. Import the certificate into the cacerts in the jdk_home using the following command:

    keytool -import -alias imap_cer -file cert_file.cer -keystore cacerts -storepass changeit
    

    Where cert_file is the name of the certificate file you downloaded.

  7. Register the mail server connection as described in Section 11.3.3, "Registering Mail Servers".

  8. Restart Webcenter Spaces.

  9. Log into WebCenter Spaces and provide your mail credentials.

14.6.9 Securing the WebCenter Spaces Connection to Oracle SES with SSL

Before associating you need to first import the certificate into the trust store. Follow the steps below to put the certificate in the trust store and register the Oracle Secure Enterprise Search (SES) connection.

To download the certificate of the HTTPS URL and save it:

  1. Use your browser to navigate to the Web Services URL that Oracle Secure Enterprise Search exposes to enable search requests at:

    http://host:port/search/query/OracleSearch
    

    For example:

    https://example.com:7777/search/query/OracleSearch
    
  2. Place your cursor on the page, right-click with your mouse, and select Properties.

  3. Click Certificate.

  4. In the popup window, open the Details tab, and click Copy to File...

    Use DER encoded binary(X.509) format and copy the certificate to a file.

  5. Convert the .DER format certificate to .PEM format.

    Use Firefox 3.0 or later to download the certificate directly to.PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  6. Import the certificate into DemoTrustKeyStore.jks or cacerts in the jdk_home using one of the following commands:

    keytool -import -alias ses_cer -file cert_file.cer -keystore cacerts -storepass changeit
    

    where cert_file is the name of the certificate file you downloaded.

  7. Register the SES connection as described in Section 11.4.3, "Registering Oracle Secure Enterprise Search Services".

  8. Restart WebCenter Spaces.

14.6.10 Securing the WebCenter Spaces Connection to OWLCS with SSL

To secure the WebCenter Spaces connection to Oracle WebLogic Communication Services (OWLCS) with SSL, follow the steps below to import the certificate into the truststore, and point WebCenter Spaces to use the truststore. Note that securing the WebCenter Spaces connection to OWLCS with SSL is optional since OWLCS can be configured with confidentiality using WS-Security. See Section 14.8.3, "Securing Oracle WebLogic Communication Services (OWLCS) with WS-Security".

Before associating you need to first import the certificate into the truststore. Follow the steps below to put the certificate in the truststore:

  1. Open your browser and go to the OWLCS server (for example, https://example.com:port/PresenceConsumerService/services/PresenceConsumer)

  2. Place your cursor on the page, right-click, and select Properties.

  3. Click Certificate.

  4. In the popup window, open the Details tab and click Copy to File...

    Use Firefox 3.0 or later to download the certificate directly to.PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  5. Import the certificate into the cacerts using the following keytool command:

    keytool -import -alias owlcs_cer -file cert_file.cer -keystore cacerts -storepass changeit
    

    where cert_file is the name of the certificate file you downloaded.

  6. Locate the cacerts file used by the OWLCS server in the OWLCS installation, and also update the OWLCS referenced cacerts file with this certificate:

    keytool -import -alias owlcs_cer -file cert_file.cer -keystore cacerts -storepass changeit
    
  7. Register the Oracle WebLogic Communication Services connection as described in Section 11.2.3, "Registering Instant Messaging and Presence Servers".

  8. Restart the WebCenter Spaces server.

14.6.11 Securing the WebCenter Spaces Connection to Microsoft Live Communication Server with SSL

To secure the WebCenter Spaces connection to Microsoft Live Communication Server with SSL, follow the steps below to import the certificate into the truststore, and point WebCenter Spaces to use the truststore. Note that securing the WebCenter Spaces connection to Microsoft Live Communication Server with SSL is optional since Microsoft Live Communication Server can be configured with confidentiality using WS-Security.

Before associating you need to first import the certificate into the truststore. Follow the steps below to put the certificate in the truststore:

  1. Open your browser and go to the Microsoft Live Communication Server (for example, https://example.com:port/PresenceConsumerService/services/PresenceConsumer)

  2. Place your cursor on the page, right-click, and select Properties.

  3. Click Certificate.

  4. In the popup window, open the Details tab and click Copy to File...

    Use Firefox 3.0 or later to download the certificate directly to.PEM format, or for other browsers use the WLS der2pem tool to convert to PEM format. For more information about using the der2pem tool, see "der2pem" in the Oracle Fusion Middleware Command Reference for Oracle WebLogic Server. Note that WebLogic does not recognize any other format other than .PEM format.

  5. Import the certificate into the cacerts using the following keytool command:

    keytool -import -alias lcs_cer -file cert_file.cer -keystore cacerts -storepass changeit
    

    where cert_file is the name of the certificate file you downloaded.

  6. Locate the cacerts file used by the Microsoft Live Communication Server in the Microsoft Live Communication Server installation, and also update the Microsoft Live Communication Server referenced cacerts file with this certificate:

    keytool -import -alias lcs_cer -file cert_file.cer -keystore cacerts -storepass changeit
    
  7. Register the Microsoft Live Communication Server connection as described in Section 11.2.3, "Registering Instant Messaging and Presence Servers".

  8. Restart the WebCenter Spaces server.

14.7 Configuring a WebCenter Application to Use Single Sign-On

Oracle Access Manager (OAM), part of Oracle's enterprise class suite of products for identity management and security, provides a wide range of identity administration and security functions, including several single sign-on options for WebCenter Spaces and custom WebCenter applications. OAM is the recommended single sign-on solution for Oracle WebCenter 11g installations.

For deployment environments that are already invested in Oracle 10g infrastructure, and where the Oracle Application Server Single Sign-On (OSSO) server is used as the primary SSO solution, WebCenter 11g can also be configured to use OSSO for single sign-on.

For smaller scale Oracle WebCenter 11g installations, where you do not have an enterprise-class single sign-on infrastructure like Oracle Access Manager or Oracle SSO, and you only need to provide a single sign-on capability within WebCenter Spaces and its associated web applications like Wiki, Discussions, RSS and Worklist, you can configure a SAML-based SSO solution. If you need to provide single sign-on with other enterprise applications, this solution is not recommended.

If your enterprise uses Microsoft desktop logins that authenticate with a Microsoft domain controller with user accounts in Active Directory, then configuring SSO with Microsoft Clients may also be an option to consider.

The setup required for each of these SSO solutions is described in the following subsections:

14.7.1 Configuring Oracle Access Manager (OAM)

Oracle Access Manager (OAM) provides flexible and extensible authentication and authorization, and provides audit services. This section describes how to configure WebCenter Spaces and custom WebCenter applications for OAM single sign-on authentication, including how to configure the WebLogic server side and the WebCenter application as the partner application participating in SSO.

Much of the configuration can be done using scripts (recommended). To use the scripts, follow the instructions in Section 14.7.1.2, "Configuring OAM Using Scripts," and complete the instructions in Section 14.7.1.3, "Configuring the Webtier Components" and Section 14.7.1.6, "Configuring the Policy Manager," and any additional configurations as appropriate in Section 14.7.1.7, "Additional Configurations."

To perform the configuration manually, complete the instructions in all of the subsections, with the exception of Section 14.7.1.2, "Configuring OAM Using Scripts."

The scripted and equivalent manual configuration steps are presented in the following subsections:

14.7.1.1 OAM Components and Topology

Figure 14-52 shows the components and topology required to set up single sign-on with Oracle Access Manager for a WebCenter application.

Figure 14-52 OAM Single Sign-On Components and Topology

Description of Figure 14-52 follows
Description of "Figure 14-52 OAM Single Sign-On Components and Topology"

OAM consists of the following components:

  • Access Server - a standalone server that provides authentication, authorization, and auditing services for Access Gates. There is one access server set up on OAM. This is done as part of the OAM install itself.

  • WebGate - an out-of-the-box plugin that intercepts Web resource (HTTP) requests and forwards them to the Access Server for authentication and authorization.

  • Identity Assertion Provider (IAP) - a type of security provider that asserts the identity of the user based on header information that is set by perimeter authentication. The OAM integration provides an OAM ID Asserter that can be configured as the OAM IAP. The OAM ID Asserter can be used for authentication or for identity assertion. For OAM SSO integration, the OAM ID Asserter should be configured as an Identity Assertion Provider (IAP) by selecting obSSOCookie under Active Types in the provider's Common settings.

14.7.1.2 Configuring OAM Using Scripts

These steps assume that you've installed Oracle WebCenter (see Section 2.3, "Installing WebCenter Spaces"). By default, an Oracle WebCenter installation creates a WLS domain, including an Administration Server and three managed servers: WLS_Spaces, WLS_Services and WLS_Portlet.

  1. Install the WebTier, which contains the Oracle HTTP Server (OHS) and mod_wl (see the Oracle Fusion Middleware Installation Guide for Oracle WebCenter for information on how to install the WebTier).

  2. Configure the module mod_wl in the WebTier OHS so that it forwards requests to the Oracle WebLogic Server for WebCenter, as described in Section 14.7.1.3.1, "Configure mod_weblogic (mod_wl_ohs.conf)."

  3. Determine which access server to use.

    1. Log onto the Access Manager.

    2. Click Access System Console.

    3. Open the Access System Configuration tab.

    4. Click Access Server Configuration to display a list of all access servers.

    5. Click an access server in the list to see server details.

      The host name and port are the values you need for the oam_aaa_host and oam_aaa_port parameters respectively in the script.

  4. Run the following command.

    The oamcfgtool.jar is available in ORACLE_HOME/modules/oracle.oamprovider_11.1.1/oamcfgtool.jar in the WebCenter installation. Values in bold are the one that you need to supply based on the settings of your WebCenter and OAM instances.

    java -jar $ORACLE_HOME/modules/oracle.oamprovider_11.1.1/oamcfgtool.jar mode=CREATE app_domain="your_domain_name"
    protected_uris="/webcenter/adfAuthentication,/owc_wiki/user/login.jz,/owc_wiki/adfAuthentication,/integration/worklistapp,
    /workflow/sdpmessagingsca-ui-worklist/faces/adf.task-flow,/workflow/WebCenterWorklistDetail/faces/adf.task-flow,
    /workflow/sdpmessagingsca-ui-worklist,/rss/rssservlet,/owc_discussions/login!withRedirect.jspa,
    /owc_discussions/login!default.jspa,/owc_discussions/login.jspa,/owc_discussions/admin" 
    public_uris="/webcenter,/owc_wiki,/owc_discussions,/rss,/workflow" 
    app_agent_password=<Password to be provisioned for App Agent> 
    ldap_host=<Hostname of LDAP server> ldap_port=<Port of LDAP server> 
    ldap_userdn=<DN of LDAP Admin User, usually "cn=orcladmin"> 
    ldap_userpassword=<Password of LDAP Admin User> oam_aaa_host=<HOST of OAM server> oam_aaa_port=<Port of OAM server>
    

    We recommend that you register your domain (for <your_domain_name>) as something like "webtier.example.com", where "webtier.example.com" is your Webtier, so that you can easily distinguish the various policies in OAM.

    If your command ran successfully, you should see something like the following output depending on the values you used:

    Processed input parameters
    Initialized Global Configuration
    Successfully completed the Create operation.
    Operation Summary:
    Policy Domain : webtier.example.com
    Host Identifier: webtier.example.com
    Access Gate ID : webtier.example.com_AG
    

    You can also run the Validate command to validate your configurations:

    java -jar ORACLE_HOME/modules/oracle.oamprovider_11.1.1/oamcfgtool.jar mode=VALIDATE app_domain="your_domain_name" 
    ldap_host=<Hostname of LDAP server> ldap_port=<Port of LDAP server>
    *ldap_userdn=<DN of LDAP Admin User, usually "cn=orcladmin">* 
    ldap_userpassword=<Password of LDAP Admin User> oam_aaa_host=<HOST of OAM server> oam_aaa_port=<Port of OAM server>
    test_username=<Username to be used for policy validation> test_userpassword=<Userpassword to be used for policy validation>
    

    If your command runs successfully, you should see the same output as above.

  5. Check the Policy Domain settings.

    1. Log on to the Oracle Access Manager.

    2. Click Policy Manager.

    3. Click My Policy Domains.

      You should see the domain you just created in the list of policy domains. In the URL prefixes column, you should also see the URIs you specified during the creation of this domain.

    4. Click the domain you just created and open the Resources tab.

      The URIs you specified should be showing. You can also open other tabs to view and verify other settings, and manually add additional resources later, if required.

  6. Check the Access Gate Configurations.

    1. Click on Access System Console.

    2. Open the Access System Configuration tab.

    3. Click AccessGate Configuration.

    4. Enter some search criteria and click Go.

    5. When the Access Gate for the domain you just created shows up (it will have the suffix _AG), click on it to see the setting details.

  7. Run the WebGate Installer as described in the section on "Installing the WebGate" in the Oracle Fusion Middleware Enterprise Deployment Guide for Oracle Identity Management.

    The InstallShield Wizard will prompt you for several inputs during the installation. Supply the information requested based on the settings for your environment.

  8. Continue with the steps for configuring the Policy Manager in Section 14.7.1.6, "Configuring the Policy Manager", and any further configurations, as required, in Section 14.7.1.7, "Additional Configurations".

14.7.1.3 Configuring the Webtier Components

Configuring the Webtier components is described in the following sections:

14.7.1.3.1 Configure mod_weblogic (mod_wl_ohs.conf)

Configure the module mod_wl in the WebTier OHS so that it forwards requests to the Oracle WebLogic Server for WebCenter, by uncommenting lines at WEBTIER_HOME/instances/<your_instance>/config/OHS/ohs1/mod_wl_ohs.conf. This file is included by the httpd.conf file.

To configure Web Tier OHS to work with multiple non-clustered servers, use the example below in mod_wl_ohs.conf. Make sure that the WebLogic port numbers match your configuration.

<IfModule mod_weblogic.c>
MatchExpression  /webcenter   WebLogicHost=webcenter.example.com|WebLogicPort=8888
MatchExpression  /rss         WebLogicHost=webcenter.example.com|WebLogicPort=8890
MatchExpression  /owc_wiki    WebLogicHost=webcenter.example.com|WebLogicPort=8890
MatchExpression  /owc_discussions  WebLogicHost=webcenter.example.com|WebLogicPort=8890
MatchExpression /workflow WebLogicHost=soa.example.com|WebLogicPort=8888
MatchExpression /integration/worklistapp WebLogicHost=soa.example.com|WebLogicPort=8888
MatchExpression /integration/services WebLogicHost=soa.example.com|WebLogicPort=8888
MatchExpression /soa-infra WebLogicHost=soa.example.com|WebLogicPort=8888
</IfModule>

Note:

The entries in the MatchExpression list above map the incoming paths to the appropriate WLS managed servers on which the corresponding applications reside.

14.7.1.3.2 Create an AccessGate Entry

An AccessGate entry needs to be created on the Access Manager to be shared by the OAM Identity Assertion Provider (IAP), and the WebGate performing perimeter authentication on the webtier reverse proxy.


Note:

If you are doing the configuration using the oamcfgtool scripted installation, this step is not required, as the installation script does it automatically.

To create an AccessGate entry:

  1. Log in to the Access Server Console using your browser to navigate to:

    http://host:port/access/oblix
    

    Where host is the host ID of the server hosting the Access Manager (for example, oam.example.com), and port is the HTTP port number (for example, 8888).

  2. Open the Access System Configuration page.

  3. Click Add New AccessGate to create a new AccessGate entry.

  4. Click List Access Servers on the Details pane and bind the AccessGate to the Access Server that has been set up for OAM Single Sign-on.

Some of the settings specified here will be needed for WebGate installation and OAM Identity Assertion Provider (IAP) setup. Table 14-2 shows settings for a typical AccessGate entry.

Table 14-2 Sample Settings for AccessGate Entry

Setting Value

AccessGate Name

webcenter-access-gate

Description


State

Enabled

Hostname

webtier.example.com

Port

9010

Access Gate Password

<Not Displayed>

Debug

Off

Maximum user session time (seconds)

3600

Idle Session Time (seconds)

3600

Maximum Connections

1

Transport Security

Open

IPValidation

On

IPValidationException


Maximum Client Session Time (hours)

24

Failover threshold

1

Access server timeout threshold


Sleep For (seconds)

60

Maximum elements in cache

100000

Cache timeout (seconds)

1800

Impersonation username


Impersonation password

<Not Displayed>



ASDK Client


Access Management Service

On



Web Server Client


Primary HTTP Cookie Domain

.example.com

Preferred HTTP Host

webtier.example.com:9010

Deny On Not Protected

Off

CachePragmaHeader

no-cache

CacheControlHeader

no-cache

LogOutURLs



14.7.1.3.3 Install WebGate on the WebTier

This section describes how to install the WebGate.

To install the WebGate:

  1. Copy the ZIP file (Oracle_Access_Manager10_1_4_3_0_linux_GCClib.zip) containing the two gcc libraries required for the installation (libgcc_s.so.1 and libstdc++.so.5) to a /tmp directory.

  2. Run the installation as root. For example, from the /tmp directory run:

    sudo -u root ./Oracle_Access_Manager10_1_4_3_0_linux_OHS11g_WebGate
    
  3. Follow the installation runtime instructions, providing the installation directory, information of the AccessGate that you created earlier and the absolute path to the httpd.conf file of the web server. For example:

    WEBTIER_HOME/instances/instance1/config/OHS/ohs1/httpd.conf
    

    Information for the AccessGate can be found in the Access System Console. For more information, see Section 14.7.1.3.2, "Create an AccessGate Entry".

  4. After the installation a new section is inserted in the httpd.conf file between the following entries:

    #** BEGIN WEBGATE SPECIFIC ***
    #** END Oblix NetPoint Specific ***  
    

    Check to see if the content is consistent with your environment.

14.7.1.4 Manually Configuring the Access System

To configure the Access System, you need to add a host identifier:

  1. Log in to the Access Server Console using your browser to navigate to:

    http://host:port/access/oblix
    

    Where host is the host ID of the server hosting the Access Manager (for example, oam.example.com), and port is the HTTP port number (for example, 8888).

  2. Open the Access System Configuration page.

  3. On the navigation pane, click Host Identifiers.

  4. Add a host identifier for the webtier and enter the Host Identifier name (for example, webtier), a Description, and all Hostname variations. The hostname variations should include all the ways that a browser could issue a request to the webtier. For example, webtier and webtier.example.com if the webtier is using the default port; and additionally webtier:8080 and webtier.example.com:8080 if the webtier is not using the default port.

14.7.1.5 Manually Defining the WebCenter Policy Domain

This section describes the steps to set up the WebCenter Policy Domain that will configure the WebCenter application for OAM SSO authentication.

To configure the WebCenter Policy Domain:

  1. Log in to the Access Server Console using your browser to navigate to:

    http://host:port/access/oblix
    

    where host is the host ID of the server hosting the Access Manager (for example, oam.example.com), and port is the HTTP port number (for example, 8888).

  2. Click Policy Manager.

    The Policy Manager pane displays (see Figure 14-53).

    Figure 14-53 Policy Manager Pane

    Description of Figure 14-53 follows
    Description of "Figure 14-53 Policy Manager Pane"

  3. Click Create Policy Domain in the Navigation pane to create a new policy domain to protect the WebCenter resources.

    The Create Policy Domain page displays (see Figure 14-54).

    Figure 14-54 Create Policy Domain Page

    Description of Figure 14-54 follows
    Description of "Figure 14-54 Create Policy Domain Page"

  4. Enter a Name (for example, webtier.example.com) and Description for the policy domain and click Save.

  5. Open the Resources tab and click Add.

    The Resource page displays (see Figure 14-55).

    Figure 14-55 Policy Domain Resource Page

    Description of Figure 14-55 follows
    Description of "Figure 14-55 Policy Domain Resource Page"

  6. Add the resources that need to be secured. For each resource:

    1. Select http as the Resource Type.

    2. Select the Host Identifier for the WebCenter webtier.

    3. Enter the URL Prefix for the resources you want to protect.

      The following resources can be protected:

      /adf.task-flow
      /faces/adf.task-flow
      /integration/worklistapp
      /owc_discussions/login!withRedirect.jspa
      /owc_discussions/login!default.jspa
      /owc_discussions/login.jspa
      /owc_discussions/admin
      /owc_wiki/user/login.jz
      /owc_wiki/acl
      /owc_wiki/adfAuthentication
      /owc_wiki/admin
      /owc_wiki/attachments
      /owc_wiki/default
      /owc_wiki/domain
      /owc_wiki/export
      /owc_wiki/index_dir
      /owc_wiki/install
      /owc_wiki/js
      /owc_wiki/layouts
      /owc_wiki/macro
      /owc_wiki/page
      /owc_wiki/pages
      /owc_wiki/remote
      /owc_wiki/tags
      /owc_wiki/templates
      /owc_wiki/user
      /owc_wiki/vhost
      /owc_wiki/wp
      /rss/rssservlet
      /webcenter/adfAuthentication
      /workflow/sdpmessagingsca-ui-worklist
      /workflow/WebCenterWorklistDetail/faces
      /workflow/sdpmessagingsca-ui-worklist
      
    4. Enter a Description for the resource.

    5. Make sure that Update Cache is selected, and then click Save.

  7. Open the Authorization Rules tab and click Add.

    The Authorization Rules page displays (see Figure 14-56).

    Figure 14-56 Authorization Rules Page

    Description of Figure 14-56 follows
    Description of "Figure 14-56 Authorization Rules Page"

  8. Enter a Name for the new rule (for example, Default_Authorization) and Description.

  9. Select Yes for Enabled, and No for Allow takes precedence, and click Save.

  10. Click Allow Access on the Authorization Rules tab and click Add.

    The Allow Access page displays (see Figure 14-57).

    Figure 14-57 Allow Access Page

    Description of Figure 14-57 follows
    Description of "Figure 14-57 Allow Access Page"

  11. In the Role drop down list, select Any one and click Save.

  12. Open the Default Rules tab and click Add.

    The Access Manager Authentication Rule page displays (see Figure 14-58).

    Figure 14-58 Access Manager Authentication Rules Page

    Description of Figure 14-58 follows
    Description of "Figure 14-58 Access Manager Authentication Rules Page"

  13. Enter a Name (for example, Default_SSO) and Description for the rule.

  14. Set the Authentication Scheme to Oracle: Form Authentication (or a form-based authentication scheme that was previously created) and click Save.

  15. Click Authorization Expression on the Default Rules tab, and click Add.

    The Authorization Expression page displays (see Figure 14-59).

    Figure 14-59 Authorization Expression Page

    Description of Figure 14-59 follows
    Description of "Figure 14-59 Authorization Expression Page"

  16. Add the Default-Authorization authorization rule (or the rule you created previously) to the Authorization Expression and click Add to add it to the Authorization Expression list.

  17. Click Save.

  18. Click Actions on the Authorization Expression subtab and click Add.

    The Actions page displays (see Figure 14-60).

    Figure 14-60 Actions Page

    Description of Figure 14-60 follows
    Description of "Figure 14-60 Actions Page"

  19. Under Authorization Success, specify what actions should be invoked when the authorization succeeds. Add two Return Attribute entries, specifying the Return Type, Name and Return Attribute as:

    • HeaderVar, REMOTE_USER, uid

    • HeaderVar, OAM_REMOTE_USER, uid


      Note:

      Be careful not to put these values under the row for Return Value. The settings should be placed under Return Attribute.

  20. Click Save.

  21. Open the Policies tab and click Add.

    The Policies page displays (see Figure 14-61).

    Figure 14-61 Policies Page

    Description of Figure 14-61 follows
    Description of "Figure 14-61 Policies Page"

  22. Enter a Name (for example, Public URI Policy) and Description for the policy that will identify which resources are to be secured to trigger authentication.

  23. Set the Resource Type to http.

  24. Select GET, and POST as the Resource Operations.

  25. Select the Host Identifier (the host identifier of the WebCenter webtier) to which to apply the policy (for example, webtier.example.com) and click Save.

14.7.1.6 Configuring the Policy Manager

Configuring the Policy Manager is described in the subsections below.

14.7.1.6.1 Configuring the Oracle Internet Directory Authenticator

Assuming Oracle Internet Directory is backing the OAM identity store, an Oracle Internet Directory authenticator (OracleInternetDirectoryAuthenticator) should be configured for the LDAP server that is used as the identity store of OAM, and the provider should be set to SUFFICIENT.

To configure the Oracle Internet Directory authenticator:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-62).

    Figure 14-62 Summary of Security Realms Pane

    Description of Figure 14-62 follows
    Description of "Figure 14-62 Summary of Security Realms Pane"

  3. Click the realm entry for which to configure the OAM authenticator.

    The Settings pane for the realm displays (see Figure 14-63).

    Figure 14-63 Settings Pane

    Description of Figure 14-63 follows
    Description of "Figure 14-63 Settings Pane"

  4. Open the Providers tab.

    The Provider Settings display (see Figure 14-64).

    Figure 14-64 Settings Pane - Providers

    Description of Figure 14-64 follows
    Description of "Figure 14-64 Settings Pane - Providers"

  5. Click New to create a new provider.

    The Create a New Authentication Provider pane displays (see Figure 14-65).

    Figure 14-65 Create a New Authentication Provider Pane

    Description of Figure 14-65 follows
    Description of "Figure 14-65 Create a New Authentication Provider Pane"

  6. Enter a name for the new provider (for example, OID Authenticator), select OracleInternetDirectoryAuthenticator as its type and click OK.

  7. On the Providers tab, click the newly added provider.

    The Common Settings pane for the authenticator displays (see Figure 14-66).

    Figure 14-66 Common Settings Pane

    Description of Figure 14-66 follows
    Description of "Figure 14-66 Common Settings Pane"

  8. Set the control flag to SUFFICIENT and click Save.

  9. Open the Provider Specific tab.

    The Provider Specific Settings pane for the authenticator displays (see Figure 14-67).

    Figure 14-67 Provider Specific Settings for OID Authenticator

    Description of Figure 14-67 follows
    Description of "Figure 14-67 Provider Specific Settings for OID Authenticator"

  10. Complete the fields as shown in the table below. Leave the rest of the fields set to their default values.

    Field Value Comment
    Host:
    The host ID for the LDAP server
    Port:
    The LDAP server port number
    Principal:
    The LDAP administrator principal (for example, cn=orcladmin)
    Credential: <password> The administrator principal password
    Confirm Credential: <password>
    User Base DN:
    User Search Base - this value would be same as #1.d in OAM Access Manager Setup
    All Users Filter: "(&(uid=*)(objectclass=person))"
    User Name Attribute: "uid"
    Group Base DN:
    Group search base - Same as User Base DN

  11. Click Save.

  12. Restart the WebCenter Administration Server and managed server and validate the configuration by navigating to the Realm Settings page in the WLS Administration Console and opening the Users and Groups tab.

14.7.1.6.2 Configuring the OAM Identity Asserter

An OAM identity asserter needs to be configured with the provider Control Flag set to REQUIRED.

To configure the OAM Identity asserter:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-68).

    Figure 14-68 Summary of Security Realms Pane

    Description of Figure 14-68 follows
    Description of "Figure 14-68 Summary of Security Realms Pane"

  3. Click the realm entry for which to configure the OAM identity asserter.

    The Settings pane for the realm displays (see Figure 14-69).

    Figure 14-69 Settings Pane

    Description of Figure 14-69 follows
    Description of "Figure 14-69 Settings Pane"

  4. Open the Providers tab.

    The Provider Settings display (see Figure 14-70).

    Figure 14-70 Settings Pane - Providers

    Description of Figure 14-70 follows
    Description of "Figure 14-70 Settings Pane - Providers"

  5. Click New to create a new provider.

    The Create a New Authentication Provider pane displays (see Figure 14-71).

    Figure 14-71 Create a New Authentication Provider Pane

    Description of Figure 14-71 follows
    Description of "Figure 14-71 Create a New Authentication Provider Pane"

  6. Enter a name for the new provider (for example, OAM ID Asserter), select OAMIdentityAsserter as its type and click OK.

  7. On the Providers tab, click the newly added provider.

    The Common Settings pane for the authenticator displays (see Figure 14-72).

    Figure 14-72 Common Settings Pane

    Description of Figure 14-72 follows
    Description of "Figure 14-72 Common Settings Pane"

  8. Set the control flag to REQUIRED and check that ObSSOCookie is set for Active Types.

  9. Click Save.

  10. Open the Provider Specific tab.

    The Provider Specific Settings pane for the OAMIdentityAsserter displays (see Figure 14-73).

    Figure 14-73 Provider Specific Settings for the OAMIdentityAsserter

    Description of Figure 14-73 follows
    Description of "Figure 14-73 Provider Specific Settings for the OAMIdentityAsserter"

  11. Complete the fields as shown in the table below. Leave the rest of the fields set to their default values.

    Field Value Comment
    Primary Access Server:
    The OAM server endpoint information in HOST:PORT format
    Access Gate Name:
    Name of the Access Gate
    Access Gate Password:
    Provide the Access Gate password and confirm in the field below.

  12. Click Save to save your settings.

14.7.1.6.3 Configuring the Default Authenticator and Setting the Provider Order

After configuring the OAM identity asserter, make sure that the default authenticator's control flag is set to SUFFICIENT and reorder the providers as shown below:

  1. Navigate to the Provider Settings pane (see Figure 14-70).

  2. Open the Default Authenticator and check that the control flag is set to SUFFICIENT.

  3. Do the same for any providers other than the two you just created.

  4. On the Settings Pane, reset the provider order to:

    • OAMIdentityAsserter (REQUIRED)

    • OracleInternetDirectoryAuthenticator (SUFFICIENT)

    • DefaultAuthenticator (SUFFICIENT)

    • DefaultIdentityAsserter

14.7.1.6.4 Configuring the Application for Oracle Access Manager SSO

Configure the applications for SSO by adding a setting to EXTRA_JAVA_PROPERTIES.

There is a system property that tells WebCenter and ADF that the application is configured in SSO mode and some special handling is required. The following system property is required in this mode:

Field Value Comment
oracle.webcenter.spaces.osso true This flag tells WebCenter that SSO is being used, so no login form should be displayed on the default landing page. Instead, it will render a login link that the user can click to invoke the SSO authentication.

To set this property, edit the setDomainEnv.sh script located in your <domain>/bin directory. Add the property to the EXTRA_JAVA_PROPERTIES variable, as follows:

EXTRA_JAVA_PROPERTIES="-Dweblogic.security.SSL.ignoreHostnameVerification=true -Doracle.mds.bypassCustRestrict=true
-Djps.update.subject.dynamic=true -Doracle.webcenter.spaces.osso=true
-noverify ${EXTRA_JAVA_PROPERTIES}"

After making this change, restart the following servers:

  • WebCenter's Administration Server

  • All the domain's managed servers

  • WebTier OHS

14.7.1.7 Additional Configurations

The following configurations may be necessary or helpful in providing additional security for your site:

14.7.1.7.1 Configuring the WLS Administration Console and Enterprise Manager

This section describes how to optionally set up OAM single sign-on for the WLS Administration Console and Enterprise Manager.


Note:

Setting up OAM SSO for Enterprise Manager and the WLS Administration Console would provide single sign-on access to same set of users for whom OAM SSO access has been configured. If want the Webtier to be accessible to external users through OAM, but want administrators to log in directly to Enterprise Manager and the WLS Administration Console, then you may not want to complete this additional configuration step.

To set up OAM SSO for the WLS Administration Console and Enterprise Manager:

  1. Log in to the Access Server Console using your browser to navigate to:

    http://host:port/access/oblix
    

    Where host is the host ID of the server hosting the Access Manager (for example, oam.example.com), and port is the HTTP port number (for example, 8888).

  2. Click Policy Manager.

    The Policy Manager pane displays (see Figure 14-74).

    Figure 14-74 Policy Manager Pane

    Description of Figure 14-74 follows
    Description of "Figure 14-74 Policy Manager Pane"

  3. Search for the policy domain that you created earlier to protect WebCenter resources in Section 14.7.1.5, "Manually Defining the WebCenter Policy Domain".

  4. Open the Resources tab and click Add.

    The Resource page displays (see Figure 14-75).

    Figure 14-75 Policy Domain Resource Page

    Description of Figure 14-75 follows
    Description of "Figure 14-75 Policy Domain Resource Page"

  5. Add the resources that need to be secured. For each resource:

    1. Select http as the Resource Type.

    2. Select the Host Identifier for the WebCenter webtier.

    3. Enter the URL Prefix for the WLS Administration Console or Enterprise Manager.

    4. Enter a Description for the resource.

    5. Make sure that Update Cache is selected, and then click Save.

  6. In your webtier, modify the mod_wl_ohs.conf file (in WEBTIER_HOME/instances/your_instance/config/OHS/ohs1/) to include the WLS Administration Console and Enterprise Manager, using the actual host ID for the WebCenter Administration Server for WebLogicHost.

    <IfModule mod_weblogic.c>
      MatchExpression  /webcenter WebLogicHost=example.com|WebLogicPort=8888
      MatchExpression  /rss WebLogicHost=example.com|WebLogicPort=8888
      MatchExpression  /owc_wiki WebLogicHost=example.com|WebLogicPort=8890
      MatchExpression  /owc_discussions WebLogicHost=example.com|WebLogicPort=8890
      MatchExpression  /console WebLogicHost=example.com|WebLogicPort=7001
      MatchExpression  /em WebLogicHost=example.com|WebLogicPort=7001
    </IfModule>
    
  7. Restart the Oracle HTTP Server for your changes to take effect.

    You should now be able to access the WLS Administration Console and Enterprise Manager with the following links:

    http://host:OHS port/console
    http://host:OHS port/em
    

    and be prompted with the OAM SSO login form.

14.7.1.7.2 Deploying the Discussions Server

Prior to configuring the Oracle WebCenter Discussions Server for SSO, you may need to deploy it.

To deploy the discussions server:

  1. Log into the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, click Deployments.

    The Deployments Summary pane displays (see Figure 14-76).

    Figure 14-76 Deployment Summary Pane

    Description of Figure 14-76 follows
    Description of "Figure 14-76 Deployment Summary Pane"

  3. On the Deployment Summary page, select owc_discussions stop and delete and click Install.

  4. Using the Install Application Assistant Path field, locate the SSO enabled owc_discussions .EAR file (typically in MW_HOME/Oracle_WC1/discussionserver).

  5. Select the owc_discussions_sso.ear file and click Next.

  6. Select Install this deployment as an application and click Next.

  7. Deploy the .EAR file with all default options except the Name, which should be set to owc_discussions.

  8. Restart the WLS_Services managed server.

    Now, when you access the discussion server's Admin Console through the OHS port:

    http://<host>:<OHS port>/owc_discussions/admin/
    

    you should be challenged by the WebGate login form.

14.7.1.7.3 Configuring the Discussions Server

This section describes how to configure Oracle WebCenter Discussions Server for OAM single sign-on. Before configuring the discussions server for OAM SSO, deploy it as shown in Section 14.7.1.7.2, "Deploying the Discussions Server", and configure it to use the same identity store LDAP as WebCenter Spaces, as described in Section 14.3.6, "Configuring the Discussions Server to Share the Identity Store LDAP Server".

To set up the discussions server for OAM SSO

  1. Log in to the Oracle WebCenter Discussions Server Admin Console at:

    http://host:port/owc_discussions/admin
    

    Where host and port are the host ID and port number of the WLS_Services managed server.

  2. Open the System Properties page and edit (if it already exists) or add the AuthFactory.className property setting it's value to oracle.jive.sso.OracleSSOAuthFactory.

  3. Edit or add the jiveURL property to point to the base URL of the SSO server. For example:

    jiveURL = example.com:8890/owc_discussions
    
  4. Deploy the SSO-enabled owc_discussions application.

To create a discussions server connection for WebCenter Spaces

  1. Log into Fusion Middleware Control and select the WebLogic domain for WebCenter Spaces.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, open the WebCenter node, and then the WebCenter Spaces node, and click WebCenter Spaces (WLS_Spaces).

  3. Register the discussion server as described in Section 11.1.3.1, "Registering Discussion Servers Using Fusion Middleware Control".

    For Server URL, enter http://<host>:<port>/owc_discussions .

  4. Restart the WLS_Spaces managed server.

    When you log into WebCenter Spaces, you automatically sign on to the discussion server as well.

14.7.1.7.4 Configuring the Wiki Server

Wiki page functionality is supported as a portlet, which you can embed in a Web page, and OAM single sign-on is supported this way. Since the Oracle WebCenter Wiki and Blog Server does not require or support an identity store, there is no need to configure the LDAP.

To add a wiki page to a WebCenter identity store, follow the steps below:

  1. Log in to WebCenter Spaces, and open a group space.

  2. Add a page, choosing Web Page as the Style.

  3. When the page is created, click the Edit icon.

    The Component properties dialog displays.

  4. Enter the following URL in the Source box:

    http://host:OHS port/owc_wiki/page/show.jz?inline=1&scope=#{communityContext.communityName}
    

    Where host is the host ID of the WLS_Spaces server, and OHS_port is the port number of the Oracle HTTP Server. The OHS port is used so the call goes through the WebGate which will initiate SSO.

    After specifying the component properties you will see the wiki page contents.

  5. Save the changes.

14.7.1.7.5 Restricting Access with Connection Filters

Follow the steps below to only allow users to access WebCenter and other services through the WebTier OHS ports so that they can be properly authenticated.

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, select the domain you want to configure (for example, webcenter).

  3. Open the Security tab and the Filter subtab.

    The Security Filter Settings pane displays (see Figure 14-77).

    Figure 14-77 Security Filter Settings Page

    Description of Figure 14-77 follows
    Description of "Figure 14-77 Security Filter Settings Page"

  4. Check Connection Logger Enabled to enable the logging of accepted messages.

    The Connection Logger logs successful connections and connection data in the server. This information can be used to debug problems relating to server connections.

  5. In the Connection Filter field, specify the connection filter class to be used in the domain.

    • To configure the default connection filter, specify weblogic.security.net.ConnectionFilterImpl.

    • To configure a custom connection filter, specify the class that implements the network connection filter. Note that this class must also be present in the CLASSPATH for WebLogic Server.

  6. In the Connection Filter Rules field, enter the syntax for the connection filter rules.

    For example:

    <webtier IP>/0 * * allow
    0.0.0.0/0  *  *  deny
    

    which says: allow all traffic coming from the local host and disallow all traffic from any other IP address. You should, of course, write the network filter(s) that are relevant to your environment. For more information about writing connection filters, see "Developing Custom Connection Filters" in Oracle Fusion Middleware Programming Security for Oracle WebLogic Server.

  7. Click Save and activate the changes.

  8. Restart all the managed servers and the Administration Server.

  9. Verify that all direct traffic to the WLS server is blocked by attempting to navigate to:

    http://host:WLS_port/webcenter
    

    This should produce the following error:

    "The Server is not able to service this request: [Socket:000445]Connection rejected, filter blocked Socket, weblogic.security.net.FilterException: [Security:090220]rule 3"

    You should, however, still be able to access WebCenter through the OHS port:

    http://host:OHS_port/webcenter
    

14.7.2 Configuring Oracle Single Sign-On (OSSO)

In a default installation, WebCenter uses the HTTP ports in the WLS managed server created for WebCenter. To configure WebCenter with Oracle Single Sign-On, WebCenter needs Oracle HTTP Server and the associated Module mod_osso to integrate with Oracle Single Sign-On (OSSO).


Note:

The BPEL Console does not support SSO integration. When WebCenter is configured for SSO, login to BPEL must still be done through the standard login page on the BPEL Console.

This section includes the following subsections

14.7.2.1 OSSO Components and Topology

In a default installation, WebCenter uses the HTTP ports of the WLS managed server created for WebCenter. To configure WebCenter with Oracle Single Sign-On, WebCenter needs the Oracle HTTP Server and the associated Module mod_osso, to integrate with Oracle SSO. The diagram below (Figure 14-78) shows the overall architecture of this integration:

Figure 14-78 OSSO Components and Topology

Description of Figure 14-78 follows
Description of "Figure 14-78 OSSO Components and Topology"

14.7.2.2 Configuring the Oracle HTTP Server and Associated mods

This section describes how to load and configure the Oracle HTTP Server and associated mods.

To load and configure the Oracle HTTP Server and associated mods

  1. Install the WebTier, which contains Oracle HTTP Server (OHS) and associated mods (mod_osso and mod_wl).

  2. Configure the module mod_wl in WebTier OHS so that it forwards requests to the Oracle WebLogic Server for WebCenter.

    Uncomment the lines at WEBTIER_HOME/instances/your_instance/config/OHS/ohs1/mod_wl_ohs.conf. This file is included by the httpd.conf file and looks like the following:

    LoadModule weblogic_module   ORACLE_HOME/ohs/modules/mod_wl_22.so
    <IfModule mod_weblogic.c>
    MatchExpression /webcenter WebLogicHost=webcenter.example.com|WebLogicPort=8888
    MatchExpression /rss WebLogicHost=webcenter.example.com|WebLogicPort=8890
    MatchExpression /owc_wiki WebLogicHost=webcenter.example.com|WebLogicPort=8890
    MatchExpression /owc_discussions WebLogicHost=webcenter.example.com|WebLogicPort=8890
    MatchExpression /workflow WebLogicHost=soa.example.com|WebLogicPort=8888
    MatchExpression /integration WebLogicHost=soa.example.com|WebLogicPort=8888
    </IfModule>
    

14.7.2.3 Configuring the OSSOIdentityAsserter

Include the OSSO Identity Assertion Provider (IAP) provider in the Oracle WebLogic domain for WebCenter. Use the WLS Administration Console to add the OSSO IAP to your domain as shown in the steps below.

To configure the OSSOIdentityAsserter:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-79).

    Figure 14-79 Summary of Security Realms Pane

    Description of Figure 14-79 follows
    Description of "Figure 14-79 Summary of Security Realms Pane"

  3. Click the realm entry to which to add the provider.

    The Settings pane for the realm displays (see Figure 14-80).

    Figure 14-80 Settings Pane

    Description of Figure 14-80 follows
    Description of "Figure 14-80 Settings Pane"

  4. Click the Providers tab.

    The Provider Settings display (see Figure 14-81).

    Figure 14-81 Settings Pane - Providers

    Description of Figure 14-81 follows
    Description of "Figure 14-81 Settings Pane - Providers"

  5. Click New to create a new provider.

    The Create a New Authentication Provider pane displays (see Figure 14-82).

    Figure 14-82 Create a New Authentication Provider Pane

    Description of Figure 14-82 follows
    Description of "Figure 14-82 Create a New Authentication Provider Pane"

  6. Enter a name for the new provider, select OSSOIdentityAsserter as its type and click OK.

  7. On the Providers tab, click the newly added provider.

  8. Set the control flag to OPTIONAL.

  9. Make sure that OracleInternetDirectoryAuthenticator is set as the primary authenticator for the domain so that the user profile info can be obtained from the associated Oracle Internet Directory server.

    The provider list should appear as follows:

    • OracleInternetDirectoryAuthenticator (SUFFICIENT)

    • OSSOIdentityAsserter (OPTIONAL)

    • DefaultAuthenticator (SUFFICIENT)

    • DefaultIdentityAsserter (OPTIONAL)

    Also make sure that the default jpsContext in WebCenter's jps-config.xml file is set to the idstore.ldap serviceInstance.

  10. Configure the Provider Specific details of the OSSO IAP with the settings for the following fields:

    Field Value Comment
    LDAPPort
    The LDAP port of the OID server
    Password
    The password of the LDAP entry to be used for the connection (for example, cn=orcladmin, or other less privileged account)
    Confirm Password
    Re-enter the password to confirm.
    Admin DN
    The account to be used for the connection
    Use Retrieved User Name As Principal True
    Cache TTL 60
    Rolefetching Enabled False
    Level 1
    Initial Cache Capacity 128
    LDAPHost
    The host name of the OID server
    Maximum Cache Capacity 1024

14.7.2.4 Registering OHS with Oracle SSO

Register the module mod_osso in the WebTier OHS with the SSO Server as a partner application by following the steps below.

To register OHS with Oracle SSO:

  1. Run ssoreg from the SSO server to generate an osso.conf file and manually copy it to the partner application (WEBTIER_HOME).

    This example shows how you would register a remote partner application on a SSO Server:

    bash-3.00$ ORACLE_HOME/sso/bin/ssoreg.sh -site_name
    webtier.example.com:80 -config_mod_osso TRUE -mod_osso_url
    http://webtier.example.com -remote_midtier  -config_file
    webtier.example.com.osso.conf
    

    Running this command creates a webtier.example.com.osso.conf file.

  2. Copy the WEBTIER_HOME/instances/your_instance/config/OHS/ohs1/disabled/mod_osso.conf file to WEBTIER_HOME/instances/your_instance/config/OHS/ohs1/moduleconf. All files in the moduleconf directory are included in the httpd.conf file.

  3. Add a static rule to the mod_osso.conf file to protect the /webcenter URL with Oracle SSO.

    The mod_osso.conf file should look similar to this:

    LoadModule osso_module ORACLE_HOME/ohs/modules/mod_osso.so
     <IfModule mod_osso.c>
        OssoIpCheck off
        OssoIdleTimeout off
        OssoSecureCookies Off
     
        # whatever the location of your real osso.conf file is, that was generated from the ssoreg.sh command.
        OssoConfigFile /OracleWebTier/webtier.example.com.osso.conf
     
    #______-
    # Notes
    #______-
    # 1. Here's what you need to add to protect a resource,
    #    e.g. <ApacheServerRoot>/htdocs/private:
    # 2. if an application is protected by SSO then no matter what Apache will always
    #    send no-cache headers practically undoing whatever the Apache configuration or
    #    the ADF faces Cache library do. To allow caching for SSO protected resources
    #    add "OssoSendCacheHeaders off " as following.
     
        <Location /webcenter/adfAuthentication>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_wiki/user/login.jz>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /rss/rssservlet>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_discussions/login!withRedirect.jspa>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_discussions/login!default.jspa>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_discussions/login.jspa>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_discussions/admin>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /owc_wiki/adfAuthentication>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /integration/worklistapp>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /workflow/WebCenterWorklistDetail>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
        <Location /workflow/sdpmessagingsca-ui-worklist>
          OssoSendCacheHeaders off
          require valid-user
          AuthType Osso
        </Location>
     
    </IfModule>
    #
    # If you would like to have short hostnames redirected to
    # fully qualified hostnames to allow clients that need
    # authentication via mod_osso to be able to enter short
    # hostnames into their browsers uncomment out the following
    # lines
    #
    #PerlModule Apache::ShortHostnameRedirect
    #PerlHeaderParserHandler Apache::ShortHostnameRedirect
    

    Be sure to change the OssoConfigFile parameter to point to the location (and filename if you've changed it) of your osso.conf file.

  4. Restart the WebTier so that the configuration changes to mod_osso and mod_wl to take effect.

  5. For the Worklist service changes to take effect, run the following command on the WebCenter Adminstration server:

    setBPELConnection('webcenter','WebCenter-Worklist', 'http://webcenter-stage.example.com')
    
  6. To only allow users to access WebCenter and other services through the WebTier OHS ports so that they can be properly authenticated, follow the steps in Section 14.7.1.7.5, "Restricting Access with Connection Filters".

14.7.3 Configuring SAML-based Single Sign-on

Security Assertion Markup Language (SAML) enables cross-platform authentication between Web applications or Web Services running in a WebLogic Server domain and Web browsers or other HTTP clients. WebLogic Server supports single sign-on (SSO) based on SAML. When users are authenticated at one site that participates in a single sign-on (SSO) configuration, they are automatically authenticated at other sites in the SSO configuration and do not need to log in separately.

This SSO mechanism can be used for departmental WebCenter installations for which there is no existing Oracle SSO or Oracle Access Manager single sign-on infrastructure, but single sign-on between only WebCenter Spaces and its services is required. For High Availability and large enterprise deployments, the Oracle Access Manager SSO configuration is recommended.

This section describes how to set up SAML 1.1-based single sign-on for Oracle WebCenter Spaces and the Wiki and Worklist services running on different managed servers within the same domain.

This section includes the following subsections:

14.7.3.1 SAML Components and Topology

Figure 14-84 shows the components and their interaction in a SAML-based single sign-on configuration that includes WebCenter Spaces and the Wiki service.

A SAML-based single sign-on solution consists of the following components:

  • SAML Credential Mapper - The SAML Credential Mapping provider acts as a producer of SAML security assertions, allowing WebLogic Server to act as a source site for using SAML for single sign-on. The SAML Credential Mapping provider generates valid SAML 1.1 assertions for authenticated subjects based on the configuration of the target site or resource.

  • Inter Site Transfer Service (ITS) - an addressable component that generates identity assertions and transfers the user to the destination site.

  • Assertion Retrieval Service (ARS) - an addressable component that returns the SAML assertion that corresponds to the artifact. The assertion ID must have been allocated at the time assertion was generated.

  • SAML Identity Asserter - The SAML Identity Assertion provider acts as a consumer of SAML security assertions, allowing WebLogic Server to act as a destination site for using SAML for single sign-on. The SAML Identity Assertion provider processes valid SAML 1.1 assertions for authenticated subjects obtained from the source site or resource.

  • Assertion Consumer Service (ACS) - an addressable component that receives assertions and/or artifacts generated by the ITS and uses them to authenticate users at the destination site

  • SAML Relying party - A SAML Relying Party is an entity that relies on the information in a SAML assertion produced by the SAML source site. You can configure how WebLogic Server produces SAML assertions separately for each Relying Party or use the defaults established by the Federation Services source site configuration for producing assertion.

  • SAML Asserting party - A SAML Asserting Party is a trusted SAML Authority (an entity that can authoritatively assert security information in the form of SAML Assertions).

Figure 14-83 shows the components and flow for a POST-configured SAML SSO configuration that includes both a WebCenter and SOA domain. The flow is similar for other destination applications participating in single sign-on such as RSS, Worklist applications, and Discussions.

Figure 14-83 Detailed SAML Single Sign-on Components and Topology (POST Profile Configured)

Description of Figure 14-83 follows
Description of "Figure 14-83 Detailed SAML Single Sign-on Components and Topology (POST Profile Configured)"

Figure 14-84 shows a simplified version of the components and flow for a POST-configured SAML SSO configuration, including the SAML SSO flow between WebCenter Spaces and the OWC Wiki application.

Figure 14-84 SAML Single Sign-on Components and Topology (POST Profile Configured)

Description of Figure 14-84 follows
Description of "Figure 14-84 SAML Single Sign-on Components and Topology (POST Profile Configured)"

The steps in the flow are:

  1. The user's browser accesses WebCenter Spaces (source site), hosted on a WebLogic managed server (WLS_Spaces) in the WebCenter domain (wc_domain), by supplying user credentials.

  2. WebCenter Spaces passes the user credentials to the authentication service provider.

  3. If authentication is successful, the authenticated session is established, and the WebCenter Spaces welcome page is displayed.

  4. From the welcome page, the user then clicks on a link on the page to access a secured Web page of the Wiki service (destination site), hosted on a different WebLogic Server (WLS_Services) in the same domain. This triggers a call to the Inter-Site Transfer Service (ITS) servlet configured. In this case, the ITS servlet is hosted within the source site (that is, on the WebCenter Spaces application on the WLS_Spaces managed server) that will share the same JSESSIONID cookie as WebCenter Spaces.

  5. The ITS servlet calls the SAML Credential Mapper configured in the WebCenter domain (wc_domain) to request a caller assertion. The SAML Credential Mapper returns the assertion. It also returns the URL of the destination site application Web page (a secured Web page of the Wiki service) and path to the appropriate POST form (if the source site is configured to use the POST profile).

  6. The SAML ITS servlet generates a SAML response containing the generated assertion, signs it, base-64 encodes it, embeds it in the HTML form, and returns the form to the user's browser.

  7. The user's browser POSTs the form to the destination site's Assertion Consumer Service (ACS). In this case, the ACS Servlet is hosted in destination site (the Wiki service) and shares its login cookie.

  8. The assertion is validated.

  9. If the assertion is successful, the user is redirected to the target (the secured Web page of the Wiki service).

  10. The user is logged in on the destination site Wiki service without having to reauthenticate.

14.7.3.2 Configuring SAML-based Single Sign-on

Configuring SAML-based SSO consists of the following six steps:

14.7.3.2.1 Checking the Default WebCenter Spaces and Services Login

After installing WebCenter Spaces and the Wiki and Worklist services, you must test the single sign-on configuration.

To check the default WebCenter Spaces and Wiki service login:

  1. Install WebCenter Spaces, and select the Wiki service and Discussions service, and any other service applications to be configured for SSO (RSS is automatically deployed when you install WebCenter Spaces). For information on installing WebCenter Spaces, see "Installing WebCenter Spaces, Portlet Producers, Discussions, and Wiki and Blogs" in the Oracle Fusion Middleware Installation Guide for Oracle WebCenter.

    When the installation is complete, WebCenter Spaces is hosted on the WLS_Spaces managed server, and Wiki and Discussions services are hosted on the WLS_Services managed server. Record the host and port that the Wiki service is running on so, later on, you can construct the URL and test single sign-on.

  2. Log into WebCenter Spaces and create a personal page with a link to the Wiki service as shown below:

    1. Log in to WebCenter Spaces as a user with create page permissions.

    2. Create a new page by clicking on the Create a page tab in a group space.

    3. Title the page appropriately (for example, "Wiki") and choose the Web page template.

    4. Click the Inspector button and click on the Web page.

    5. Change the source to be the URL specified below:

      http://host:port/owc_wiki/page/show.jz?inline=1&scope=#{communityContext.communityName}
      

      Where host is the Wiki server host ID and port is the Wiki server port number.

    6. Save the page.

    When you click the link, note that you are challenged to log in by the Wiki service. Once you have completed the remainder of the steps, this is not required. You will be automatically logged into Wiki service.

  3. For the Worklist service, install SOA (which includes the BPEL server). For information on installing SOA, see Oracle Fusion Middleware Installation Guide for Oracle SOA Suite.

  4. Configure the BPEL connection for WebCenter Spaces as described in Section 11.5, "Setting Up Connections for the Worklist Service".

  5. To test the BPEL connection:

    1. Log into WebCenter Spaces, create a group space, and add your administrator account as a moderator.

    2. Log into WebCenter Spaces with your administrator account.

      You should see a new item in the Worklist task flow indicating that you have been added as a moderator for the group space.

    3. Click the link.

      Note that you are challenged to log in. After you have completed the rest of the steps you automatically log into the Worklist service on the SOA domain.

14.7.3.2.2 Generating and Registering Certificates

Although optional, to secure communication between the SAML source and destination sites, communication should be encrypted. Additionally, certificates should be used to verify the identity of the other party during SAML interaction. Follow the steps below to generate a key using the keytool utility (available as part of the JDK 6.0), and register it using the WLS Administration Console.

To create certificates using keytool

  1. Navigate to the WEBLOGIC_HOME/server/lib directory.

  2. Using keytool, generate the key with the following command:

    keytool -genkey -keypass key_password -keystore keystore_name -storepass keystore_password -keyalg rsa -alias alias
    

    Where:

    • key_password is the password to apply to the generated key

    • keystore_name is the name of the custom keystore

    • keystore_password is the password for the custom keystore

    • alias is the alias name (for example, testalias)

  3. Run the keytool command with -export option to generate a key file calling it, for example, testalias.der.

    keytool -export -keypass key_password -keystore keystore_name -storepass keystore_password -alias alias -file testalias.der
    

    where:

    • key_password is the password for the generated key

    • keystore_name is the name of the custom keystore

    • keystore_password is the password for the custom keystore

    • alias is the alias name (for example, testalias)

To register the keystore using the WLS Administration Console

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. In the Domain Structure pane, expand Environment and click Servers.

    The Summary of Servers pane displays (see Figure 14-85).

    Figure 14-85 Summary of Servers Pane

    Description of Figure 14-85 follows
    Description of "Figure 14-85 Summary of Servers Pane"

  3. Click the WebCenter Spaces server (WLS_Spaces) to configure the identity and trust keystore.

    The Settings pane for the WebCenter Spaces server displays (see Figure 14-86).

    Figure 14-86 Settings Pane for WebCenter Spaces Server

    Description of Figure 14-86 follows
    Description of "Figure 14-86 Settings Pane for WebCenter Spaces Server"

  4. Open the Configuration tab, and then the Keystores subtab.

    The Keystores pane displays (see Figure 14-87).

    Figure 14-87 Keystores Pane

    Description of Figure 14-87 follows
    Description of "Figure 14-87 Keystores Pane"

  5. For Keystores, select Custom Identity and Java Standard Trust.

  6. In the Identity section, enter the path to the Custom Identity Keystore you created, choose JKS as the Type, and enter and confirm the Custom Identity Keystore Passphrase.

  7. In the Trust section, enter the path to the trust keystore in Java Standard Trust Keystore, enter JKS as the Type, and enter and confirm the Java Standard Trust Keystore Passphrase.

  8. Click Save.

14.7.3.2.3 Creating the SAML Credential Mapping Provider Instance

This section describes how to create a SAML Credential Mapping Provider V2 instance. Note that the SAML Credential Mapping provider is not part of the default security realm and must be created.

Creating the SAML Credential Mapping Provider instance is the first of two steps required to configure the credential mapping provider:

  • Creating the SAML Credential Mapping Provider instance

  • Configuring a Relying Party for each of the participating service applications (which can include OWC Wiki, OWC Discussions, RSS, Worklist Community Detail, Worklist SDP, and Worklist Integration)

To create a SAML Credential Mapping Provider instance:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-88).

    Figure 14-88 Summary of Security Realms Pane

    Description of Figure 14-88 follows
    Description of "Figure 14-88 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-89).

    Figure 14-89 Security Realm Settings Page

    Description of Figure 14-89 follows
    Description of "Figure 14-89 Security Realm Settings Page"

  4. Open the Providers tab and select the Credential Mapping subtab.

    The Credential Mapping pane displays (see Figure 14-90).

    Figure 14-90 Credential Mapping Pane

    Description of Figure 14-90 follows
    Description of "Figure 14-90 Credential Mapping Pane"

  5. Click New.

    The Create a New Credential Mapping Provider pane displays (see Figure 14-91).

    Figure 14-91 Create a New Credential Provider Pane

    Description of Figure 14-91 follows
    Description of "Figure 14-91 Create a New Credential Provider Pane"

  6. Enter a Name for the provider, select the Type as SAMLCredentialMapperV2, and click OK.

  7. On the Security Realm Settings page, click the provider you just created.

    The Settings page for the new provider displays (see Figure 14-92).

    Figure 14-92 Provider Settings Pane

    Description of Figure 14-92 follows
    Description of "Figure 14-92 Provider Settings Pane"

  8. Open the Provider Specific tab.

    The Provider Specific Settings Pane displays (see Figure 14-93).

    Figure 14-93 Provider Specific Settings Pane

    Description of Figure 14-93 follows
    Description of "Figure 14-93 Provider Specific Settings Pane"

  9. Configure the SAML Credential Mapping provider as a SAML authority, using the Issuer URI, Name Qualifier, and other attributes as shown below in Table 14-3. Leave the remaining parameters set to their default values.

    Table 14-3 SAML Credential Mapping Provider Security Realm Settings

    Parameter Value Description

    Issuer URI

    http://www.example.com/webcenter

    The Issuer URI (name) of this SAML Authority. This unique URI tells the destination site (Wiki service) the origin of the SAML message and allows it to match with the key. Typically, the URI is used to guarantee uniqueness.

    Name Qualifier

    example.com

    The Name Qualifier value used by the Name Mapper. The value of the Name Qualifier is the security or administrative domain that qualifies the name of the subject. This provides a means to federate names from disparate user stores while avoiding the possibility of subject name collision.

    Web Service Assertion Signing Key Alias


    The alias used to retrieve from the keystore the key that is used to sign assertions (for example, testalias).

    Web Service Assertion Signing Key Passphrase


    The credential (password) used to retrieve from the keystore the keys used to sign assertions (for example, testkeypass).

    Please type again To confirm


    Re-enter the credential password.


  10. Click Save to save your settings.

  11. Restart the WebLogic Administration server.

14.7.3.2.4 Configuring a Relying Party

Configuring a relying party is the second of two steps required to configure the credential mapping provider:

  • Creating the SAML Credential Mapping Provider instance

  • Configuring a relying party for each of the participating service applications (which can include OWC Wiki, OWC Discussions, RSS, Worklist Community Detail, Worklist SDP, and Worklist Integration)

To configure a relying party:

  1. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-94).

    Figure 14-94 Summary of Security Realms Pane

    Description of Figure 14-94 follows
    Description of "Figure 14-94 Summary of Security Realms Pane"

  2. Click your security realm and open the Providers tab and the Credential Mapping subtab.

    The Credential Mapping Providers Settings pane displays (see Figure 14-95).

    Figure 14-95 Credential Mapping Providers Settings Pane

    Description of Figure 14-95 follows
    Description of "Figure 14-95 Credential Mapping Providers Settings Pane"

  3. Click the SAML Credential Mapping Provider you created.

  4. Open the Management tab and the Relying Parties tab on the Settings page for the provider.

    The Relying Parties Management Settings pane displays (see Figure 14-96).

    Figure 14-96 Relying Parties Management Settings Pane

    Description of Figure 14-96 follows
    Description of "Figure 14-96 Relying Parties Management Settings Pane"

  5. Click New.

    The Create a New Relying Parties page displays (see Figure 14-97).

    Figure 14-97 Create a New Relying Party Page

    Description of Figure 14-97 follows
    Description of "Figure 14-97 Create a New Relying Party Page"

  6. Select Browser/POST as the SAML Profile, and provide a Description (for example, Wiki).

  7. Click OK to save your settings.

  8. On the Relying Parties Management Settings pane, click the Partner ID of the Relying Party you just created (the Partner ID is automatically generated for you).

    The Relying Party Settings page displays (see Figure 14-98).

    Figure 14-98 Relying Party Settings Page

    Description of Figure 14-98 follows
    Description of "Figure 14-98 Relying Party Settings Page"

  9. On the Relying Parties page, use the settings shown in Table 14-1 to configure a relying party for the Wiki service. Leave the remaining parameters set to their default values. Click Save when finished.

    Table 14-4 Relying Party Settings for Wiki Service

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    OWC Wiki

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8890/owc_wiki/user/login.jz).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://exmple.com:8888/owc_wiki/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use HTTPS protocol and the SSL port for the WLS_Services managed server.

    Assertion Consumer Properties

    APID=ap_00001

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case, ap_00001 indicates the ID of the asserting party for the Wiki application configured in the SAML Identity Asserter of the WebCenter domain which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


  10. Repeat steps 1 - 8 to configure a relying party for the Worklist Community Detail service using the settings shown in Table 14-1. Leave the remaining parameters on the Relying Parties page set to their default values. Click Save when finished.

    Table 14-5 Relying Party Settings for Worklist Community Detail

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    Worklist Detail

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8001/workflow/WebCenterWorklistDetail/faces/adf.task-flow).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://example.com:8888/workflow/WebCenterWorklistDetail/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use https protocol and the SSL port for the SOA managed server.

    Assertion Consumer Properties

    APID=ap_00001

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case ap_00001 indicates the ID of the asserting party configured for Worklist Detail in the SAML Identity Asserter of the SOA domain, which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


  11. Repeat steps 1 - 8 to configure a relying party for the Worklist SDP service using the settings shown in Table 14-1. Leave the remaining parameters on the Relying Parties pages set to their default values. Click Save when finished.

    Table 14-6 Relying Party Settings for Worklist SDP

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    WebCenter SDP

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8001/workflow/sdpmessagingsca-ui-worklist/faces/adf.task-flow).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://exmple.com:8888/workflow/sdpmessagingsca-ui-worklist/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use https protocol and the SSL port for the SOA managed server.

    Assertion Consumer Properties

    APID=ap_00002

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case ap_00002 indicates the ID of the asserting party configured for the Worklist SDP application in the SAML Identity Asserter of the SOA domain, which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


  12. Repeat steps 1 - 8 to configure a relying party for the Worklist Integration service using the settings shown in Table 14-1. Leave the remaining parameters on the Relying Parties pages set to their default values. Click Save when finished.

    Table 14-7 Relying Party Settings for Worklist Integration

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    WebCenter SDP

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8001/integration/worklistapp).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://exmple.com:8888/workflow/sdpmessagingsca-ui-worklist/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use https protocol and the SSL port for the SOA managed server.

    Assertion Consumer Properties

    APID=ap_00003

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case ap_00003 indicates the ID of the asserting party configured the for Worklist Integration application in the SAML Identity Asserter of the SOA domain, which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


  13. Repeat steps 1 - 8 to configure a relying party for the RSS application using the settings shown in Table 14-1. Leave the remaining parameters on the Relying Parties pages set to their default values. Click Save when finished.

    Table 14-8 Relying Party Settings for RSS

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    RSS

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8888/rss/rssservlet).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://exmple.com:8888/rss/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use https protocol and the SSL port for the WLS_Spaces managed server.

    Assertion Consumer Properties

    APID=ap_00002

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case ap_00002 indicates the ID of the asserting party configured for RSS in the SAML Identity Asserter of the WebCenter domain, which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


  14. Repeat steps 1 - 8 to configure a relying party for the Discussions application using the settings shown in Table 14-1. Leave the remaining parameters on the Relying Parties pages set to their default values. Click Save when finished.

    Table 14-9 Relying Party Settings for Discussions

    Parameter Value Description

    Enabled

    Checked

    The state of this SAML Relying Party.

    Description

    Discussions

    A short description of this Relying Party

    Target URL


    The destination site URL for which authentication is requested (for example: http://example.com:8890/owc_discussions/admin/content-main.jsp).

    Assertion Consumer URL


    The URL at which an Assertion Consumer Service for this SAML Relying Party can be reached (for example, http://exmple.com:8890/owc_discussions/samlacs/acs).

    Indicates the URL to which an assertion or artifact should be POSTed or redirected.

    Note: If you have checked ACS requires SSL while configuring destination site federation services, then use https protocol and the SSL port for the managed server.

    Assertion Consumer Properties

    APID=ap_00003

    One or more optional query parameters, in the form name=value, that will be added to the ACS URL when redirecting to the destination site. In the case of POST profile, these parameters will be included as form variables when using the default POST form. In this case ap_00003 indicates the ID of the asserting party configured for the Discussions application in the SAML Identity Asserter of the WebCenter domain, which provides the source site (WebCenter Spaces) and ITS details.

    Sign Assertions

    Checked

    Specifies whether generated assertions for this SAML Relying Party are signed.

    Include KeyInfo

    Checked

    Indicates whether a <ds:keyinfo> element containing the signing certificate should be included when signing assertions. The default value is true. This value is ignored if Sign Assertions is false.


14.7.3.2.5 Configuring Source Site Federation Services

This section describes how to create and configure source site Federation services.

To configure Source Site Federation Services:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. On the Domain Structure pane, expand the Environment node and click Servers.

    The Summary of Servers page displays (see Figure 14-99).

    Figure 14-99 Summary of Servers Page

    Description of Figure 14-99 follows
    Description of "Figure 14-99 Summary of Servers Page"

  3. Click WLS_Spaces and open the Configuration tab.

  4. Open the Federation Services subtab and the SAML 1.1 Source Site subtab.

    The Federation Services Configuration SAML 1.1 Source Site Settings page for the WLS_Spaces server displays (see Figure 14-100).

    Figure 14-100 Federation Services Configuration SAML 1.1 Source Site Settings Page

    Description of Figure 14-100 follows
    Description of "Figure 14-100 Federation Services Configuration SAML 1.1 Source Site Settings Page"

  5. Configure the SAML source site attributes as shown in Figure 14-100. Leave the remaining parameters set to their default values.

    Table 14-10 Source Site Federation Services Parameters

    Parameter Value Description

    Source Site Enabled

    Checked

    Allow the WebLogic server instance to serve as a SAML source site by setting Source Site Enabled to true.

    Source Site URL


    Set the URL for the SAML source site (for example, http://example.com:8888/webcenter). This is the URL that hosts the Intersite Transfer Service and Assertion Retrieval Service. The source site URL is encoded as a source ID in hex and Base64.

    Signing Key Alias


    The SAML source site requires a trusted certificate with which to sign assertions. Add this certificate to the keystore and enter the alias (for example, testalias) to be used to access the certificate. The server's SSL identity key/certificates will be used by default if a signing alias and passphrase are not supplied.

    Signing Key Passphrase


    The SAML source site requires a trusted certificate with which to sign assertions. Add this certificate to the keystore and enter the passphrase (for example, testkeypass) to be used to access the certificate. The server's SSL identity key/certificates will be used by default if a signing alias and passphrase are not supplied.

    Intersite Transfer URIs

    /webcenter/samlits/its [add on top, leave the rest]

    Specify the URIs for the Intersite Transfer Service. These URIs are also specified in the configuration of an Asserting Party.

    Assertion Retrieval URIs

    /webcenter/samlars/ars [add on top, leave the rest]

    N/A - URI for Assertion Retrieval Service used when artifact profile is used.

    ITS Requires SSL

    Unchecked

    Note: If you check this, then you need to change the Source Site ITS URL specified in the SAML Asserting Party configuration in the SAML Identity provider as HTTPS and the server's SSL port.

    ARS Requires SSL

    Unchecked

    Applicable only when Artifact profile is used


  6. Click Save to save your settings when done.

  7. Restart the WLS_Spaces managed server.

14.7.3.2.6 Configuring the SAML Identity Assertion Provider

This section describes how to create and configure a SAML Identity Assertion Provider V2 instance (the SAML Identity Assertion provider is not part of the default security realm). This section also describes how to establish trust by registering the source site's SSL certificate in the certificate registry maintained by the SAML Identity Assertion provider.

To create a SAML Identity Assertion Provider

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-101).

    Figure 14-101 Summary of Security Realms Pane

    Description of Figure 14-101 follows
    Description of "Figure 14-101 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-102).

    Figure 14-102 Security Realm Settings Page

    Description of Figure 14-102 follows
    Description of "Figure 14-102 Security Realm Settings Page"

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays (see Figure 14-103).

    Figure 14-103 Authentication Settings Pane

    Description of Figure 14-103 follows
    Description of "Figure 14-103 Authentication Settings Pane"

  5. Click New.

    The Create a New Authentication Provider page displays (see Figure 14-104).

    Figure 14-104 Create a New Authentication Provider Page

    Description of Figure 14-104 follows
    Description of "Figure 14-104 Create a New Authentication Provider Page"

  6. Enter a Name for the new SAML Identity Asserter, and select the Type as SAMLIdentityAsserterV2.

  7. Click OK to save your settings.

  8. Restart the WebLogic Administration server if indicated in the Messages area.

  9. Go to the SOA domain and create a SAML Identity Asserter provider there as well using the steps above.

To configure a certificate for the SAML ID Asserter

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-105).

    Figure 14-105 Summary of Security Realms Pane

    Description of Figure 14-105 follows
    Description of "Figure 14-105 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-106).

    Figure 14-106 Security Realm Settings Page

    Description of Figure 14-106 follows
    Description of "Figure 14-106 Security Realm Settings Page"

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays (see Figure 14-107).

    Figure 14-107 Authentication Settings Pane

    Description of Figure 14-107 follows
    Description of "Figure 14-107 Authentication Settings Pane"

  5. Click the SAML Identity Asserter you created and open the Management tab and the Certificates subtab.

    The Certificate Settings pane displays (see Figure 14-108).

    Figure 14-108 Certificate Settings Pane

    Description of Figure 14-108 follows
    Description of "Figure 14-108 Certificate Settings Pane"

  6. Click New.

    The Create a New Identity Asserter Certificate page displays (see Figure 14-109).

    Figure 14-109 Create a New Identity Asserter Certificate Page

    Description of Figure 14-109 follows
    Description of "Figure 14-109 Create a New Identity Asserter Certificate Page"

  7. Configure the certificate as shown in Table 14-11.

    Table 14-11 Certificates Page Parameters

    Parameter Value Description

    alias


    The name to assign to your new Certificate This is the alias of the keystore you created in Section 14.7.3.2.2, "Generating and Registering Certificates".

    Path


    Specify the path name of the .der file containing the X509 certificate you wish to import. This is the file you created in Section 14.7.3.2.2, "Generating and Registering Certificates".


  8. Click OK to save your settings.

  9. Repeat the previous step for the SAML ID Asserter created in the SOA domain. Be sure to copy over testalias.der (assuming that this was the name given to your .DER file) from your WebLogic Home to the machine hosting the SOA domain.

To Configure an Asserting Party

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-110).

    Figure 14-110 Summary of Security Realms Pane

    Description of Figure 14-110 follows
    Description of "Figure 14-110 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-111).

    Figure 14-111 Security Realm Settings Page

    Description of Figure 14-111 follows
    Description of "Figure 14-111 Security Realm Settings Page"

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays (see Figure 14-112).

    Figure 14-112 Authentication Settings Pane

    Description of Figure 14-112 follows
    Description of "Figure 14-112 Authentication Settings Pane"

  5. Click the SAML Identity Asserter you created and open the Management tab and the Asserting Parties subtab.

    The Asserting Parties Settings pane displays (see Figure 14-113).

    Figure 14-113 Asserting Parties Settings Pane

    Description of Figure 14-113 follows
    Description of "Figure 14-113 Asserting Parties Settings Pane"

  6. Click New.

    The Create a New Asserting Party page displays (see Figure 14-114).

    Figure 14-114 Create a New Asserting Party Page

    Description of Figure 14-114 follows
    Description of "Figure 14-114 Create a New Asserting Party Page"

  7. Select the Profile and provide a Description for the Asserting Party.

    Use the same SAML profile you chose for the corresponding relying party (for example, Browser/POST).

  8. Click OK to save your settings.

  9. From the Asserting Parties Settings pane, click the Partner ID of the Asserting Party you just created (the Partner ID is assigned automatically).

    The Settings page for the new Asserting Party displays (see Figure 14-115).

    Figure 14-115 Asserting Party Settings Page

    Description of Figure 14-115 follows
    Description of "Figure 14-115 Asserting Party Settings Page"

  10. Configure the Asserting Party for the WC domain Wiki service as shown in Table 14-12. For more information, see Table 14-4, "Relying Party Settings for Wiki Service".

    Table 14-12 WC Domain - Asserting Party for Wiki

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions

    Description


    A short description of this Asserting Party (for example, WebCenter Spaces for Wiki)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). Must be set when using the Browser/POST profile.

    Source Site Redirect URIs

    /owc_wiki/user/login.jz

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00001

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case, rp_00001 is the relying party ID for the OWC Wiki application specified in the SAML Credential Mapping Provider of the WebCenter domain which provides the destination site details. For more information, see Table 14-4, "Relying Party Settings for Wiki Service".

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If true, assertions must be signed. If false, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


  11. Click Save to save your settings.

  12. Repeat steps 1 - 11 using the settings shown in Table 14-13 to configure the Asserting party for the WC domain RSS application.

    Table 14-13 WC Domain - Asserting Party for RSS

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions.

    Description


    A short description of this Asserting Party (for example, WebCenter Spaces for RSS)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). Must be set when using the Browser/POST profile.

    Source Site Redirect URIs

    /rss/rssservlet

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00002

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case rp_00005 is the relying party ID for RSS specified in the SAML Credential Mapping provider of the WebCenter domain which provides the destination site details. See Table 14-8, "Relying Party Settings for RSS" for more information about RSS settings.

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If true, assertions must be signed. If false, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


  13. Repeat steps 1 - 11 using the settings shown in Table 14-14 to configure the Asserting party for the WC domain Discussions application.

    Table 14-14 WC Domain - Asserting Party for RSS

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions.

    Description


    A short description of this Asserting Party (for example, WebCenter Spaces for Discussions)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). This must be set when using the Browser/POST profile.

    Source Site Redirect URIs

    /owc_discussions/admin/content-main.jsp

    /owc_discussions/login!withRedirect.jspa

    /owc_discussions/login!default.jspa

    /owc_discussions/login.jspa

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00006

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case rp_00006 is the relying party ID for OWC Discussions specified in the SAML Credential Mapping provider of the WebCenter domain which provides the destination site details. See Table 14-8, "Relying Party Settings for RSS" for more information about RSS settings.

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If true, assertions must be signed. If false, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


  14. Change domains to the SOA domain and repeat steps 1 - 11 using the settings shown in Table 14-15 to configure the Asserting Party for the SOA domain Worklist Community Detail service.

    Table 14-15 SOA Domain - Asserting Party for Worklist Community Detail

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions

    Description


    A short description of this Asserting Party (for example, WebCenter Spaces for Worklist Detail)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). Must be set when using Browser/POST profile.

    Source Site Redirect URIs

    /workflow/WebCenterWorklistDetail/faces/adf.task-flow

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00001

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case rp_00002 is the relying party ID for the Worklist Detail application specified in the SAML Credential Mapping provider for the WebCenter domain, which provides the destination site details. For more information, see Table 14-5, "Relying Party Settings for Worklist Community Detail".

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If checked, assertions must be signed. If unchecked, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


  15. Change domains to the SOA domain and repeat steps 1 - 11 using the settings shown in Table 14-16 to configure the Asserting Party for the SOA domain Worklist SDP service. For more information see Table 14-6, "Relying Party Settings for Worklist SDP" and Table 14-7, "Relying Party Settings for Worklist Integration".

    Table 14-16 SOA Domain - Asserting Party for Worklist SDP

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions.

    Description


    A short description of this Asserting Party (for example, WebCenter Spaces for Worklist SDP)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). Must be set when using Browser/POST profile.

    Source Site Redirect URIs

    /workflow/sdpmessagingsca-ui-worklist/faces/adf.task-flow

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00002

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case rp_00003 is the relying party ID for the Worklist SDP application specified in the SAML Credential Mapping provider of the WebCenter domain, which provides the destination site details.

    For more information, see Table 14-6, "Relying Party Settings for Worklist SDP".

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If true, assertions must be signed. If false, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


  16. Change domains to the SOA domain and repeat steps 1 - 11 using the settings shown in Table 14-17 to configure the Asserting Party for the SOA domain Worklist Community Integration service.

    Table 14-17 In SOA Domain, Asserting party For Worklist Integration

    Parameter Value Description

    Enabled

    Checked

    Specifies whether this Asserting Party can be used to obtain SAML assertions

    Description

    WebCenter Spaces for Worklist SDP

    A short description of this Asserting Party (for example, WebCenter Spaces for Worklist SDP)

    Target URL


    The target URL of this SAML Asserting Party (for example, http://example.com:8888/webcenter)

    POST Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on SAML protocol elements from this Asserting Party (for example, testalias). Must be set when using Browser/POST profile.

    Source Site Redirect URIs

    /integration/worklistapp/ssologin

    /integration/worklistapp/faces/home.jspx

    An optional set of URIs from which unauthenticated users will be redirected to the configured ITS URL. If set, the IntersiteTransferURL must also be set.

    Note: Based on this setting, when you first access the destination site, you are redirected to the configured ITS URL (which in this case is within the source application), your session is established with the source application and then redirected to the destination site.

    Source Site ITS URL


    The Intersite Transfer Service (ITS) URL of the SAML Source Site for this Asserting Party (for example, http://example.com:8888/webcenter/samlits/its).

    Used with SSO profiles only, to support the destination site first scenario, whereby a user tries to access a destination site URL prior to being authenticated and is redirected to the source site to be authenticated and obtain a SAML assertion. The Redirect URIs attribute must also be configured for source-site redirection to work.

    Note: If you check ITS requires SSL in Source Site Federation Services, you must also change the Source Site ITS URL to use HTTPS and the server's SSL port.

    Source Site ITS parameters

    RPID=rp_00003

    Optionally, zero or more query parameters, of the form name=value, that will be added to the ITS URL when redirecting to the source site. In this case rp_00004 is the relying party ID for the Worklist Integration application specified in the SAML Credential Mapping provider of the WebCenter domain, which provides the destination site details.

    For more information, see Table 14-7, "Relying Party Settings for Worklist Integration".

    Issuer URI


    The issuer URI of the SAML Authority issuing assertions for this SAML Asserting Party (for example, http://www.example.com/webcenter).

    Signature Required

    Checked

    If true, assertions must be signed. If false, signature elements are not required, but will be verified if present.

    Assertion Signing Certificate alias


    The alias of the certificate trusted for verifying signatures on assertions from this Asserting Party (for example, testalias). This must be set if Signature Required is checked. The certificate must also be registered in the SAML Identity Asserter's certificate registry.


14.7.3.2.7 Configuring Destination Site Federation Services

This section describes how to configure the Destination Site Federation Services for the Wiki service, RSS, and the Worklist service on the SOA domain.

To configure the Destination Site Federation Services:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. On the Domain Structure pane, expand the Environment node and click Servers.

    The Summary of Servers page displays (see Figure 14-116).

    Figure 14-116 Summary of Servers Page

    Description of Figure 14-116 follows
    Description of "Figure 14-116 Summary of Servers Page"

  3. Click WLS_Services (the managed server where the Wiki service and Discussions service are deployed) and open the Configuration tab.

  4. Open the Federation Services tab and the SAML 1.1 Destination Site subtab.

    The SAML 1.1 Destination Site Settings pane displays (see Figure 14-117).

    Figure 14-117 SAML 1.1 Destination Site Settings Pane (Wiki and Discussions)

    Description of Figure 14-117 follows
    Description of "Figure 14-117 SAML 1.1 Destination Site Settings Pane (Wiki and Discussions)"

  5. Configure the SAML destination site attributes for the Wiki and Discussions applications as shown in Table 14-18.

    Table 14-18 SAML Destination Site Attributes (Wiki and Discussions)

    Parameter Value Description

    Destination Site Enabled

    Checked

    Specifies whether the Destination Site is enabled.

    ACS Requires SSL

    Unchecked

    Specifies whether the Assertion Consumer Service requires SSL. If checked, then ensure that the ACS URL specified in the Credential Mapper's relying party uses HTTPS and target server's SSL port.

    Assertion Consumer URIs

    /owc_wiki/samlacs/acs/owc_discussions/samlacs/acs[add on top, leave rest as is]

    The Assertion Consumer URIs. In this case, we have chosen for the ACS to reside within the target app so that it uses the same login cookie.

    POST Recipient Check Enabled

    Checked

    Specifies whether the POST recipient check is enabled. When checked, the recipient of the SAML Response must match the URL in the HTTP Request.

    POST One use Check Enabled

    Checked

    Specifies whether the POST one-use check is enabled.


  6. Click Save to save your settings, and restart the WLS_Services server so that they take effect.

  7. From the Domain Structure pane, expand the Environment node and click Servers.

  8. Click WLS_Spaces (the managed server where RSS is deployed) and open the Configuration tab.

  9. Open the Federation Services tab and the SAML 1.1 Destination Site subtab.

    The SAML 1.1 Destination Site Settings pane displays (see Figure 14-118).

    Figure 14-118 SAML 1.1 Destination Site Settings Pane (RSS)

    Description of Figure 14-118 follows
    Description of "Figure 14-118 SAML 1.1 Destination Site Settings Pane (RSS)"

  10. Configure the SAML destination site attributes for RSS as shown in Table 14-19.

    Table 14-19 SAML Destination Site Attributes (RSS)

    Parameter Value Description

    Destination Site Enabled

    Checked

    Specifies whether the Destination Site is enabled.

    ACS Requires SSL

    Unchecked

    Specifies whether the Assertion Consumer Service requires SSL. If checked, then ensure that ACS URL specified in Credential Mapper's relying party uses https and target server's SSL port.

    Assertion Consumer URIs

    /rss/samlacs/acs

    (add on top, leave rest as is)

    The Assertion Consumer URIs. In this case, we have chosen for the ACS to reside within the target app so that it uses the same login cookie.

    POST Recipient Check Enabled

    Checked

    Specifies whether the POST recipient check is enabled. When true, the recipient of the SAML Response must match the URL in the HTTP Request.

    POST One use Check Enabled

    Checked

    Specifies whether the POST one-use check is enabled.


  11. Click Save to save your settings, and restart the WSL_Spaces server so that they take effect.

  12. Navigate to the SOA domain and then to soa_server1, or the managed server where the Worklist applications are deployed.

  13. Follow the same steps as above to open the SAML 1.1 Destination Site subtab.

    The SAML 1.1 Destination Site Settings pane displays (see Figure 14-119).

    Figure 14-119 SAML 1.1 Destination Site Settings Pane (Worklist Detail and SDP)

    Description of Figure 14-119 follows
    Description of "Figure 14-119 SAML 1.1 Destination Site Settings Pane (Worklist Detail and SDP)"

  14. Configure the SAML 1.1 Destination Site attributes for Worklist Detail and SDP as shown in Table 14-20.

    Table 14-20 SOA Domain - SAML Destination Site Attributes (Worklist Detail and SDP)

    Parameter Value Description

    Destination Site Enabled

    Checked

    Specifies whether the Destination Site is enabled.

    ACS Requires SSL

    Unchecked

    Specifies whether the Assertion Consumer Service requires SSL. If checked, then ensure that ACS URL specified in Credential Mapper's relying party uses HTTPS and the target server's SSL port.

    Assertion Consumer URIs

    /workflow/WebCenterWorklistDetail/samlacs/acs

    /workflow/sdpmessagingsca-ui-worklist/samlacs/acs

    /integration/worklistapp/samlacs/acs

    (add on top, leave rest as is)

    The Assertion Consumer URIs. In this case, we have chosen for the ACS to reside within the target app so that it uses the same login cookie.

    POST Recipient Check Enabled

    Checked

    Specifies whether the POST recipient check is enabled. When checked, the recipient of the SAML Response must match the URL in the HTTP Request.

    POST One use Check Enabled

    Checked

    Specifies whether the POST one-use check is enabled.


  15. Click Save to save your settings.

  16. Restart the SOA managed server.

14.7.3.2.8 Checking Your Configuration

The last step in the process is to check that your single sign-on configuration is working. To do that:

  1. Check that when you try to access the Wiki and RSS applications independently, you are taken to the WebCenter Spaces login page (source site) and then directed to the URL you were trying to access.

  2. Now log into WebCenter Spaces and check that you're not challenged for credentials when:

    • You access the Wiki from a group space

    • You access RSS from a list task flow

    • You click Forum Administration from Group Space Settings > Services > Discussions (assuming this service is provisioned for the group space)

    • You click a Forum from Group Space Settings from Discussions

14.7.3.2.9 Configuring the Discussions Server for SAML SSO

To configure the discussions server for SAML single sign-on, be sure to perform these steps:

  1. Deploy the SSO-enabled discussions server as described in Section 14.7.1.7.2, "Deploying the Discussions Server"

  2. Configure a relying party for the Discussions application as described in Section 14.7.3.2.4, "Configuring a Relying Party"

  3. Configure an asserting party for the Discussions application as described in Section 14.7.3.2.6, "Configuring the SAML Identity Assertion Provider".

  4. Configure the Discussions application in the destination site federation services as described in Section 14.7.3.2.7, "Configuring Destination Site Federation Services"

14.7.4 Configuring SSO with Microsoft Clients

This section describes how to set up single sign-on (SSO) with Microsoft clients, using Windows authentication based on the Simple and Protected Negotiate (SPNEGO) mechanism and the Kerberos protocol, together with the WebLogic Negotiate Identity Assertion provider for the WebCenter Spaces application. This SSO approach enables Microsoft clients (such as browsers), authenticated in a Windows domain using Kerberos, to be transparently authenticated to web applications (such as WebCenter Spaces) in a WebLogic domain based on the same credentials, and without the need to type in their password again.

Cross-platform authentication is achieved by emulating the negotiate behavior of native Windows-to-Windows authentication services that use the Kerberos protocol. In order for cross-platform authentication to work, non-Windows servers (in this case, WebLogic Server) need to parse SPNEGO tokens in order to extract Kerberos tokens, which are then used for authentication.

14.7.4.1 Microsoft Client SSO Concepts

Understanding Kerberos

Kerberos is a secure method for authenticating a request for a service in a network. The Kerberos protocol comprises three parties: a client, a server and a trusted third party to mediate between them, known as the KDC (Key Distribution Center). Under Kerberos, a server allows a user to access its service if the user can provide the server a Kerberos ticket that proves its identity. Both the user and the service are required to have keys registered with the KDC.

The diagram below describes the basic exchanges that must take place before a client connects to a server.

Figure 14-120 Connecting to a Server Through a Key Distribution Center

Description of Figure 14-120 follows
Description of "Figure 14-120 Connecting to a Server Through a Key Distribution Center"

Understanding SPNEGO

SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) is a GSSAPI "pseudo mechanism" that is used to negotiate one of a number of possible real mechanisms. SPNEGO is used when a client application wants to authenticate to a remote server, but neither end is sure what authentication protocols the other supports. The pseudo-mechanism uses a protocol to determine what common GSSAPI mechanisms are available, selects one, and then dispatches all further security operations to it. This can help organizations deploy new security mechanisms in a phased manner.

SPNEGO's most visible use is in Microsoft's HTTP Negotiate authentication extension. The negotiable sub-mechanisms include NTLM and Kerberos, both used in Active Directory.

This feature enables a client browser to access a protected resource on WLS, and to transparently provide the WLS server with authentication information from the Kerberos database using a SPNEGO ticket. The WLS server is able to recognize the ticket and extract the information from it. WLS then uses the information for authentication and grants access to the resource if the authenticated user is authorized to access it. (Kerberos is responsible for authentication only; authorization is still handled by WLS).

Figure 14-121 SPNEGO-based Authentication

Description of Figure 14-121 follows
Description of "Figure 14-121 SPNEGO-based Authentication"

14.7.4.2 System Requirements

To use SSO with Microsoft clients you need:

A host computer with:

  • Windows 2000 or later installed

  • Fully-configured Active Directory authentication service. Specific Active Directory requirements include:

    • User accounts for mapping Kerberos services

    • Service Principal Names (SPNs) for those accounts

    • Key tab files created and copied to the start-up directory in the WebLogic Server domain

  • WebLogic Server installed and configured properly to authenticate through Kerberos, as described in this section

Client systems with:

  • Windows 2000 Professional SP2 or later installed

  • One of the following types of clients:

    • A properly configured Internet Explorer browser. Internet Explorer 6.01 or later is supported.

    • .NET Framework 1.1 and a properly configured Web Service client.


Note:

Clients must be logged on to a Windows 2000 domain and have Kerberos credentials acquired from the Active Directory server in the domain. Local logons will not work.

14.7.4.3 Configuring SSO with Microsoft Clients

Configuring SSO with Microsoft clients requires configuring the Microsoft Active Directory, the client, and the WebLogic Server domain shown in Figure 14-122. For detailed configuration steps and troubleshooting, see "Configuring Single Sign-On with Microsoft Clients" in Oracle Fusion Middleware Securing Oracle WebLogic Server.

Figure 14-122 Configuring SSO with Microsoft Clients

Description of Figure 14-122 follows
Description of "Figure 14-122 Configuring SSO with Microsoft Clients"

To configure Microsoft clients for SSO:

  1. Configure your network domain to use Kerberos.

  2. Create a Kerberos identification for WebLogic Server.

    1. Create a user account in the Active Directory for the host on which WebLogic Server is running.

    2. Create a Service Principal Name for this account.

    3. Create a user mapping and keytab file for this account.

  3. Choose a Microsoft client (in this case Internet Explorer) and configure it to use Windows Integrated authentication.

  4. Set up the WebLogic Server domain (wc_domain in this case) to use Kerberos authentication.

    1. Create a JAAS login file that points to the Active Directory server in the Microsoft domain and the keytab file created in Step 2.

    2. Configure a Negotiate Identity Assertion provider in the WebLogic Server security realm (see Section 14.7.4.3.1, "Configuring the Negotiate Identity Assertion Provider")

    3. Configure the WLS domain to use the Active Directory Authenticator so that the WebLogic domain uses the same Active Directory of the domain as the identity store. You could also use a different identity store and match the users in this store with the Active Directory users of your domain, but using the Active Directory authenticator is recommended as maintaining two different identity stores risks them getting out of sync. See Section 14.7.4.3.2, "Configuring an Active Directory Authentication Provider")


      Caution:

      Ensure that only the identity store is configured for Active Directory. The policy and credential stores are not certified for Active Directory.

  5. Start the WebLogic Servers (Administration Server and managed servers) using specific start-up arguments. Repeat steps 4 and 5 for the SOA Domain to enable single sign-on for SOA applications.

  6. Configure WebCenter Spaces (see Section 14.7.4.3.3, "Configuring WebCenter Spaces").

14.7.4.3.1 Configuring the Negotiate Identity Assertion Provider

This section provides instructions for creating and configuring a Negotiate Identity Assertion provider. The Negotiate Identity Assertion provider enables single sign-on (SSO) with Microsoft clients. The identity assertion provider decodes Simple and Protected Negotiate (SPNEGO) tokens to obtain Kerberos tokens, validates the Kerberos tokens, and maps them to WebLogic users. The Negotiate Identity Assertion provider uses the Java Generic Security Service (GSS) Application Programming Interface (API) to accept the GSS security context via Kerberos.

To configure the Negotiate Identity Assertion provider:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-123).

    Figure 14-123 Summary of Security Realms Pane

    Description of Figure 14-123 follows
    Description of "Figure 14-123 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-124).

    Figure 14-124 Security Realm Settings Page

    Description of Figure 14-124 follows
    Description of "Figure 14-124 Security Realm Settings Page"

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays (see Figure 14-125).

    Figure 14-125 Authentication Settings Pane

    Description of Figure 14-125 follows
    Description of "Figure 14-125 Authentication Settings Pane"

  5. Click New.

    The Create a New Authentication Provider pane displays (see Figure 14-126).

    Figure 14-126 Create a New Authentication Provider Pane

    Description of Figure 14-126 follows
    Description of "Figure 14-126 Create a New Authentication Provider Pane"

  6. Enter a Name for the identity asserter, and select NegotiateIdentityAsserter as the Type.

  7. Click OK.

14.7.4.3.2 Configuring an Active Directory Authentication Provider

Follow the steps below to configure an Active Directory authentication provider using the WebLogic Administration Console.

To configure an Active Directory Authentication provider:

  1. Log in to the WLS Administration Console.

    For information on logging into the WLS Administration Console, see Section 1.12.2, "Oracle WebLogic Server Administration Console".

  2. From the Domain Structure pane, click Security Realms.

    The Summary of Security Realms pane displays (see Figure 14-127).

    Figure 14-127 Summary of Security Realms Pane

    Description of Figure 14-127 follows
    Description of "Figure 14-127 Summary of Security Realms Pane"

  3. Click your security realm.

    The Settings page for the security realm displays (see Figure 14-128).

    Figure 14-128 Security Realm Settings Page

    Description of Figure 14-128 follows
    Description of "Figure 14-128 Security Realm Settings Page"

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays (see Figure 14-129).

    Figure 14-129 Authentication Settings Pane

    Description of Figure 14-129 follows
    Description of "Figure 14-129 Authentication Settings Pane"

  5. Click New.

    The Create a New Authentication Provider pane displays (see Figure 14-130).

    Figure 14-130 Create a New Authentication Provider Pane

    Description of Figure 14-130 follows
    Description of "Figure 14-130 Create a New Authentication Provider Pane"

  6. Enter a Name for the authentication provider, and select ActiveDirectoryAuthenticator as the Type.

  7. Click OK.

  8. Click on the authentication provider you just created in the list of providers.

    The Settings page for the provider displays (see Figure 14-131).

    Figure 14-131 Provider Settings Page

    Description of Figure 14-131 follows
    Description of "Figure 14-131 Provider Settings Page"

  9. Open the Configuration tab and the Common subtab.

  10. Set the Control Flag to SUFFICIENT and click Save.


    Note:

    The Control Flag settings of any other authenticators must also be changed to SUFFICIENT. If there is a pre-existing Default Authenticator that has its Control Flag set to REQUIRED, it must be changed to SUFFICIENT.

  11. Open the Provider Specific subtab.

    The Provider Specific Settings pane displays (see Figure 14-132).

    Figure 14-132 Provider Specific Settings Pane

    Description of Figure 14-132 follows
    Description of "Figure 14-132 Provider Specific Settings Pane"

  12. Complete the fields as shown in the table below. Leave the rest of the fields set to their default values.

    Table 14-21 Active Directory Authenticator Settings

    Parameter Value Description

    Host:


    The host ID of the LDAP server

    Port:


    The port number of the LDAP server

    Principal:


    The LDAP administrator principal

    Credential:



    User Base DN:


    The user search base (for example, OU=spnego unit,DC=admin,DC=oracle,DC=com)

    User From Name Filter:

    (&(cn=%u)(objectclass=user))


    User Search Scope:

    subtree


    User Name Attribute:

    cn


    User Search Scope:

    user


    Group Base DN:


    The group search base (same as User Base DN)

    Group From Name Filter:

    (&(cn=%g)(objectclass=group))


    Group Search Scope:

    subtree


    Static Group Name Attribute:

    cn


    Static Group Object Class:

    group


    Static Member DN Attribute:

    member


    Static Group DNs from Member DN Filter:

    (&(member=%M)(objectclass=group))



  13. Click Save.

  14. On the Provider Summary page, reorder the providers in the following order, making sure that their Control Flags are set to SUFFICIENT where applicable:

    1. Negotiate Identity Asserter

    2. ActiveDirectoryAuthenticator (SUFFICIENT)

    3. DefaultAuthenticator (SUFFICIENT)

    4. Other authenticators...

14.7.4.3.3 Configuring WebCenter Spaces

Once you have completed the steps for configuring the Negotiate Identity Assertion Provider and Active Directory Authenticator, and all applications on your WebLogic domain are configured for single sign-on with Microsoft clients in the required domain, a final step is required to provide a seamless single-sign-on experience for your users when accessing WebCenter Spaces. There are two options for doing this:

  • Turn off public access, by logging into WebCenter Spaces as an administrator and removing view access from the Public role. Once public access has been turned off, accessing the URL http://host:port/webcenter will directly take the user to the authenticated view rather than the default public page which has a login section. This is recommended when users will be accessing WebCenter Spaces only using Internet Explorer, and will be confined to the domain where WNA is set up.

  • If you need to retain public access to WebCenter Spaces, then the recommendation is to use the oracle.webcenter.osso.enabled flag when starting the WLS_Spaces server. This flag tells WebCenter Spaces that SSO is being used and no login form should be displayed on the default landing page. A login link is displayed instead that the user can click to invoke the SSO authentication where the user will be automatically logged in. If Firefox is used to access WebCenter Spaces within the Windows network configured for WNA, or any browser is used to access WebCenter Spaces from outside the Windows network domain, the user will see the login page after clicking the Login link.

14.8 Configuring WS-Security

This section describes setting up WS-Security for WebCenter Spaces and related components and includes the following subsections:

14.8.1 Securing the BPEL Server with WS-Security

WebCenter Spaces workflows deployed on a SOA instance invoke the WebCenter client APIs that are deployed on a WebCenter Spaces instance. To enable secure Web services calls between these two instances, the administrator must set up WS-Security as described in this section.

This section includes the following subsections:

Note that if the SOA server and WebCenter Spaces share the same domain the steps for generating the keystores are different. If the SOA server and WebCenter Spaces are on different domains follow the instructions in Section 14.8.1.1, "Generating the Keystores"; if the SOA server and WebCenter Spaces share the same domain follow the instructions in Section 14.8.1.2, "Generating the Keystores When the SOA Server and WebCenter Share the Same Domain." The remaining steps for Registering the Keystores and Updating the Credential Stores are the same in both cases.

14.8.1.1 Generating the Keystores

This section describes how to generate the keystores, and import the trusted certificates of the WebCenter keystore to the Oracle SOA instance using webcenter_spaces_ws as the alias.

This section includes the following subsections:

14.8.1.1.1 Generating the Keystores in the WebCenter Spaces Keystore

For information on how to generate keystores, see Section 14.8.4.3, "Setting Up the Keystores". In this case, WebCenter is the producer, and BPEL is the consumer.

14.8.1.1.2 Importing the Trusted Certificate of the WebCenter Spaces Keystore to the SOA Keystore

After you have created keystores in the WebCenter Spaces instance, import the trusted certificate of the alias webcenter_spaces_ws to the SOA instance.


Note:

The alias parameter must always be set to webcenter_spaces_ws. If you change the alias, the security setup will not work correctly.

To import the trusted certificate in the SOA keystore:

  1. Go to JAVA_HOME/bin/.

  2. Run the following command:

    keytool -importcert -alias webcenter_spaces_ws -file certificate_file -keystore keystore_name -storepass keystore_password
    

    Where:

    • certificate_file is the file name or path for the WebCenter's certificate file (for example, webcenter.cer)

    • keystore_name is the keystore name in the SOA instance (for example, bpel.jks)

    • keystore_password is the keystore password for the SOA instance's keystore.

    Example 14-1 Import Trusted Certificate in the SOA Instance

    keytool -importcert -alias webcenter_spaces_ws -file producer.cer -keystore  bpel.jks -storepass password
    
14.8.1.1.3 Generating a Key Pair in the SOA Instance

This section describes how to generate a key pair in the SOA instance.

To generate the key pair:

  1. Go to JAVA_HOME/bin/.

  2. Run the following command:

    keytool -genkeypair -keyalg RSA -dname "bpel_dname" -alias bpel_alias-keypass key_password -keystore keystore -storepass keystore_password-validity days_valid
    

    Where:

    • bpel_dname is dname of the SOA instance (for example, cn=bpel,dc=example,dc=com).

    • bpel_alias is the alias in keystore for the SOA instance (for example, bpel).

    • key_password is the keystore password for the new public key.

    • keystore is the keystore name for the SOA instance (for example, bpel.jks).

    • keystore_password is the keystore password of the SOA instance's keystore.

    • days_valid is the number of days for which the key password is valid (for example, 1024).

    Example 14-2 Generate a Key Pair In the SOA Instance

    keytool -genkeypair -keyalg RSA -dname "cn=producer,dc=example,dc=com" -alias bpel -keypass password -keystore bpel.jks -storepass welcome1 -validity 1024
    
14.8.1.1.4 Exporting the Public Key of the SOA Instance

This section describes how to export public key of the SOA instance.

To export the public key:

  1. Go to JAVA_HOME/bin/.

  2. Run the following command:

    keytool -exportcert -v -alias bpel_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
    

    Where:

    • bpel_alias is the alias in the keystore of the SOA instance (for example, bpel).

    • keystore is the keystore name of the SOA instance (for example, bpel.jks).

    • keystore_password is the keystore password for the keystore in the SOA instance.

    • certificate_file is the file name for the certificate in which the key is to be exported. For example, bpel.cer.

    Example 14-3 Export the Public Key of the SOA Instance

    keytool -exportcert -v -alias bpel -keystore bpel.jks -storepass password -rfc -file bpel.cer
    
14.8.1.1.5 Importing the Trusted Certificate of the SOA Instance in the WebCenter Instance

To import the trusted certificate of the SOA instance in the WebCenter instance:

  1. Go to JAVA_HOME/bin/.

  2. Run the following command:

    keytool -importcert -alias bpel_alias -file certificate_file -keystore keystore_name -storepass keystore_password
    

    Where:

    • certificate_file is the exported certificate file from the SOA instance (for example, bepl.cer).

    • bpel_alias is the alias in keystore of the SOA instance (for example, bpel).

    • keystore_name is the keystore name of the WebCenter instance (for example, webcenter.jks).

    • keystore_password is the keystore password for keystore in the SOA instance.

    Example 14-4 Import the Trusted Certificate in the WebCenter Instance

    keytool -importcert -alias bpel -file bpel.cer -keystore webcenter.jks -storepass password
    

14.8.1.2 Generating the Keystores When the SOA Server and WebCenter Share the Same Domain

This section describes how to generate the keystores and import the trusted certificate of the WebCenter keystore to the Oracle SOA instance using webcenter_spaces_ws as the alias when both share the same domain. After generating the producer keystore pair, continue by registering the keystores as shown in Section 14.8.1.3, "Registering the Keystores," and updating the Credential Store as shown in Section 14.8.1.4, "Updating the Credential Stores."

To create the Java keystores for the producer:

  1. Go to JDEV_HOME/jdk/bin and open a command prompt.

  2. Using keytool, generate a key pair:

    keytool -genkeypair -keyalg RSA -dname "producer_dname" -alias producer_alias -keypass key_password -keystore keystore -storepass keystore_password -validity days_valid
    

    Where:

    • producer_dname is the name of the producer (for example, cn=producer,dc=example,dc=com)

    • producer_alias is the alias of the producer (for example, producer)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, producer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 365)


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key is incompatible with Oracle WebServices Security Manager requirements.

    Example 14-5

    keytool -genkeypair -keyalg RSA -dname "cn=producer,dc=example,dc=com" -alias producer -keypass welcome1 -keystore producer.jks -storepass welcome1 -validity 365
    
  3. Export the certificate of the producer:

    keytool -exportcert -v -alias producer_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
    

    Where:

    • producer_alias is the alias of the producer (for example, producer)

    • keystore is the keystore name (for example, producer.jks)

    • keystore_password is the keystore password (for example, welcome1)

    • certificate_file is the file name for the certificate to export the key to (for example, producer.cer)

    Example 14-6

    keytool -exportcert -v -alias producer -keystore producer.jks -storepass welcome1 -rfc -file producer.cert
    
  4. Import the certificate to the same keystore using the alias webcenter_spaces_ws. You must use this alias or the end-to-end integration with workflows will fail.

    keytool -importcert -alias webcenter_spaces_ws -file certificate_file -keystore keystore -storepass keystore_password
    

    Where:

    • certificate_file is the file name or path for the producer's certificate file (for example, ../producer/producer.cer)

    • keystore is the keystore name (for example, producer.jks)

    • keystore_password is the keystore password (for example, welcome1)

      Example 14-7

      keytool -importcert -alias webcenter_spaces_ws -file producer.cert -keystore producer.jks -storepass welcome1
      

14.8.1.3 Registering the Keystores

This section describes how to register keystores in the SOA and WebCenter Spaces instances. This section includes the following subsections:

14.8.1.3.1 Registering the Keystores in the WebCenter Spaces Instance

Before they can be used, the keystores must also be registered. Follow the steps below to register the keystores in the WebCenter Spaces instance.

To register the keystores in the WebCenter Spaces instance:

  1. Change directories to WEBCENTER_HOME/user_projects/domains/<domain_name>/config/fmwconfig where the WebCenter instance is installed.

  2. Copy the WebCenter keystore that you created earlier, for example, webcenter.jks, by running the following command:

    cp webcenter.jks .
    
  3. In the jps-config.xml file, set the keystore location to the name of the keystore (for example, webcenter.jks).

        <serviceInstance name="keystore" provider="keystore.provider"
                         location="./webcenter.jks">
                <description>Default JPS Keystore Service</description>
                <property name="keystore.type" value="JKS"/>
                 <property name="keystore.csf.map" value="oracle.wsm.security"/>
                <property name="keystore.pass.csf.key" value="keystore-csf-key"/>
                <property name="keystore.sig.csf.key" value="enc-csf-key"/>
                <property name="keystore.enc.csf.key" value="enc-csf-key"/>
    
14.8.1.3.2 Registering the Keystores in the SOA Instance

Keystores must be registered before they can be used. You can register keystores using command line, as described in this section or through Fusion Middleware Control, as described in Section 14.8.4.3.2, "Configuring the Keystores". If you choose to register keystores using Fusion Middleware Control, make sure that property names are identical to those described in this section.

To register keystores using the command line tool:

  1. cd SOA_HOME/user_projects/domains/<domain_name>/config/fmwconfig where the SOA instance is installed.

  2. Copy the SOA keystore that you created earlier, for example, bpel.jks, by running the following command:

    cp bpel.jks .
    
  3. In the jps-config.xml file, set the keystore location to the name of the keystore, for example, webcenter.jks.

        <serviceInstance name="keystore" provider="keystore.provider"   location="./bpel.jks">
                <description>Default JPS Keystore Service</description>
                <property name="keystore.type" value="JKS"/>
                 <property name="keystore.csf.map" value="oracle.wsm.security"/>
                <property name="keystore.pass.csf.key" value="keystore-csf-key"/>
                <property name="keystore.sig.csf.key" value="enc-csf-key"/>
                <property name="keystore.enc.csf.key" value="enc-csf-key"/>
    

14.8.1.4 Updating the Credential Stores

After registering the keystores for the SOA and WebCenter instances, you must update the credential store of these instances to add the keystores, signing, encryption keys, and passwords. You can update the credential stores using the createCred WLST command or Fusion Middleware Control.

This section includes the following sub sections:

14.8.1.4.1 Updating the Credential Store in the WebCenter Spaces Instance Using WLST

To update the credential store using WLST, see the section "createCred" in Oracle Fusion Middleware WebLogic Scripting Tool Command Reference. Use the following example values to add keystore-csf-key, enc-csf-key, and sign-csf-key encryption keys. Before running the command, be sure to back up the cwallet.sso file.

Example 14-8 keystore-csf-key

createCred(map="oracle.wsm.security",key="keystore-csf-key",user="keystore-csf-key",password="password",desc="Enc Password")

Example 14-9 enc-csf-key

createCred(map="oracle.wsm.security",key="enc-csf-key",user="webcenter",password="password",desc="Enc Password")

Example 14-10 sign-csf-key

createCred(map="oracle.wsm.security",key="sign-csf-key",user="webcenter",password="password",desc="Enc Password")
14.8.1.4.2 Updating the Credential Store in the WebCenter Spaces Instance Using Fusion Middleware Control

This section describes how to update credential store of the WebCenter Spaces instance using Fusion Middleware Control. Before running the command, be sure to back up the cwallet.sso file located in the SOA_HOME/user_projects/domains/<user_domain>/config/fmwconfig directory.

To update the credential store using Fusion Middleware Control:

  1. Open Fusion Middleware Control and log into the target domain.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. From the WebLogic Domain menu, select Security and then Credentials.

  3. On the Credentials page, click Create Map.

  4. In the Create Map dialog, enter oracle.wsm.security as the map name. Click OK.

  5. On the Credentials page, click Create Key, to create keystore-csf-key.

  6. In the Create Key dialog, from the Select Map field, select oracle.wsm.security.

  7. In the Key field, enter keystore-csf-key.

  8. From the Type field, select Password, if it is not already selected.

  9. In the User Name field, enter keystore-csf-key.

  10. In the Password field, enter password of the keystore used for the WebCenter instance.

  11. Optionally, enter a description and click OK.

  12. On the Credentials page, click Create Key, to create sign-csf-key.

  13. In the Create Key dialog, in the Key field, enter sign-csf-key.

  14. In the User Name field, enter the public key alias of the keystore used in WebCenter instance. For example, webcenter.

  15. In the Password field, enter password of the public key used in the WebCenter instance.

  16. Optionally, enter a description and click OK.

  17. On the Credentials page, click Create Key, to create enc-csf-key.

  18. In the Create Key dialog, in the Key field, enter enc-csf-key.

  19. In the User Name field, enter the public key alias of the keystore used in the WebCenter Spaces instance. For example, webcenter.

  20. In the Password field, enter the password of the public key used in the WebCenter instance.

  21. Optionally, enter a description and click OK.

  22. Restart both Administration server and managed servers as described in Section 8.2, "Starting and Stopping Managed Servers for WebCenter Application Deployments".

14.8.1.4.3 Updating the Credential Store in the SOA Instance Using WLST

Update the credential store using the WLST createCred command. Use the following example values to add keystore-csf-key, enc-csf-key, and sign-csf-key encryption keys.

Example 14-11 keystore-csf-key

createCred(map="oracle.wsm.security",key="keystore-csf-key",user="keystore-csf-key",password="password",desc="Enc Password")

Example 14-12 enc-csf-key

createCred(map="oracle.wsm.security",key="enc-csf-key",user="bpel",password="password",desc="Enc Password")

Example 14-13 sign-csf-key

createCred(map="oracle.wsm.security",key="sign-csf-key",user="bpel",password="password",desc="Enc Password")
14.8.1.4.4 Updating the Credential Store in the SOA Instance Using Fusion Middleware Control

This section describes how to update the credential store in the SOA instance using Fusion Middleware Control.

To update the credential store using Fusion Middleware Control:

  1. Open Fusion Middleware Control and log into the target domain.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. From the WebLogic Domain menu, select Security and then Credentials.

  3. On the Credentials page, click Create Map.

  4. In the Create Map dialog, enter oracle.wsm.security as the map name. Click OK.

  5. On the Credentials page, click Create Key, to create keystore-csf-key.

  6. In the Create Key dialog, from the Select Map field, select oracle.wsm.security.

  7. In the Key field, enter keystore-csf-key.

  8. From the Type field, select Password, if it is not already selected.

  9. In the User Name field, enter keystore-csf-key.

  10. In the Password field, enter password of the keystore used for the SOA instance.

  11. Optionally, enter a description and click OK.

  12. On the Credentials page, click Create Key, to create sign-csf-key.

  13. In the Create Key dialog, in the Key field, enter sign-csf-key.

  14. In the User Name field, enter the public key alias of the keystore used in SOA instance. For example, bpel.

  15. In the Password field, enter password of the public key used in the SOA instance.

  16. Optionally, enter a description and click OK.

  17. On the Credentials page, click Create Key, to create enc-csf-key.

  18. In the Create Key dialog, in the Key field, enter enc-csf-key.

  19. In the User Name field, enter the public key alias of the keystore used in SOA instance. For example, bpel.

  20. In the Password field, enter password of the public key used in the SOA instance.

  21. Optionally, enter a description and click OK.

14.8.2 Securing the Discussions Server with WS-Security

By default, the Oracle WebCenter Discussions allows unsecured Web service calls. You can optionally configure Oracle WebCenter Discussions to enable the Web Services Security (WS-Security) trusted authentication. WS-Security establishes a trust relationship between your WebCenter application and Oracle WebCenter Discussions so that your WebCenter application can pass the user identity information to the server without knowing the user's credentials.

To configure WS-Security on the Discussions server side, you must create a keystore certificate properties file, specify it for the ClassLoader, modify the system property webservices.soap.custom.crypto.fileName, and delete the webservices.soap.permissionHandler.className system property.

To enable the WS-Security trusted authentication for Oracle WebCenter Discussions, you must:

  • Obtain a valid client and server certificate as described in Section 14.8.4.3, "Setting Up the Keystores".

  • Configure WS-Security-related properties on the Discussions server.

  • Add the WS-Security-related properties in your Oracle WebCenter Discussions connection created for integrating Discussions and Announcements services into your WebCenter applications.

These configuration steps are described in the following sub-sections:

14.8.2.1 Creating the Keystore Certificate Properties File

The server-side keystore certificate configuration must be stored in a properties file (keystore.properties) and specified as a system property on the Discussions server. The properties file then must be loaded in the ClassLoader for the WS-Secure Handler to pick it up.

To create the properties file

  1. Create a properties file with the following entries:

    org.apache.ws.security.crypto.provider= <Specify your crypto provider (typically org.apache.ws.security.components.crypto.Merlin)>
    org.apache.ws.security.crypto.merlin.keystore.type=<Specify the keystore type (either jks or pks)>
    org.apache.ws.security.crypto.merlin.keystore.password=<Specify the keystore password of your server certificate>
    org.apache.ws.security.crypto.merlin.keystore.alias=<Specify the keystore alias of your server certificate>
    org.apache.ws.security.crypto.merlin.file=<Specify the absolute path of your server certificate file. For example, C:\Programs\Discussions\server_public_certs.keystore> 
    
  2. Save the file as keystore.properties.

14.8.2.2 Specifying the Properties File for ClassLoader

There are two ways you can choose either way to specify your keystore.properties file based on your setup. This is recommended way when using Clustered Discussions Server installation in Linux to use a same file mounted across different servers.

To specify the properties file for ClassLoader, do one of the following:

  • Specify the properties file as the CLASSPATH in setDomainEnv.sh.

    For Linux:

    1. Place the keystore.properties file in a directory (for example, . /home/user/keystore/)

    2. Open MW_HOME/user_projects/domains/wc_domain/bin/setDomainEnv.sh.

    3. Towards the end of the file, add the following lines to specify this directory as the CLASSPATH.

      if [ "${CLASSPATH}" != "" ] ; then
        CLASSPATH="${ CLASSPATH}${CLASSPATHSEP}/home/user/keystore/"
        export CLASSPATH
      else
        CLASSPATH="/home/user/keystore/"
        export CLASSPATH
      fi
      

      Note that the CLASSPATH directory name must end with "/".

    For Windows:

    1. Place the keystore.properties file in a directory (for example, c:\keystore\).

    2. Open MW_HOME\user_projects\domains\wc_domain\bin\setDomainEnv.cmd.

    3. Towards the end of the file, add the following lines to specify this directory in CLASSPATH.

        if NOT "%CLASSPATH%"=="" (
          set CLASSPATH=%CLASSPATH%;c:\keystore\
        ) else (
          set CLASSPATH=c:\keystore\
        )
      

      Note that the CLASSPATH directory name must end with "\".

  • Or add the keystore.properties file to a .JAR file and place the .JAR file in your MW_HOME/user_projects/domains/wc_domain/lib directory.

14.8.2.3 Updating the System Properties for WS-Security

To update your system properties:

  1. Log in to the Oracle WebCenter Discussions Admin Console at the following URL:

    http://host:port/owc_discussions/admin

    Where host and port are the address and the port number of the server where you deployed Oracle WebCenter Discussions (for example, http://localhost:7001/owc_discussions).

  2. Click System Properties under Forum System. This displays the Jive Properties page.

  3. Modify the system property webservices.soap.custom.crypto.fileName and specify the properties file that you created (i.e., keystore.properties).

    Be sure to specify the name of file, and not the directory or .JAR name.

  4. Under All Properties, click the delete icon next to the webservices.soap.permissionHandler.className system property.

  5. Click OK.

  6. Extract the owc_discussions.war file from MW_HOME/Oracle_WC1/discussionserver/owc_discussions.ear/or owc_discussions_sso.ear, then extract WEB-INF/classes/jive_extra_startup_content.xml.

  7. Open WEB-INF/classes/jive_extra_startup_content.xml and delete or comment out the following entries:

    <entry name="webservices.soap.permissionHandler.className" overwrite="false" readonly="false">com.jivesoftware.webcenter.webservices.OraclePermissionHandler</entry>
    
    <entry name="webservices.soap.custom.crypto.fileName" overwrite="false" readonly="false">crypto.properties</entry>
    
  8. Save the file.

  9. Repackage the .WAR file with the updated WEB-INF/classes/jive_extra_startup_content.xml file, and then repackage the .EAR file with the updated .WAR file.

  10. Delete the existing installation and install the newly generated.EAR file.

  11. Restart the WLS_Services managed server.

After setting the system properties, your WebCenter application also needs to supply the WS-Security client certificate through the connection settings for Discussion Forum and Announcement Server as described in Section 11.1, "Setting Up Connections for the Discussions and Announcements Services".

14.8.3 Securing Oracle WebLogic Communication Services (OWLCS) with WS-Security

Follow the steps below to configure WS-Security for Oracle WebLogic Communication Services (OWLCS):

  1. Provide the policyURI when creating the Instant Messaging and Presence (IMP) connection.

    When you create the connection to the WS-Security enabled OWLCS server, you must provide the policyURI. The value of policyURI should be set to oracle/wss11_saml_token_with_message_protection_client_policy. If no policyURI is supplied, the application will use a non-secure connection. See also Section 11.2.3, "Registering Instant Messaging and Presence Servers".

  2. Supply an alias name for the private key to the IMP connection.

    Provide an additional property in the WebCenter IMP connection named recipient.alias. Set the value of this property to the alias under which to import the OWLCS certificate. Ensure that this value is unique and is not used already by some other service. If no alias name is supplied, the application uses the default value webcenter_owlcs. See also Section 11.2.3.1, "Additional IMP Connection Properties".

  3. Determine the private key in the OWLCS keystore (located on the OWLCS instance at DOMAIN_HOME/config/fmwconfig).

    Use the following command to list the keystore contents:

    keytool -list -v -keystore Serversidekeystore.jks -storepass password
    

    Find the entry with the Entry type set to keyEntry. The alias name of this entry is the private key (orakey by default).

  4. Export the private key from the OWLCS server keystore.

    Use the following command to export orakey to a certificate file (for example, orakey.cer).

    keytool -exportcert -v -alias orakey -keystore Serversidekeystore.jks
    -storepass welcome -rfc -file orakey.cer
    
  5. Determine the private key in the WebCenter keystore (on the WebCenter instance at DOMAIN_HOME/config/fmwconfig).

    If no keystore is found, proceed to step 6. Otherwise, use the following command to list the keystore contents:

    keytool -list -v -keystore default-keystore.jks -storepass welcome
    

    Find the entry with Entry type set to keyEntry or PrivateKeyEntry. The alias name of this entry is the private key.

    If no such entry is found, proceed to step 6. Otherwise, continue at step 7.

  6. Generate a private key on WebCenter.

    Go to DOMAIN_HOME/config/fmwconfig in your WebCenter installation and run the following command to add a key pair to the keystore. The command creates a keystore named default-keystore.jks if it doesn't already exist, and adds a new private key entry with alias orasig and the password set to welcome1. You can optionally change the alias, password and domain name command when you run the command.

    keytool -genkeypair -keyalg RSA -dname "cn=consumer,dc=example,dc=com" -alias orasig -keypass welcome1 -keystore default-keystore.jks -storepass welcome1 -validity 360
    
  7. Configure OWLCS on your WebCenter instance to use the private key.

    Run the WLST createCred command substituting the user and password keys in the first two commands with your private key alias and password.

    createCred(map='oracle.wsm.security', key='enc-csf-key', user='orasig', password='welcome1', desc='EncryptionKey')
    
    createCred(map='oracle.wsm.security', key='sign-csf-key', user='orasig', password='welcome1', desc='SigningKey')
    
    createCred(map='oracle.wsm.security', key='keystore-csf-key', user='owsm', password='welcome1', desc='KeystoreKey')
    
  8. Export the private key pair to a certificate.

    Export the private key found in step 5 or created in step 6 to a certificate file using the following command:

    keytool -exportcert -v -alias orasig -keystore default-keystore.jks -storepass welcome1 -rfc -file orasig.cer
    
  9. Import the certificate generated on the OWLCS Server to the WebCenter keystore.

    Copy the certificate generated in step 4 to a temporary location on the WebCenter instance. Import the certificate in the WebCenter instance using the alias name from step 2.

    Use the following command to import the certificate in the WebCenter keystore:

    keytool -importcert -alias webcenter_owlcs -file orakey.cer -keystore default-keystore.jks -storepass welcome1 
    
  10. Import the WebCenter certificate on the OWLCS instance.

    Copy the certificate created in step 8 to a temporary location on the OWLCS instance. Go to DOMAIN_HOME/config/fmwconfig and import the certificate in the keystore under a meaningful alias (for example, webcenter_key) using the following command:

    keytool -importcert -alias webcenter_key -file orasig.cer -keystore Serversidekeystore.jks -storepass welcome
    

14.8.4 Securing a WSRP Producer with WS-Security

The following sections describe how to secure access to JSR-168 standards-based WSRP portlets from WebCenter applications:

For a conceptual overview of securing WSRP producers, see "Securing Identity Propagation Through WSRP Producers with WS-Security" in the Oracle Fusion Middleware Developer's Guide for Oracle WebCenter.

14.8.4.1 Deploying the Producer

Before you configure the producer for WS-Security, you must first deploy your standards-compliant portlet producer to an Oracle WebLogic managed server by performing the steps described in Section 12.8, "Deploying Portlet Producer Applications".

14.8.4.2 Attaching a Policy to the Producer Endpoint

This section describes how to attach a security policy to a WSRP producer endpoint. The following policies are supported for WSRP producers:

  • Username token with password

    wss10_username_token_with_message_protection_service_policy

    This policy enforces message-level protection (message integrity and confidentiality) and authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard. It uses WS-Security's Basic 128 suite of asymmetric key technologies (specifically, RSA key mechanism for message confidentiality, SHA-1 hashing algorithm for message integrity, and AES-128 bit encryption). The keystore is configured through the security configuration. Authentication is enforced using credentials in the WS-Security UsernameToken SOAP header. The Subject is established against the currently configured identity store.

  • Username token without password

    wss10_username_id_propagation_with_msg_protection_service_policy

    This policy enforces message level protection (message integrity and confidentiality) and identity propagation for inbound SOAP requests using mechanisms described by the WS-Security 1.0 standard. Message protection is provided using WS-Security's Basic 128 suite of asymmetric key technologies (specifically, RSA key mechanisms for confidentiality, SHA-1 hashing algorithm for integrity, and AES-128 bit encryption). Identity is set using the user name provided by the UsernameToken WS-Security SOAP header. The Subject is established against the currently configured identity store.

  • SAML token

    There are two SAML token policies:

    • SAML token with message integrity:

      wss10_saml_token_with_message_integrity_service_policy

      This policy provides message-level integrity protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard. It uses WS-Security's Basic 128 suite of asymmetric key technologies, specifically RSA key mechanisms for message confidentiality, and SHA-1 hashing algorithm for message integrity.

    • SAML token with message protection:

      wss10_saml_token_with_message_protection_service_policy

      This policy enforces message-level protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard. It uses WS-Security's Basic 128 suite of asymmetric key technologies, specifically RSA key mechanisms for message confidentiality, SHA-1 hashing algorithm for message integrity, and AES-128 bit encryption.

    The keystore is configured through the security configuration. It extracts the SAML token from the WS-Security binary security token, and uses those credentials to validate users against the configured identity store.

To attach a policy to a producer endpoint

  1. Open Fusion Middleware Control and log into the target domain.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, expand the Application Deployments node, and click the producer to attach a policy to.

  3. From the Application Deployment menu, select Web Services.

    The Web Services Summary page for the producer displays (see Figure 14-133).

    Figure 14-133 Web Services Summary Page

    Description of Figure 14-133 follows
    Description of "Figure 14-133 Web Services Summary Page"

  4. Open the Web Service Endpoint tab and click the endpoint to which to attach a policy.


    Note:

    Only the markup service ports should be secured (WSRP_V2_Markup_Service and WSRP_V1_Markup_Service).

    The Web Service Endpoints page for the producer displays (see Figure 14-134).

    Figure 14-134 Web Service Endpoints Page

    Description of Figure 14-134 follows
    Description of "Figure 14-134 Web Service Endpoints Page"

  5. Open the Policies tab to display the currently attached policies for the producer (see Figure 14-135).

    Figure 14-135 Web Services Endpoint Policies Page

    Description of Figure 14-135 follows
    Description of "Figure 14-135 Web Services Endpoint Policies Page"

  6. Click Attach/Detach to add or remove a policy.

    The Attach/Detach Policies page is shown listing the available policies and their descriptions (see Figure 14-136).

    Figure 14-136 Attach/Detach Policies Page

    Description of Figure 14-136 follows
    Description of "Figure 14-136 Attach/Detach Policies Page"

  7. Under Available Policies, select Category and Security as the policy category to search, and click the Search icon to list the security policies.

  8. Select the policies to attach and click Attach. Use the Ctrl key to select multiple policies.

    The policies appear in the list under Attached Policies (see Figure 14-137).

    Figure 14-137 Attach Detach Policy Page with Policy Attached

    Description of Figure 14-137 follows
    Description of "Figure 14-137 Attach Detach Policy Page with Policy Attached"

  9. When finished adding polices to attach to the producer endpoint, click OK.

14.8.4.3 Setting Up the Keystores

The security credentials of the WSRP producer and WebCenter application can be retrieved and managed using a Java Keystore (JKS). A keystore is a file that provides information about available public and private keys. Keys are used for a variety of purposes, including authentication and data integrity. User certificates and the trust points needed to validate the certificates of peers are also stored securely in the wallet or keystore. See the Oracle Fusion Middleware Security and Administrator's Guide for Web Services for information about JKS.

The consumer in the step-by-step procedures below is the WebCenter application, which consumes portlets generated by the remote portlet producer over WSRP. The producer uses the public key of the consumer to verify the authenticity of the security tokens received from the consumer in the WS-Security headers of the requests it receives over its getMarkup interface. To do this, the producer needs a Java keystore that contains the certificate of the consumer and the root certificate used to sign it. These certificates are added to the Java keystore as trusted certificates.

This section describes the following tasks:

14.8.4.3.1 Creating the Keystores

This section describes how to create keystores and keys using a Java Keystore (JKS). JKS is the proprietary keystore format defined by Sun Microsystems. To create and manage the keys and certificates in the JKS, use the keytool utility that is distributed with the Java JDK 6.

To create Java keystores for the consumer and producer:

  1. Go to JDEV_HOME/jdk/bin and open a command prompt.

  2. Using keytool, generate a key pair:

    keytool -genkeypair -keyalg RSA -dname "consumer_dname" -alias consumer_alias -keypass key_password 
    -keystore keystore -storepass keystore_password -validity days_valid
    

    Where:

    • consumer_dname is the name of the consumer (for example, cn=consumer,dc=example,dc=com)

    • consumer_alias is the alias of the consumer (for example, consumer)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 360).


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key is incompatible with Oracle WebServices Security Manager requirements.

  3. Export the public key of the consumer:

    keytool -exportcert -v -alias consumer_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
    

    Where:

    • consumer_alias is the alias of the consumer (for example, consumer)

    • keystore is the keystore name, (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • certificate_file is the file name for the certificate to export the key to (for example, consumer.cer)

  4. Generate the producer keystore by importing the trusted certificate of consumer:

    keytool -importcert -alias consumer_alias -file certificate_file -keystore keystore -storepass keystore_password
    

    Where:

    • consumer_alias is the alias of the consumer

    • certificate_file is the certificate file name

    • keystore is the keystore name

    • keystore_password is the keystore password

  5. Generate the key pair for the producer:

    keytool -genkeypair -keyalg RSA -dname "producer_dname" -alias producer_alias -keypass key_password 
    -keystore keystore -storepass keystore_password -validity days_valid
    

    Where:

    • producer_dname is the name of the producer (for example, cn=producer,dc=example,dc=com)

    • producer_alias is the alias of the producer (for example, producer)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, producer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 1024)


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key will not work.

  6. List the contents of the keystore:

    keytool -list -v -keystore keystore_name -storepass password
    

    Where:

    • keystore_name is the name of the consumer keystore file (for example, portal.jks)

    • password is the keystore password.

    The keystore should now have two key entries.

  7. Export the public key of the producer:

    keytool -exportcert -v -alias producer_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
     
    

    Where:

    • producer_alias is the alias of the producer (for example, producer)

    • keystore is the keystore name (for example, producer.jks)

    • keystore_password is the keystore password, (for example,welcome1

    • certificate_file is the certificate file name (for example, producer.cer)

  8. Import the trusted certificate of the producer:

    keytool -importcert -alias producer_alias -file certificate_file -keystore keystore_name -storepass keystore_password
    

    Where:

    • producer_alias is the alias of the producer (for example, producer)

    • certificate_file is the file name or path for the producer's certificate file (for example,../producer/producer.cer

    • keystore_name is the keystore name (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

14.8.4.3.2 Configuring the Keystores

To enable Web Services Security (WS-Security) trusted authentication for the WSRP producer and WebCenter application, you must first configure keystores for both the consumer and producer, and then import the keystore information to the consumer system as described below.

If a keystore provider is already configured, you will first need to unconfigure the existing keystore provider as described in Section 14.8.4.3.3, "Unconfiguring a Keystore Provider".

To configure the keystore provider:

  1. Copy the corresponding keystores to corresponding servers.

  2. Open Fusion Middleware Control and log into the target domain.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  3. In the Navigation pane, expand the WebLogic Domain node and click on the domain (for example, webcenter).

  4. From the WebLogic Domain menu, select Security -> Security Provider Configuration.

    The Security Provider Configuration page displays (see Figure 14-138).

    Figure 14-138 Security Provider Configuration Page

    Description of Figure 14-138 follows
    Description of "Figure 14-138 Security Provider Configuration Page"

  5. Expand the Keystore section on the Security Provider Configuration page.

  6. Click Configure.

    The Keystore Configuration page displays (see Figure 14-139).

    Figure 14-139 Keystore Configuration Page

    Description of Figure 14-139 follows
    Description of "Figure 14-139 Keystore Configuration Page"

  7. Use the Keystore section to specify the location of the keystore that contains the certificate and private key that is used for signing some parts (security token and SOAP message body) of the SOAP message, setting the signature key and encryption key parameters, and to set the keystore user name and password.

    For detailed parameter information, see Section 14.8.1.4.2, "Updating the Credential Store in the WebCenter Spaces Instance Using Fusion Middleware Control".

  8. Click OK to save your settings.

  9. Restart the Administration server for the domain.

14.8.4.3.3 Unconfiguring a Keystore Provider

If a keystore provider is already configured, you will first need to unconfigure the existing keystore provider before configuring a new provider. To unconfigure, follow the steps below. Otherwise, continue with the steps to configure the producer.

To unconfigure a keystore provider using Fusion Middleware Control:

  1. Open Fusion Middleware Control and log into the target domain.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. From the WebLogic Domain menu, select Security -> Security Provider Configuration.

    The Security Provider Configuration page displays (see Figure 14-138).

    Figure 14-140 Security Provider Configuration Page

    Description of Figure 14-140 follows
    Description of "Figure 14-140 Security Provider Configuration Page"

  3. Expand the Keystore section on the Security Provider Configuration page.

  4. Click Configure.

    The Keystore Configuration page displays (see Figure 14-139).

    Figure 14-141 Keystore Configuration Page

    Description of Figure 14-141 follows
    Description of "Figure 14-141 Keystore Configuration Page"

  5. Uncheck Configure Keystore Management.

  6. Click OK.

14.8.5 Securing WebCenter Spaces for Applications Consuming Spaces Client APIs with WS-Security

This section describes how to configure WS-Security for WebCenter Spaces to support custom WebCenter applications that consume WebCenter Spaces client APIs.

This section includes the following subsections:

14.8.5.1 Generating the Keystores

Follow the steps below to generate Java keystores for the consumer (the custom WebCenter application) and producer (WebCenter Spaces).

To generate keystores for the consumer and producer:

  1. Go to JDEV_HOME/jdk/bin and open a command prompt.

  2. Using keytool, generate a key pair:

    keytool -genkeypair -keyalg RSA -dname "consumer_dname" -alias consumer_alias -keypass key_password 
    -keystore keystore -storepass keystore_password -validity days_valid
    

    Where:

    • consumer_dname is the name of the consumer (for example, cn=consumer,dc=example,dc=com)

    • consumer_alias is the alias of the consumer (for example, consumer)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 360).


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key is incompatible with Oracle WebServices Security Manager requirements.

  3. Export the public key for the consumer:

    keytool -exportcert -v -alias consumer_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
    

    Where:

    • consumer_alias is the alias of the consumer (for example, consumer)

    • keystore is the keystore name, (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • certificate_file is the file name for the certificate to export the key to (for example, consumer.cer)

  4. Generate the producer keystore by importing the trusted certificate of the consumer:

    keytool -importcert -alias consumer_alias -file certificate_file -keystore keystore -storepass keystore_password
    

    Where:

    • consumer_alias is the alias of the consumer

    • certificate_file is the certificate file name

    • keystore is the keystore name

    • keystore_password is the keystore password

  5. Generate the key pair for the producer:

    keytool -genkeypair -keyalg RSA -dname "producer_dname" -alias producer_alias -keypass key_password 
    -keystore keystore-storepass keystore_password -validity days_valid
    

    Where:

    • producer_dname is the name of the producer (for example, cn=producer,dc=example,dc=com)

    • producer_alias is the alias of the producer (for example, producer)

    • key_password is the password for the new public key, (for example, welcome1)

    • keystore is the keystore name, (for example, producer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

    • days_valid is the number of days for which the key password is valid (for example, 1024)


    Note:

    You must use the -keyalg parameter and specify RSA as its value as shown above as the default algorithm (DSA) used by keytool for generating the key will not work.

  6. List the contents of the keystore:

    keytool -list -v -keystore keystore_name -storepass password
    

    Where:

    • keystore_name is the name of the consumer keystore file (for example, portal.jks)

    • password is the keystore password.

    The keystore should now have two key entries.

  7. Export the public key of the producer:

    keytool -exportcert -v -alias producer_alias -keystore keystore -storepass keystore_password -rfc -file certificate_file
     
    

    Where:

    • producer_alias is the alias of the producer (for example, producer)

    • keystore is the keystore name (for example, producer.jks)

    • keystore_password is the keystore password, (for example,welcome1

    • certificate_file is the certificate file name (for example, producer.cer)

  8. Import the trusted certificate of the producer:

    keytool -importcert -alias producer_alias -file certificate_file -keystore keystore_name -storepass keystore_password
    

    Where:

    • producer_alias is the alias of the producer (for example, producer)

    • certificate_file is the file name or path for the producer's certificate file (for example,../producer/producer.cer)

    • keystore_name is the keystore name (for example, consumer.jks)

    • keystore_password is the keystore password, (for example, welcome1)

14.8.5.2 Providing the Keystores and Keystore Information to the Application Developer

Before registering the keystores, make sure that you have provided the following to the developer creating the application that will be consuming the WebCenter Spaces APIs.

  • The consumer keystore to be used to secure the connection. This is a .jks file (for example, consumer.jks).

  • The consumer public alias key stored in the keystore (for example, consumer).

  • The password of the consumer public alias key (for example, welcome1).

  • The producer public alias key stored in the consumer keystore (for example, producer). This is the alias used when importing the trusted certificate of the producer, and created in step 8 of Section 14.8.5.1, "Generating the Keystores".

  • The consumer keystore password (for example, welcome1).

14.8.5.3 Registering the Keystores

After you have created the keystores, configure the keystore for WS-Security by performing the following steps. If a keystore provider is already configured, unconfigure the existing keystore provider before proceeding as described in Section 14.8.4.3.3, "Unconfiguring a Keystore Provider".

To register the keystore provider:

  1. Copy the producer.jks file to the file system where your producer application is running (for example, domain_home/config/fmwconfig).

  2. Log into Fusion Middleware Control.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  3. In the Navigation pane, expand the WebLogic Domain node and click on the domain (for example, webcenter).

  4. From the WebLogic Domain menu, select Security -> Security Provider Configuration.

    The Security Provider Configuration page displays (see Figure 14-142).

    Figure 14-142 Security Provider Configuration Page

    Description of Figure 14-142 follows
    Description of "Figure 14-142 Security Provider Configuration Page"

  5. Expand the Keystore section on the Security Provider Configuration page.

  6. Click Configure.

    The Keystore Configuration page displays (see Figure 14-143).

    Figure 14-143 Keystore Configuration Page

    Description of Figure 14-143 follows
    Description of "Figure 14-143 Keystore Configuration Page"

  7. In the Keystore Path field, specify the location of the keystore that contains the certificate and private key that is used for signing some parts (security token and SOAP message body) of the SOAP message, and enter and confirm the keystore Password.

  8. In the Signature Key section, enter sign-csf-key as the Key Alias, and enter and confirm the signature key Password (the value used for <key_password> above) for the new public key, (for example, welcome1).

  9. In the Encryption Key section, enter enc-csf-key in the Crypt Key field, and enter and confirm the encryption key Password (the value used for <key_password> above) for the new public key, (for example, welcome1).

  10. Click OK to save your settings.

  11. Restart the WLS Administration server for the domain.

14.8.5.4 Updating the Credential Stores

Follow the steps below to update the credential stores using Fusion Middleware Control, or from the command line using WLST.

To update the Credential Store using WLST

Update the credential store using the WLST createCred command. Use the following example values to add the keystore-csf-key, enc-csf-key, and sign-csf-key encryption keys. Before running the command, be sure to back up the cwallet.sso file.

Example 14-14 keystore-csf-key

createCred(map="oracle.wsm.security",key="keystore-csf-key",user="keystore-csf-key",password="welcome1",desc="Keystore Password")

Example 14-15 enc-csf-key

createCred(map="oracle.wsm.security",key="enc-csf-key",user="producer",password="welcome1",desc="Enc Password")

Example 14-16 sign-csf-key

createCred(map="oracle.wsm.security",key="sign-csf-key",user="producer",password="welcome1",desc="Enc Password")

To update the Credential Store using Fusion Middleware Control

  1. Log into Fusion Middleware Control.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, expand the WebLogic Domain node and click on the domain (for example, webcenter).

  3. From the WebLogic Domain menu, select Security -> Credentials.

    The Credentials page displays (see Figure 14-144).

    Figure 14-144 Credentials Page

    Description of Figure 14-144 follows
    Description of "Figure 14-144 Credentials Page"

  4. Click Create Map.

  5. On the Create Map pop-up, enter oracle.wsm.security as the map name and click OK.

  6. Click Create Key.

  7. On the Create Key pop-up, select oracle.wsm.security as the map, enter keystore-csf-key as the Key, select Password as the Type, enter keystore-csf-key as the User Name, supply the Password (in this case, the keystore password of producer.jks) from when you created the keystores (for example, welcome1), enter an optional description, and click OK.

  8. Click Create Key.

  9. On the Create Key pop-up, select oracle.wsm.security as the map, enter sign-csf-key as the Key, select Password as the Type, enter the public key alias of the keystore used in the custom WebCenter application as the User Name, enter the password of the public key used in the custom WebCenter application as the Password, enter an optional description, and click OK.

  10. Click Create Key.

  11. On the Create Key pop-up, select oracle.wsm.security as the map, enter enc-csf-key as the Key, select Password as the Type, enter the public key alias of the keystore used in the WebCenter instance (for example, webcenter) as the User Name, enter the password of the public key used in the custom WebCenter application as the Password, enter an optional description, and click OK.

  12. Restart the Administration server and WLS_Custom or managed server on which the custom WebCenter application is hosted.

14.9 Securing a PDK-Java Producer

A shared key can be defined for message integrity protection and should be used with SSL. The steps to store a shared key as a password credential are:


Note:

Using a shared key provides only message integrity protection. For complete message protection SSL is required. For more information on securing PDK-Java portlets using SSL, see Section 14.6.5, "Securing the WebCenter Spaces Connection to Portlet Producers with SSL".

14.9.1 Defining a Shared Key as a Password Credential

You can define a shared key as a password credential in the credential store of the administration server instance using either Fusion Middleware Control or WLST commands.

14.9.1.1 Defining a Shared Key Using Fusion Middleware Control

To define a shared key using Fusion Middleware Control:

  1. Log into Fusion Middleware Control.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, expand the WebLogic Domain node and click the target domain (for example, wc_domain).

  3. From the WebLogic Domain menu, select Security > Credentials.

    The Credentials pane displays (see Figure 14-145).

    Figure 14-145 Credentials Pane

    Description of Figure 14-145 follows
    Description of "Figure 14-145 Credentials Pane"

  4. Click Create Map and enter a unique Map Name and click OK.

  5. Click Create Key and select the map name of the map you just created.

  6. Enter a User Name (this value is not used so it could be anything), a Key in the form pdk.<service_id>.<user_name> (where <service_id> is the name of the producer and <user_name> is the value you entered for the User Name), and a 10 to 20 hexadecimal digit Password and click OK.

    The new key is displayed in the Credential pane (see Figure 14-146).

    Figure 14-146 Credentials Pane with New Shared Key

    Description of Figure 14-146 follows
    Description of "Figure 14-146 Credentials Pane with New Shared Key"

14.9.1.2 Defining a Shared Key Using WLST

You can also define a shared key using WLST:

  1. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands", and connect to the Administration Server instance for the target domain.

  2. Connect to the Administration Server for the target domain with the following command:

    connect('user_name','password, 'host_id:port')
    

    Where:

    • user_name is the name of the user account with which to access the Administration Server (for example, weblogic)

    • password is the password with which to access the Administration Server

    • host_id is the host ID of the Administration Server

    • port is the port number of the Administration Server (for example, 7001).

  3. Add a shared key credential for a producer to the credential store using the WLST createCred command:

    createCred(map='MAP', key='MAP.service_id.sharedKey.user_name', user='user_name', password='password')
    

    Where:

    • service_id is the name of the producer to create the key for (for example, omniPortlet)

    • user_name is the name of the user. This value is not used so it could be anything.

    • password is a 10 to 20 hexadecimal digit value.

    For example:

    createCred(map='MAP', key='MAP.omniPortlet.sharedKey', user='sharedKey', password='1234567890abc')
    

    Note:

    After creating a credential, you can use the WLST updateCred command with the same parameters as above to update it.

  4. Restart the producer.

    Web producers pick up properties the first time they handle a request (for example, a browser test page request or when they are first registered), so producers should be restarted once a shared key credential has been set up.

14.9.2 Granting the PDK-Java Code Access to the Credential Store

After defining the shared key, the next step is to give the Web producer code (a shared library) read access to the credential store (defined as a permission class). The codebase URL for the shared library used for most Web producers will look like:

file:${domain.home}/servers/WLS_Portlet/tmp/_WL_user/oracle.portlet-producer.jpdk/-

which grants access to any file under the shared library directory. There are exceptions to this where the Web producer doesn't use the usual shared library. The Tools Web producer, for example, packages its code differently due to classloading considerations. The URL in this case would look like this:

file:${domain.home}/servers/WLS_Portlet/tmp/_WL_user/portalTools_11.1.1.1.0/-

The permission class is:

oracle.security.jps.service.credstore.CredentialAccessPermission

There are two ways to give a shared library access to the credentials:

14.9.2.1 Granting Access Using Fusion Middleware Control

Follow the steps below to add a grant where the Web producer code is granted access to the credential store, an existing grant is copied, and the codebase URL is changed to a Web producer code base URL.

To add a grant using Fusion Middleware Control:

  1. Log into Fusion Middleware Control.

    For information on logging into Fusion Middleware Control, see Section 6, "Starting Enterprise Manager Fusion Middleware Control".

  2. In the Navigation pane, expand the WebLogic Domain node and click the target domain (for example, wc_domain).

  3. From the WebLogic Domain menu, select Security > System Policies.

    The System Policies pane displays (see Figure 14-147).

    Figure 14-147 System Policies Pane

    Description of Figure 14-147 follows
    Description of "Figure 14-147 System Policies Pane"

  4. Click Create.

    The Create System Grant pane displays (see Figure 14-148).

    Figure 14-148 Create System Grant Pane

    Description of Figure 14-148 follows
    Description of "Figure 14-148 Create System Grant Pane"

  5. In the Grant To combo box, select Codebase.

  6. In the Codebase field, enter the URL of the PDK shared library that accesses the credential store.

  7. Under Permissions, click Add.

    The Add Permissions pane displays (see Figure 14-149).

    Figure 14-149 Add Permission Pane

    Description of Figure 14-149 follows
    Description of "Figure 14-149 Add Permission Pane"

  8. Do a search for all codebases, select one that has the needed permission class and click OK.

  9. Now update it with the required details.

  10. Display the test page in a browser (thereby making a request to the Web producer which will pick up the shared key). Then check the log.

14.9.2.2 Granting Access Using WLST

To define a shared key using WLST:

  1. Start WLST as described in Section 1.12.3.1, "Running Oracle WebLogic Scripting Tool (WLST) Commands".

  2. Connect to the Administration Server for the target domain with the following command:

    connect('user_name','password, 'host_id:port')
    

    Where:

    • user_name is the name of the user account with which to access the Administration Server (for example, weblogic)

    • password is the password with which to access the Administration Server

    • host_id is the host ID of the Administration Server

    • port is the port number of the Administration Server (for example, 7001).

  3. Define a shared key using the grantPermission command:

    grantPermission(appStripe=None,principalClass=None,principalName=None, codeBaseURL='Codebase',
    permClass='Class',permTarget='context=SYSTEM, mapName=PDK,keyName=*',permActions='read')
    

    Where:

    • Codebase is the codebase URL

    • Class is the permissions class (oracle.security.jps.service.credstore.CredentialAccessPermission)

    For example:

    grantPermission(appStripe=None,principalClass=None,principalName=None,codeBaseURL='file:${domain.home}/servers/WLS_Portlet/tmp/_WL_user/-',
    permClass='oracle.security.jps.service.credstore.CredentialAccessPermission',
    permTarget='context=SYSTEM,mapName=PDK,keyName=*',permActions='read')