28 Configuring Single Sign-On

This chapter describes the available single sign-on (SSO) solutions for WebCenter Portal, and how each is configured.

This chapter includes the following topics:

Permissions

To perform the tasks in this chapter, you must be granted the WebLogic Server 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, Understanding Administrative Operations, Roles, and Tools.

28.1 Introduction to Single Sign-On

Single sign-on provides authentication across a topology’s components allowing users to log in once, rather than having to log in each time they access a component. Without implementing single sign-on, users must provide credentials each time they access components, such as discussions or Content Server, from WebCenter Portal.

Single sign-on can be implemented for WebCenter Portal using several solutions. This section describes their benefits and recommended application.

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 Portal. OAM (in particular, OAM 11g) is the recommended single sign-on solution for Oracle WebCenter Portal 12c installations.

For non-production, development environments 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 Portal and associated Web tools like discussions, you can configure a SAML-based SSO solution. If you need to provide single sign-on for other enterprise applications as well, this solution is not recommended.

If your enterprise uses Microsoft desktop log-ins 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.

28.2 Configuring Oracle Access Manager

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

The installation and configuration steps for OAM 11g are presented in the following topics:

28.2.1 OAM Components and Topology

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

Figure 28-1 OAM Single Sign-On Components and Topology

Description of Figure 28-1 follows
Description of "Figure 28-1 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 plug-in 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.

OAM Single Sign-on Process Flow

Figure 28-2 shows the single sign-on process flow for OAM.

Figure 28-2 OAM Single Sign-on Process Flow

Description of Figure 28-2 follows
Description of "Figure 28-2 OAM Single Sign-on Process Flow"

SSO Log-in Processing with OAM Agents

  1. The user requests a resource.

  2. The WebGate forwards the request to OAM for policy evaluation.

  3. OAM:

    • Checks for the existence of an SSO cookie.

    • Checks policies to determine if the resource protected and if so, how?

  4. The OAM server logs and returns decisions.

  5. WebGate responds as follows:

    • Unprotected resource: resource is served to the user.

    • Protected resource:

      • Request is redirected to the credential collector

      • The login form is served based on the authentication policy

      • Authentication processing begins

  6. User sends credentials.

  7. OAM verifies credentials.

  8. OAM starts the session and creates the following host-based cookies:

    • One per partner: OAMAuthnCookie set by 11g WebGates (ObSSOCookie set by 10g WebGate) using the authentication token received from the OAM server after successful authentication.

      Note: A valid cookie is required for a session.

    • One for OAM Server: OAM_ID

  9. OAM logs Success or Failure.

  10. OAM Credential collector redirects to WebGate and authorization processing begins.

  11. WebGate prompts OAM to look up policies, compare them to the user's identity, and determine the user's level of authorization.

  12. OAM logs policy decision and checks the session cookie.

  13. OAM Server evaluates authorization policies and cache the result.

  14. OAM Server logs and returns decisions

  15. WebGate responds as follows:

    • If the authorization policy allows access, the request get redirected to mod_wl which in turn redirects the request to the WLS server where the WebCenter Portal application is running, and from where desired content or applications are served to the user, as shown below:

      WebGate -> mod_wl -> WebCenter Portal application [, discussions, .. etc] --> Content is served to the authenticated user

    • If the authorization policy denies access, the user is redirected to another URL determined by the administrator.

28.2.3 Installing and Configuring OAM 11g

This section describes how to install and configure OAM 11g, and includes the following topics:

28.2.3.1 Installing and Configuring OAM 11g

Note:

OAM should be installed only after you've installed Oracle WebCenter Portal (described in Installing and Configuring Oracle WebCenter Portal) and any other components required for your environment. You should also have configured and tested any required connections.

Install Oracle Access Manager (OAM) as described in Installing and Configuring Oracle Identity Management in Installation Guide for Oracle Identity Management. Ideally, OAM and all the applications that participate in single sign-on should share the same identity store. By default, OAM uses the embedded LDAP identity store.

To configure OAM to use an external identity store, such as OID, see Registering a New User Identity Store in Administrator's Guide for Oracle Access Management. This section has pointers to setting the external identity store configured as the default or system store and configuring one or more authentication modules to point to this store. By default, the WebCenter policy configured in OAM uses the default authentication scheme (typically, the form-based authentication scheme LDAPScheme) specified in OAM.

If you intend to use the default scheme, the authentication module used by the scheme must point to the same identity store as your WebCenter installation. Optionally, you can choose to configure a different authentication scheme rather than the default, in which case you must also ensure that it points to the identity store used by WebCenter. Continue by configuring Oracle Access Manager in a WebLogic administration domain as described in Installing and Configuring Oracle Identity Management in Installation Guide for Oracle Identity Management.

28.2.3.2 Installing and Configuring the Oracle HTTP Server

If you don't already have Oracle HTTP Server (OHS) installed, install OHS as described in Installing and Configuring the Oracle HTTP Server.

After installing, continue by installing the WebGate as described in Installing the WebGate on the Web Tier.

28.2.3.3 Installing the WebGate on the Web Tier

This section describes how to install and configure the OHS WebGate.

Note:

Ensure that your Oracle HTTP server is down while installing OHS WebGate, and restart it only after you register the WebGate agent as described in Registering the WebGate Agent.

  1. Install the WebGate as described in Installing and Configuring Oracle HTTP Server 11g WebGate for OAM in Installing WebGates for Oracle Access Manager. Use the same middleware home that was specified during OHS install.
  2. After installing Oracle HTTP Server 11g WebGate for Oracle Access Manager, move to the following directory under your Oracle Home for Webgate:

    For Unix operating systems:

    <Webgate_Home>/webgate/ohs/tools/deployWebGate
    

    For Windows operating systems:

    <Webgate_Home>\webgate\ohs\tools\deployWebGate
    
  3. From the command line, run the following command to copy the required bits of the agent from the Webgate_Home directory to the WebGate instance location:

    For Unix operating systems:

    ./deployWebGateInstance.sh -w <Webgate_Instance_Directory> -oh <Webgate_Oracle_Home>
    

    For Windows operating systems:

    deployWebGateInstance.bat -w <Webgate_Instance_Directory> -oh <Webgate_Oracle_Home>
    

    Where <Webgate_Oracle_Home> is the directory where you have installed Oracle HTTP Server WebGate and defined it as the Oracle Home for WebGate, as in the following example:

    <MW_HOME>/Oracle_OAMWebGate1
    

    The <Webgate_Instance_Directory> is the location of the Webgate Instance Home (which should be the same as the Instance Home of Oracle HTTP Server), as in the following example:

    <MW_HOME>/Oracle_WT1/instances/instance1/config/OHS/ohs1
    

    Note that an Instance Home for Oracle HTTP Server is created after you configure the Oracle HTTP Server. This configuration should be performed after installing or patching to Oracle HTTP Server.

  4. Run the following command to ensure that the LD_LIBRARY_PATH variable contains <Oracle_Home_for_Oracle_HTTP_Server>/lib:

    For Unix operating systems (depending on the shell):

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<Oracle_Home_for_Oracle_HTTP_Server>/lib
    

    For Windows operating systems:

    Add the <Webgate_Installation_Directory>\webgate\ohs\lib and <Oracle_Home_for_Oracle_HTTP_Server>\bin locations to the PATH environment variable. Add a semicolon (;) followed by this path at the end of the entry for the PATH environment variable.

  5. From your current working directory, move up one level:

    For Unix operating systems, move to:

    <Webgate_Home>/webgate/ohs/tools/setup/InstallTools
    

    For Windows operating systems, move to:

    <Webgate_Home>\webgate\ohs\tools\EditHttpConf
    
  6. From the command line, run the following command to copy the apache_webgate.template from the Webgate_Home directory to the WebGate Instance location (renaming it to webgate.conf) and update the httpd.conf file to add one line to include the name of webgate.conf file:

    For Unix operating systems:

    ./EditHttpConf -w <Webgate_Instance_Directory> [-oh <Webgate_Oracle_Home>] [-o <output_file>]
    

    For Windows operating systems:

    EditHttpConf.exe -w <Webgate_Instance_Directory> [-oh <Webgate_Oracle_Home>] [-o <output_file>]

    Note:

    The -oh <WebGate_Oracle_Home> and -o <output_file> parameters are optional.

    Where <Webgate_Oracle_Home> is the directory where you have installed Oracle HTTP Server WebGate and defined it as the Oracle Home for WebGate, as in the following example:

    <MW_HOME>/Oracle_OAMWebGate1
    

    The <Webgate_Instance_Directory> is the location of the Web Gate instance home (which should be the same as the instance home of OHS), as in the following example:

    <MW_HOME>/Oracle_WT1/instances/instance1/config/OHS/ohs1

28.2.3.4 Registering the WebGate Agent

After installing the WebGate on the web tier, you also need to register the WebGate agent. The steps below will automatically create a protected policy that uses the default Authentication Scheme that is configured in your OAM installation (typically, the form-based authentication scheme LDAPScheme). If you want to customize the single sign-on login page, or want resources to be protected by some other authentication scheme, then change it using the OAM Console (see Managing Authentication Schemes in Administrator's Guide for Oracle Access Management for more information).

Note:

If you are using WebCenter Portal in conjunction with other applications in your environment, and you require single sign-on for these applications, you must ensure that the authentication schemes used by these applications are either the same or at least at the same level and point to the same identity store.

For more information about registering the WebGate agent, see also Getting Started with a New Oracle HTTP Server 11g WebGate in Installing WebGates for Oracle Access Manager.

Follow the steps below to register the WebGate agent on the machine where OAM is installed using the oamreg tool in inband mode:

  1. Change directories to <RREG_Home>/input (where <RREG_Home> is the directory to where you extracted the contents of RREG.tar.gz/rreg).

  2. Copy over $WEBCENTER_HOME/webcenter/scripts/webcenter.oam.conf from the Oracle WebCenter Portal installation here.

    The default location for WEBCENTER_HOME is $ORACLE_HOME/Oracle_WC1.

  3. Copy over $SOA_HOME/soa/prov/soa.oam.conf and $WC_CONTENT_ORACLE_HOME/common/security/oam.conf from the SOA and Content Server installations respectively.

    The default location for SOA_HOME is $ORACLE_HOME/Oracle_SOA1 and the default location for WC_CONTENT_ORACLE_HOME is $ORACLE_HOME/Oracle_ECM1. Note that the SOA-related location mappings contained in soa.oam.conf only come into effect when deploying and using WebCenter Portal-provided work flows on a SOA server, and that even the SOA related URLS protected within webcenter.oam.conf will come into effect if SOA is being used.

  4. Create a new file named WebCenterOAM11gRequest.xml to serve as a parameter file to the oamreg tool.

    In the example below, replace the contents within $$webtier..$$ with your web tier host and port IDs, and $$oam...$$ with the OAM host and administration server port.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
     Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
    
       NAME: OAM11GRequest_short.xml - Template for OAM 11G Agent Registration Request file
    	 (Shorter version - Only mandatory values - Default values will be used for all other fields)
       DESCRIPTION: Modify with specific values and pass file as input to the tool.
    -->
    <OAM11GRegRequest>
        <serverAddress>http://$$oamhost$$:$$oamadminserverport$$</serverAddress>
        <hostIdentifier>$$webtierhost$$_webcenter</hostIdentifier>
        <agentName>$$webtierhost$$_webcenter</agentName>
        <logOutUrls>
            <url>/oamsso/logout.html</url>
        </logOutUrls>
    </OAM11GRegRequest>
    
  5. Change directories to <RREG_Home>.

  6. Run the following command:

    <RREG_Home>/bin/oamreg.sh inband input/WebCenterOAM11gRequest.xml
    
    • When prompted for agent credentials enter your OAM administrator credentials.

    • Enter your WebGate password.

    • Enter yes when asked whether you want to import a URIs file. Specify the full path to the <RREG_HOME>/input/webcenter.oam.conf file you copied there earlier.

      You should see output like that below indicating that registration has been successful:

      ----------------------------------------
      Request summary:
      OAM11G Agent Name:example_webcenter
      URL String:example_webcenter
      Registering in Mode:inband
      Your registration request is being been sent to the Admin server at: http://example.com:7001
      ----------------------------------------
      Inband registration process completed successfully! Output artifacts are created in the output folder.
      
  7. Copy the generated files and artifacts (ObAccessClient.xml and cwallet.sso) from <RREG_Home>/output/$$webtierhost$$_webcenter to your WebGate instance configuration directory (<Webgate_Instance_Directory>/webgate/config). Note that <Webgate_Instance_Directory> should match the instance home of OHS, as in the following example:

    <MW_HOME>/Oracle_WT1/instances/instance1/config/OHS/ohs1/webgate/config
    
  8. Change directories to <RREG_Home>/input.

  9. If you have SOA or WebCenter Content Server installed

    1. Create a policy update file called WebCenterOAM11gPolicyUpdate.xml as shown in the example below, replacing the contents within $$webtier..$$ with your web tier host and port IDs, and $$oam...$$ with the OAM host and administration server port as you did earlier:

      <?xml version="1.0" encoding="UTF-8"?>
      
      <!--
       Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
      
         NAME: UpdatePolicyRequest.xml - Template for updating application domain and/or policies without changes to any agent profile
         DESCRIPTION: Modify with specific values and pass file as input to the tool
      -->
      <PolicyRegRequest>
      
          <serverAddress>http://$$oamhost$$:$$oamadminserverport$$</serverAddress>
          <hostIdentifier>$$webtierhost$$_webcenter</hostIdentifier>
          <applicationDomainName>$$webtierhost$$_webcenter</applicationDomainName>
      
      </PolicyRegRequest>
      
    2. Run the following command:

      <RREG_Home>/bin/oamreg.sh policyUpdate input/WebCenterOAM11gPolicyUpdate.xml
      

      Enter your OAM credentials when prompted. Enter yes when asked whether you want to import a URIs file, and specify <RREG_HOME>/input/soa.oam.conf.

      Your policy will be updated with SOA resources.

    3. Run the policyUpdate command again, this time specifying <RREG_HOME>/input/oam.conf to update the policy with Content Server resources. Your policy now contains Oracle WebCenter Portal, SOA and Content Server artifacts.

  10. From the OAM Console, you should now be able to see the following artifacts:

    • 11g WebGate agent named $$webtierhost$$_webcenter

    • 11g host identifier by the same name

    • an application domain with the same name containing authentication and authorization policies which in turn contain protected and public policies

  11. Go to Application Domain> $$webtierhost$$_webcenter > Authentication Policies. You should be able to see the following policies:

    • Exclusion Scheme

    • Protected Resource Policy

    • Public Resource Policy

    • WebCenter REST Policy

  12. Open the WebCenter REST Policy and make sure that the Authentication Scheme is set to BasicSessionlessScheme or BasicScheme.

  13. Open the Resources tab and search for resources with their Authentication Policy set to Exclusion Scheme. You should see the following resources:

    • /rsscrawl*

    • /rsscrawl/.../*

    • /sesUserAuth*

    • /sesUserAuth/.../*

    • /services-producer/portlets*

    • /services-producer/portlets/.../*

    • /wsrp-tools/portlets

    • /wsrp-tools/portlets/.../*

  14. Select the /rsscrawl* resource in the search results and click Edit.

  15. Change the Protection Level from Protected to Excluded and click Apply. Note that the resource's authentication policy and authorization policy is removed.

  16. Close the Resources tab and repeat the steps for the remaining Exclusion Scheme resources.

    When you now search for resources with their Authentication Policy set to Exclusion Scheme you should see no results.

  17. Restart OHS.

  18. After installing and configuring the web tier and associated components, continue by configuring the Policy Manager as described in Configuring the WebLogic Domain for OAM, and performing any additional service and component configurations that apply as described in Additional Single Sign-on Configurations.

28.2.4 Configuring the WebLogic Domain for OAM

If your environment spans multiple domains (for example, a domain for WebCenter Portal, a separate domain for SOA, and a separate domain for Content Server), repeat the steps in this section for each domain.

This section includes the following subsections:

28.2.4.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 WebLogic Server Administration Console.

    For information on logging in to the WebLogic Server Administration Console, see Oracle WebLogic Server Administration Console.

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

    The Summary of Security Realms pane displays.

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

    The Settings pane for the realm displays.

  4. Open the Providers tab.

    The Provider Settings display.

  5. Click New to create a provider.

    The Create a New Authentication Provider pane displays.

  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.

  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.

  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 should be the same as for the OAM Access Manager setup

    All Users Filter:

    "(&(uid=*)(objectclass=person))"

    The specified user name attribute must match in these three filters: All Users Filter and User Name Attribute and User From Name Filter

    User Name Attribute:

    "uid"

    User From Name Filter:

    "(&(uid=%u)(objectclass=person))"

    Group Base DN:

    Group search base - Same as User Base DN

    Use Retrieved User Name as Principal

    Checked

    User login IDs are usually case insensitive. This flag is required so that the subject established contains the user name as stored in the OID.

    Note:

    The User Name Attribute, All Users Filter, and Users From Name Filter fields should all point to same OID attribute (uid in this case) and should match the Identity Store configuration for OAM. Additionally, these three fields should also match across all services participating in single sign-on, as well as OAM and WebCenter Portal.

  11. Click Save.

28.2.4.2 Configuring the OAM Identity Asserter

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

To configure the OAM Identity asserter:

  1. Log in to the WebLogic Server Administration Console.

    For information on logging in to the WebLogic Server Administration Console, see Oracle WebLogic Server Administration Console.

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

    The Summary of Security Realms pane displays.

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

    The Settings pane for the realm displays.

  4. Open the Providers tab.

    The Provider Settings display.

  5. Click New to create a provider.

    The Create a New Authentication Provider pane displays.

  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.

  8. Set the control flag to REQUIRED and check that OAM_REMOTE_USER and ObSSOCookie is set for Active Types.
  9. Click Save to save you settings.

28.2.4.3 Configuring the Default Authenticator and Provider Order

After configuring the OAM identity asserter, ensure 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.
  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

  5. Continue by configuring WebCenter Portal for single sign-on mode as described in Configuring WebCenter Portal for SSO. Also be sure to perform any further service and component configurations that apply to your environment as described in Additional Single Sign-on Configurations.

28.2.4.4 Adding an OAM Single Sign-on Provider

After checking that the default authenticator's control flag is set correctly, and that the order of the providers is correct, add an OAM SSO provider and restart all servers as described below.

  1. Connect to the WebLogic domain using WLST and run the following command:
    addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oamsso/logout.html")
    
  2. Restart all servers.

28.2.5 Installing and Configuring the Oracle HTTP Server

This step should be performed after installing and configuring OAM, and before configuring the WebLogic domain.

To install and configure the Oracle HTTP server (OHS).

  1. If you do not have already have an OHS install you'd like to use, install the Oracle HTTP Server using the instructions in Installing and Configuring Oracle Web Tier in Installing and Configuring Oracle HTTP Server.
  2. Configure web tier OHS so that it forwards requests to the Oracle WebLogic Server for WebCenter Portal using the following example in mod_wl_ohs.conf. Make sure that the WebLogic port numbers match your configuration. For more information, see Installing and Configuring Oracle HTTP Server 11g Webgate for OAM in Installing WebGates for Oracle Access Manager.

    Note:

    This example assumes that WebCenter Portal is a non-cluster based installation. For a clustered environment change the WebLogicHost and WebLogicPort to WeblogicCluster as required for your environment. See the section on Installing and Configuring Oracle HTTP Server 11g Webgate for OAM in Installing WebGates for Oracle Access Manager for details.

    # NOTE : This is a template to configure mod_weblogic. 
     
    LoadModule weblogic_module   "${ORACLE_HOME}/ohs/modules/mod_wl_ohs.so"
     
    # This empty block is needed to save mod_wl related configuration from EM to this file when changes are made at the Base Virtual Host Level
    <IfModule weblogic_module>
    #      WebLogicHost <WEBLOGIC_HOST>
    #      WebLogicPort <WEBLOGIC_PORT>
    #      Debug ON
    #      WLLogFile /tmp/weblogic.log
    #      MatchExpression *.jsp
     
    <Location /webcenter>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
     
    <Location /webcenterhelp>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
     
    <Location /rss>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
     
    <Location /rest>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
     
    <Location /rsscrawl>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
    
    <Location /sesUserAuth>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
    </Location>
    
    <Location /owc_discussions>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8890
    </Location>
     
    <Location /wcps>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8891
    </Location>
     
    <Location /workflow>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /integration/worklistapp>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /integration/services>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /soa-infra>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /sdpmessaging/userprefs-ui>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /DefaultToDoTaskFlow>
          SetHandler weblogic-handler
          WebLogicHost soa.example.com
          WebLogicPort 8001
    </Location>
     
    <Location /cs>
          SetHandler weblogic-handler
          WebLogicHost ucm.example.com
          WebLogicPort 16200
    </Location>
     
    <Location /adfAuthentication>
          SetHandler weblogic-handler
          WebLogicHost ucm.example.com
          WebLogicPort 16200
    </Location>
    
    <Location /pagelets>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8889
    </Location>
    
    <Location /services-producer>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8889
    </Location>
     
    <Location /wsrp-tools>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8889
    </Location>
     
    </IfModule>
     
    # <Location /weblogic>
    #      SetHandler weblogic-handler
    #      PathTrim /weblogic
    #      ErrorPage  http:/WEBLOGIC_HOME:WEBLOGIC_PORT/
    #  </Location>
    

    Note:

    The entries in the Location list above map the incoming paths to the appropriate WebLogic Server managed servers on which the corresponding applications reside.

28.2.6 Additional Single Sign-on Configurations

The configurations described in the following sections may be necessary or helpful in providing additional security for your site. After completing these configurations, continue by testing your OAM installation as described in Testing Your OAM Installation.

28.2.6.1 Configuring WebCenter Portal for SSO

Configure the WebCenter Portal application for SSO by adding a setting to EXTRA_JAVA_PROPERTIES.

There is a system property that tells WebCenter Portal 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 Portal that SSO is being used, so no login form should be displayed on the default landing page. Instead, it displays 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, and add an entry like the following:

EXTRA_JAVA_PROPERTIES="-Doracle.webcenter.spaces.osso=true ${EXTRA_JAVA_PROPERTIES}"
export EXTRA_JAVA_PROPERTIES

After making this change, restart the WC_Portal server.

28.2.6.2 Configuring the Discussions Server for SSO

This section describes how to configure the discussions server for single sign-on. Before configuring the discussions server for SSO, ensure that it has been configured to use the same identity store LDAP as WebCenter Portal, as described in Reassociating the Identity Store with an External LDAP Server. If you've chosen not to move the default administrator account to an external LDAP, be sure to also follow the instructions in Migrating the Discussions Server to Use an External LDAP.

Note:

Direct login to the discussions server is not supported after SSO is configured. Log in must be done through the Oracle HTTP Server URL.

To set up the discussions server for SSO:

  1. Log in to the discussions server Admin Console at:
    http://host:port/owc_discussions/admin
    

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

  2. Open the System Properties page and edit (if it already exists) or add the owc_discussions.sso.mode property, setting it's value to true.
  3. Edit or add the jiveURL property to point to the base URL of the web tier. For example:
    jiveURL = webtier.example.com:7777/owc_discussions
    

    The jiveURL property is used when constructing links to forums in emails.

    Note:

    The registered WebCenter connection in WebCenter Portal for discussions and forums should point to the OHS URL.

28.2.6.2.1 Creating a Discussions Server Connection for WebCenter Portal

This section describes how to update the discussions server connection for WebCenter Portal so that it uses the web tier's host and port values. Note that the steps below assume that the discussions component has already been installed and configured in the WebCenter Portal domain.

  1. Using Fusion Middleware Control or WLST, change the Discussion server's URL host and port settings from the WC_Portal managed server's settings, to the web tier's host and port settings. For information about how to change these settings, see Modifying Discussions Server Connection Details.
  2. Restart the WC_Portal managed server.

    When you log in to WebCenter Portal, you automatically sign on to the Discussion server as well.

28.2.6.3 Configuring SOA Server Connections for SSO

Assuming that you've already set up a SOA server connection, modify the URL to use the web tier host and port instead of the SOA server host and port. You can do this using Fusion Middleware Control as described in Specifying the BPEL Server Hosting WebCenter Portal Workflows.

After modifying the URL and completing the setup required for OAM SSO, run the following command on the WebCenter Portal Administration server so that the changes take effect:

setBPELConnection('webcenter','WebCenter-Worklist', 'http://webtier.example.com:7777')

28.2.6.4 Configuring OAM for RSS Feeds Using External Readers

By default, WebCenter Portal RSS feeds are protected by SSO. However, they will not work well with external readers if left protected. If access using external readers is important, Oracle recommends that the WebCenter Portal RSS resource be excluded from the OAM policy so that the authentication for the RSS Servlet is handled by WebLogic Server's BASIC authentication that external readers can handle.

Follow the steps below to unprotect RSS feed for OAM 11g:

  1. Open the OAM Admin Console.
  2. Open the Policy Configuration tab and select Application Domain > <your application domain>.
  3. Open the Resources tab and search for /rss*.

    Among the results, you should see:

    /rss*

    /rss/.../*

    /rss/rssservlet*

    /rss/rssservlet/.../*

  4. For each resource, select the resource and click Edit.
  5. Change each resource's Protection Level from Protected to Excluded and click Apply.

    Note that the resource's authentication policy and authorization policy are removed.

  6. Close the tab and restart OHS.

28.2.6.5 Configuring the WebLogic Server Administration Console and Enterprise Manager for OAM 11g

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

Note:

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

To set up OAM 11g SSO for the WebLogic Server Administration Console and Enterprise Manager:

  1. Log in to the OAM Console using your browser:

    http://host:port/oamconsole
    
  2. Go to Policy Configuration > Application Domains.

    The Policy Manager pane displays.

  3. Locate the application domain you created using the name while registering webgate agent.

  4. Expand the Resources node and click Create.

    The Resource page displays.

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

    1. Select http as the Resource Type.

    2. Select the Host Identifier created while registering the WebGate agent.

    3. Enter the Resource URL for the WebLogic Server Administration Console (/console) or Enterprise Manager (/em).

    4. Enter a Description for the resource and click Apply.

  6. Go to Authentication Policies > Protected Resource Policy and add the newly created resource.

  7. Do the same under Authorization Policies > Protected Resource Policy>

  8. In your web tier, modify the mod_wl_ohs.conf file (in WT_ORACLE_HOME/instances/<your_instance>/config/OHS/ohs1/) to include the WebLogic Server Administration Console and Enterprise Manager, by adding two additional Location entries using the actual host ID for the WebCenter Portal Administration Server for WebLogicHost.

    <Location /console>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 7001
    </Location>
     
    <Location /em>
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 7001
    </Location>
    
  9. Restart the Oracle HTTP Server for your changes to take effect.

    You should now be able to access the WebLogic Server 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.

28.2.6.6 Configuring Secure Enterprise Search for SSO

The crawl sources that are defined to crawl WebCenter Portal data and repositories used by WebCenter Portal and the corresponding authentication end points defined in SES must be routed through the web tier OHS ports so that they can be properly authenticated (the authentication method continues to be BASIC and realm jazn.com). For information about configuring SES connections, see Setting Up Oracle SES Connections.

28.2.6.7 Configuring Content Server for SSO

After you've completed your SSO setup, and after setting up a connection for Content Server, specify the web context root in the JCRContentServerConnection using Fusion Middleware Control, or as shown in the following WLST example:

setJCRContentServerConnection(appName, name, webContextRoot='/cs')

Setting the web context root tells the Document Library code that SSO has been set up. Note that this setting should not be set until after SSO has been completely set up.

28.2.6.8 Restricting Access with Connection Filters

Follow the steps below to only allow users to access WebCenter Portal and associated components through the web tier OHS ports so that they can be properly authenticated.

  1. Log in to the WebLogic Server Administration Console.

    For information on logging in to the WebLogic Server Administration Console, see 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.

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

    The Connection Logger logs successful connections and connection data in the server. You can use this information 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 Developing Applications with the WebLogic Security Service.

  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 WebLogic 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 Portal through the OHS port:

    http://host:OHS_port/webcenter

28.2.6.9 Configuring Portlet Producers and Additional Components

If you have set up your Portlet Producer applications to route through OHS, be sure to use the OHS host and port when specifying producer URLs for registration. This applies to out of-the-box producers like wsrp-tools, services-producer, pagelet producers and any other producer you have explicitly configured.

28.2.7 Testing Your OAM Installation

After installing and configuring OAM 11g, check that you can access all of the configured applications below (as they apply to your environment), and that the global login and logout is giving you access to all of your configured applications without prompting you to sign in again. Also test global logout where available and make sure you are logged out of all other related applications.

  • WebCenter Portal: Access any protected WebCenter Portal URL (a protected portal, for example), and make sure that you see the SSO login challenge. If you are already logged into another related application that uses the same SSO, you should automatically be shown content.

  • REST: Access http://ohshost:ohsport/rest/api/resourceIndex. You should see the BASIC authentication challenge. If you are already logged into another related application that uses the same SSO, you should automatically be shown content.

  • REST: Access http://ohshost:ohsport/rest/api/cmis/.... (retrieve this from resourceIndex access output in the previous step). You should not see a login challenge and should be able to see public content. When you access this after you've logged in, then you should see all content to which you have access rights.

  • Content Server: Go to the profile UI and check that you can see Content Server screens embedded in iFrames without challenging you to log in. You should also be able to access Site Studio content in Content Presenter templates without logging in as you are already logged into WebCenter Portal.

  • SOA: Access links in a workflow task flow and make sure that you are not challenged to log in.

  • Discussion forums: Access the discussions application at http://host:port/owc_discussions and log in. Check that the login is the SSO login challenge. Similarly, the Administration login to the discussions server at http://host:port/owc_discussions/admin should also go through the SSO login challenge.

28.3 Configuring SAML-based Single Sign-On

Security Assertion Markup Language (SAML) enables cross-platform authentication between web-based 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 for WebCenter Portal (Pagelet Producer applications are not supported).

When users are authenticated at one site that participates in a single sign-on configuration, they are automatically authenticated at other sites in the SSO configuration and do not need to log in separately. Note that since Pagelet Producer applications do not participate in SAML SSO, users are required to log in explicitly if they accesses the Pagelet Producer application.

Note:

Although SAML-based single sign-on provides support for logging users onto subsequent applications after initial sign-on, global logout is not supported. Consequently, users must log out of each individual application they open.

Note also that if you set up SAML-based single sign-on with WebCenter Portal as the source application and discussions as the destination application, administrators can access the discussions administration pages from WebCenter Portal Administration (Configuration > Services) and Portal Settings (Services page). However, since discussions administration pages do not participate in SSO, if you access administration pages directly, you are required to log in to the discussions server again.

Finally, SAML-based single sign-on is not available for the sdpmessaging userprefs-ui application. As an application administrator, if you click Manage Configuration in the Preferences > Messaging dialog in WebCenter Portal, you will need to log in again.

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

This section describes how to set up SAML 1.1-based single sign-on for WebCenter Portal and SOA running on different managed servers within the same domain.

This section includes the following topics:

28.3.1 SAML Components and Topology

Figure 28-5 shows the components and their interaction in a SAML-based single sign-on configuration that includes WebCenter Portal and discussions.

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 28-4 shows the components and flow for a POST-configured SAML SSO configuration that includes both a WebCenter Portal and SOA domain. The flow is similar for other destination applications participating in single sign-on such as and discussions.

Figure 28-4 Detailed SAML Single Sign-on Components and Topology (POST Profile Configured)

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

Figure 28-5 shows a simplified version of the components and flow for a POST-configured SAML SSO configuration, including the SAML SSO flow between WebCenter Portal and the discussions application.

Figure 28-5 SAML Single Sign-on Components and Topology (POST Profile Configured)

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

The steps in the flow are:

  1. The user's browser accesses WebCenter Portal (source site), hosted on a WebLogic managed server (WC_Portal) in the WebCenter Portal domain (wc_domain), by supplying user credentials.

  2. WebCenter Portal passes the user credentials to the authentication service provider.

  3. If authentication is successful, the authenticated session is established, and the WebCenter Portal 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 discussions destination site, hosted on a different WebLogic Server (WC_Collaboration) 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 Portal application on the WC_Portal managed server) that shares the same JSESSIONID cookie as WebCenter Portal.

  5. The ITS servlet calls the SAML Credential Mapper configured in the WebCenter Portal 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 for discussions) 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 (discussions) 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 for discussions).

  10. The user is logged in on the destination site (discussions) without having to reauthenticate.

28.3.2 Configuring SAML-based Single Sign-On

This section describes how to configure WebCenter Portal and associated services and components for SAML-based single sign-on using a set of automated scripts.

This section includes the following topics:

28.3.2.1 SAML Single Sign-on Prerequisites

This section describes a set of steps that should be carried out prior to configuring SAML-based single sign-on. Note that these steps assume that WebCenter Portal and associated components are already installed and the relevant connections have been configured and tested.

The prerequisites for SAML-based SSO are described in the following topics:

28.3.2.1.1 Configuring WebCenter Content Server for SAML SSO

If your instance uses a Documents connection that requires the use of OHS to surface the Content Server user interface in WebCenter Portal, you need to configure WebCenter Portal and related applications with a web tier.

When configuring SAML SSO for a configuration that includes Content Server, all HTTP URLs should point to the web tier host and port. Additionally, when Content Server is front-ended with OHS, the following entries must appear in mod_wl_ohs.conf, apart from the usual configuration for WebCenter Portal:

<Location /cs>
      SetHandler weblogic-handler
      WebLogicHost ucm.example.com
      WebLogicPort 16200
</Location>
 
<Location /adfAuthentication>
      SetHandler weblogic-handler
      WebLogicHost ucm.example.com
      WebLogicPort 16200
</Location>
 
<Location /samlacs/acs>
      SetHandler weblogic-handler
      WebLogicHost ucm.example.com
      WebLogicPort 16200
</Location> 

See Installing and Configuring the Oracle HTTP Server for more information about installing OHS and editing mod_wl_ohs.conf.

Additionally, when a custom login page is used for WebCenter Portal the following HTML comment must be added to the head section of the HTML page generated for Content Server for Site Studio Designer to work:

<!--IdcClientLoginForm=1-->

This HTML comment appears in the out-of-the-box log in pages in WebCenter Portal, but if you configure a new page to be the login page in a SAML SSO setup, then the comment must be added by hand, or in generated HTML as shown in the following example for a JSF page:

    <af:document id="d1">
      <f:facet name="metaContainer">
          <f:verbatim>
            ${cb.commentText}
          </f:verbatim>
      </f:facet>
      .........

where cb is a managed bean containing the method:

   public String getCommentText(){
      return "<!--IdcClientLoginForm=1-->";
    }

After checking that the comment text is added verbatim in the metaContainer facet of af:document, check the generated HTML page using View Source and confirm that <!--IdcClientLoginForm=1--> is in the <head> section of the HTML page.

28.3.2.1.2 Configuring the Discussions Server for SAML SSO

By default, the .EAR file that is deployed for the Oracle WebCenter Portal's Discussion Server Server supports form-based Oracle SSO or Oracle Access Manager SSO. Therefore, before you can configure the Oracle WebCenter Portal's Discussion Server for SAML-based single sign-on, you must also first deploy the SAML SSO version of the discussion server .EAR file.

Note:

Before configuring the discussions server for SSO, ensure that it is configured to use the same identity store LDAP as WebCenter Portal, as described in Reassociating the Identity Store with an External LDAP Server. If you've chosen not to move the default administrator account to an external LDAP, be sure to also follow the instructions in Migrating the Discussions Server to Use an External LDAP.

To deploy and configure the SAML SSO version of the Oracle WebCenter Portal's Discussion Server:

  1. Log in to the WebLogic Server Administration Console as an administrator.

    For information on logging in to the WebLogic Server Administration Console, see Oracle WebLogic Server Administration Console.

  2. In the Domain Structure pane, click Deployments.

    The Deployments Summary pane displays.

  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 (owc_discussions_samlsso.ear, typically in WCP_ORACLE_HOME /discussionserver).
  5. Select the owc_discussions_samlsso.ear file and click Next.
  6. Select Install this deployment as an application and click Next.
  7. Set the Name to owc_discussions.
  8. Deploy the .EAR file.
  9. Log in to the Discussions Server Administration Console as an administrator (see Configuring the Discussions Server for SSO for more information on logging in to the Discussions Server Administration Console).
  10. Open the System Properties page and edit (if it already exists) or add the owc_discussions.sso.mode property, setting its value to true.
  11. Restart the WC_Collaboration managed server (where the discussions server is deployed).
28.3.2.1.3 Configuring and Exporting the Certificates

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.

Using the getOpssService , listKeyStoreAliases, and exportKeyStoreCertificate WLST commands, get and export the certificate you have chosen to use to encrypt SAML assertions as shown in the following example. Be sure to run the exportKeyStoreCertificate command on the keystore that is configured for WC_Portal and the Administration server for the WebCenter Portal domain. For more information, see Managing Keys and Certificates with the Keystore Service in Securing Applications with Oracle Platform Security Services . For syntax for these commands, see Keystore Service Command Reference in Securing Applications with Oracle Platform Security Services.

The following example demonstrates how to export DemoIdentity certificate, which is available in the demoidentity keystore configured for a weblogic server by default. Use this as a guideline to list and export the certificate from the keystore configured in your environment that you wish to use for SAML configuration.

connect()
svc = getOpssService(name='KeyStoreService')
svc.listKeyStoreAliases(appStripe="system", name="demoidentity", password='DemoIdentityKeyStorePassPhrase', type="*") 
svc.exportKeyStoreCertificate(appStripe='system', name='demoidentity', password='DemoIdentityKeyStorePassPhrase', alias='DemoIdentity', 
type='Certificate', filepath='/tmp/demoidentity.der'

Note:

The path used in filepath above should match the certPath value in wcsamlsso.properties. Note also that the certificate must be exported only in PEM/DER format.
28.3.2.1.4 Setting Up SSL

If the WebCenter Portal installation requires SSL for providing transport-level security, then SSL should be configured before configuring single sign-on as described in Configuring SSL . Note that setting up SSL is not related to enabling SSO.

28.3.2.2 Configuring SAML-based SSO

After installing WebCenter Portal and services and components as required for your environment, continue by configuring SAML-based single sign-on using the scripts as described in this section.

The scripts set up SAML-based single sign-on in a WebLogic environment by configuring:

  • SAML Credential Mapping Provider

  • Necessary relying parties

  • Source Site Federation Services

  • SAML Identity Asserter

  • Necessary asserting parties

  • Destination Site Federation Services

This section includes the following topics:

28.3.2.2.1 The Single Sign-on Script

The single sign-on script to configure SAML 1.1 SSO for WebCenter Portal and related applications is located in the WCP_ORACLE_HOME/webcenter/scripts/samlsso folder. The following files are relevant for SAML configuration:

  • wcsamlsso.properties

  • configureSpaces.py

  • configureCollab.py

  • configureUtilities.py

  • configureSOA.py

  • configureUCM.py

  • configureREST.py

  • configureForum.py

  • configureWorklistIntegration.py

  • configureCS.py

wcsamlsso.properties

This properties file (WCP_ORACLE_HOME/webcenter/scripts/samlsso/wcsamlsso.properties) encapsulates the necessary configuration information for the SAML SSO setup. Copy the properties file to the WCP_ORACLE_HOME/common/bin folder, change directories to that folder and edit wcsamlsso.properties as described below before running the configuration scripts.

The properties file has the following sections:

spaces_config

This section captures the login information, WebLogic Admin URL, WebCenter Portal server and URL, and so forth, of the WebCenter Portal domain required for the Credential Mapper and Source Site Federation Services configuration. All properties in this section must be completed.

  • configFile - Config file containing the weblogic user account and password for the WebCenter Portal domain

  • keyFile - Key file to decrypt the weblogic user account and password for the WebCenter Portal domain

  • adminURL - WebLogic Admin URL to connect to WLST

  • usesSSL - Indicates whether WebCenter Portal is configured to use SSL

  • url - WebCenter Portal URL. If usesSSL is "true", then change "http" to "https". If WebCenter Portal is front-ended with a web tier, then specify the web tier host and port here.

  • serverName - Server where WebCenter Portal is deployed, typically WC_Collaboration

  • certAlias - Alias of certificate to sign SAML assertions

  • certPassword - Encrypted password of certificate to sign SAML assertions

collab_config

This section captures the login information, admin URL, certificate file path, and so forth, of the Collaboration domain required for the Identity Asserter and Destination Site Federation Services configuration. Only complete this section if your setup has discussions configured.

  • configFile - Config file containing weblogic user account and password for the Services domain

  • keyFile - Key file to decrypt weblogic user account and password for the Services domain

  • adminURL - WebLogic Admin URL to connect to WLST

  • usesSSL - Indicates whether discussions is configured to use SSL

  • serverName - Server where discussions is deployed (typically the WC_Collaboration managed server)

  • certAlias - Alias of certificate to verify SAML assertions

  • certPath - Path to exported certificate to verify SAML assertions. Note that the certificate path should be a valid path on the machine that hosts the domain (i.e., the one specified in adminURL)

utilities_config

This section captures the login information, admin URL, and certificate file path of the Utilities domain required for the Identity Asserter and Destination Site Federation Services configuration. Complete this section out only if your setup is configured with the Activity Graph application.

  • configFile - Configuration file containing weblogic user account and password for the Utilities domain

  • keyFile - Key file to decrypt weblogic user account and password for the Utilities domain

  • adminURL - WebLogic Admin URL to connect to WLST

  • usesSSL - Indicates whether Utilities applications are configured to use SSL

  • serverName - Server where Utilities applications are deployed (typically the WC_Utilities managed server)

  • certAlias - Alias of certificate to verify SAML assertions

  • certPath - Path to exported certificate to verify SAML assertions. Note that the certificate path should be a valid path on the machine that hosts the domain (i.e., the one specified in adminURL)

soa_config

This section captures the login information, admin URL, certificate file path, and so forth, of the SOA domain required for the Identity Asserter and Destination Site Federation Services configuration. Only complete this section if your setup has SOA configured.

  • configFile - Configuration file containing the weblogic user account and password for the SOA domain

  • keyFile - Key file to decrypt the weblogic user account and password for the SOA domain

  • adminURL - WebLogic admin URL to connect to WLST

  • usesSSL - Indicates whether SOA applications are configured to use SSL

  • serverName - Server where SOA applications are deployed (typically soa_server1)

  • certAlias - Alias of certificate to verify SAML assertions

  • certPath - Path to exported certificate to verify SAML assertions. Note that the certificate path should be a valid path on the machine that hosts the domain (i.e., the one specified in adminURL)

ucm_config

This section captures the login information, admin URL, certificate file path, and so forth, of the Content Server domain required for the Identity Asserter and Destination Site Federation Services configuration. Only complete this section if your installation has the Documents service configured.

  • configFile - Configuration file containing the weblogic user name and password for the Content Server (UCM) domain

  • usesSSL - Indicates whether Content Server applications are configured to use SSL

  • keyFile - Key File to decrypt the weblogic user account and password for the Content Server (UCM) domain

  • adminURL - WebLogic Administration URL to connect to WLST

  • serverName - Server where Content Server applications are deployed (typically UCM_server1)

  • certPath - Path to exported certificate to verify SAML assertions. Note that the certificate path should be a valid path on the machine that hosts the domain (i.e., the one specified in adminURL)

rss_config

This is mandatory

  • url - RSS URL. If usesSSL in spaces_config is "true", then change "http" to "https". If RSS is front-ended with web tier, then specify the web tier host and port here.

rest_config

This section must be completed.

  • url - REST URL. If usesSSL in spaces_config is "true", then change "http" to "https". If REST is front-ended with a web tier, then specify the web tier host and port here.

forum_config

Complete this section if your configuration has discussions installed.

  • url - OWC discussions URL. If usesSSL in collab_config is "true", then change "http" to "https". If discussions is front-ended with a web tier, then specify the web tier host and port here.

worklist_config

Complete this section if SOA is installed and portal workflows is enabled for WebCenter Portal. For more information, see Specifying the BPEL Server Hosting WebCenter Portal Workflows.

  • worklist_integration - Worklist Integration application URL. If usesSSL in soa_config is "true", then change "http" to "https". If Worklist Detail application is front-ended with a web tier, then specify the web tier host and port here.

cs_config

Complete this section if your configuration has Content Server installed and you have a documents connection configured for the WebCenter Portal application.

  • url - Content Server URL. If usesSSL in spaces_config is "true", then change "http" to "https". If Content Server is front-ended with a web tier, then specify the web tier host and port here. Note that if both WebCenter Portal and Content Server are configured for your environment, then they must both be accessed using the same web tier.

configureSpaces.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureSpaces.py) to configure SAML 1.1 Credential Mapper, SAML 1.1 Identity Asserter and Source and Destination site federation services on the WebCenter Portal domain

configureCollab.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureCollab.py) to configure SAML 1.1 Identity Asserter and Destination site federation services on the Collaboration domain

configureUtilities.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureUtilities.py) to configure SAML 1.1 Identity Asserter and Destination site federation services on the Utilities domain

configureSOA.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureSOA.py) to configure SAML 1.1 Identity Asserter and Destination site federation services on the SOA domain

configureUCM.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureUCM.py) to configure SAML 1.1 Identity Asserter and Destination site federation services on the Content Server domain

configureREST.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureREST.py) to configure asserting and relying parties for the REST application

configureRSS.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureRSS.py) to configure asserting and relying parties for RSSapplication

configureForum.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureForum.py) to configure asserting and relying parties for discussions

configureWorklistIntegration.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureWorklistIntegration.py) to configure asserting and relying parties for the Worklist Integration application

configureWorklistDetail.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureWorklistDetail.py) to configure asserting and relying parties for the Worklist Community Detail application

configureWorklistSDP.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureWorklistSDP.py) to configure asserting and relying parties for the Worklist SDP application

configureCS.py

Executable script (WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureCS.py) to configure asserting and relying parties for the Content Server application.

28.3.2.2.2 Using the Scripts

Follow the steps below to use the scripts to configure SAML-based single sign-on:

Note:

If you encounter errors when running the scripts due to configuration errors, the SAML SSO configuration may be left in an incomplete state. The configuration scripts provided are not re-runnable; you must clean up the SAML SSO artifacts before you retry the configuration as described in Removing Your SAML SSO Configuration.

  1. Ensure that the Administration server for all the domains used in this configuration are up and running.

  2. Generate the configuration and key files containing the connection information for the various domains using the storeUserConfig WLST command from the WCP_ORACLE_HOME/common/bin so that the properties file is picked up. Use the command-line help (help('storeUserConfig')) for usage and syntax details.

    1. Connect using WLST to the WebCenter Portal domain using the admin username and password, and run the following command:

      storeUserConfig('spacesconfig.secure', 'spaceskey.secure')

      This creates a user configuration file and an associated key file. The user configuration file contains an encrypted username and password. The key file contains a secret key that is used to encrypt and decrypt the username and password. The above command stores the configuration and key files in the directory from where WLST was invoked, or you can optionally specify a more secure path.

    2. Repeat step 2a after connecting to the Collaboration domain using the admin username and password. Even if the Utilities server is in the same domain as WebCenter Portal (wc_domain), you must connect to the WebCenter Portal domain and run this command:

      storeUserConfig('collabconfig.secure', 'collabkeykey.secure')

    3. Repeat step 2a after connecting to the Utilities domain using the admin username and password. Even if the Utilities server is in the same domain as WebCenter Portal (wc_domain), you must connect to the WebCenter Portal domain and run this command:

      storeUserConfig('utilitiesconfig.secure', 'utilitieskey.secure')

    4. Repeat step 2a after connecting to the SOA domain using the admin username and password. Even if SOA is installed on the same domain as WebCenter Portal, you must connect to the WebCenter Portal domain and run this command:

      storeUserConfig('soaconfig.secure', 'soakey.secure')

    5. Repeat step 2a after connecting to the Content Server domain using the admin username and password.

      storeUserConfig('ucmconfig.secure', 'ucmkey.secure')

  3. Launch WLST and run the WLST encrypt command to encrypt the certificate password. Use the command-line help (help('encrypt')) for usage and syntax details.

    print encrypt(obj='<certificatePassword>', domainDir='<full path to the WebCenter Portal domain directory>')

    This displays the encrypted certificate password. The encrypt command uses the encryption for a specified WebLogic Server domain root directory. The encrypted output needs to be set as the certPassword value in wcsamlsso.properties mentioned in the next step. Since this password will be set onto the credential mapper and source site federation services in the WebCenter Portal domain, ensure that you run the encryption utility from the WebCenter Portal domain.

  4. Edit WCP_ORACLE_HOME/common/bin/wcsamlsso.properties and complete the sections applicable to your setup. Refer to The Single Sign-on Script for a detailed description of the sections in the properties file.

  5. Launch WLST from WCP_ORACLE_HOME/common/bin and execute the scripts in the order shown below.

    Note:

    Run the scripts in the WLST offline mode as the scripts include an explicit connect command.

    1. execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureSpaces.py')

      Restart all servers including the Administration server in the WebCenter Portal domain.

    2. If you have a discussions server set up, execute the configureCollab.py script:

      execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureCollab.py')

      If discussions belongs to the same domain as WebCenter Portal, then only restart the WC_Collaboration managed server. Otherwise, restart all servers including the Administration server in the Collaboration domain.

    3. If you have a Utilities server set up, execute the configureUtilities.py script:

      execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureUtilities.py')

      If the Utilities server belongs to the same domain as WebCenter Portal, then only restart the WC_Utilities server. Otherwise, restart all servers including the Administration server in the Utilities domain.

    4. If you have SOA server connections configured for WebCenter Portal, execute the configureSOA.py script:

      execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureSOA.py')

      Restart all servers including the Administration server in the SOA domain.

    5. If you have documents configured for WebCenter Portal, run the configureUCM.py script as shown below:

      execfile('WCP_ORACLE_HOME/webcenter/scripts/samlsso/configureUCM.py')
      

      Restart all servers including the Administration server in the Content Server domain.

  6. Run the individual commands below as required for your environment.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureREST.py') - No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureRSS.py') - No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureForum.py') - Do this if you have discussions installed in your setup. No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureWorklistIntegration.py') - Do this if you have Worklist installed in your setup. No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureWorklistDetail.py') - Do this if you have Worklist installed in your setup. No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureWorklistSDP.py') - Do this if you have Worklist installed in your setup. No restart is required.

    execfile('<WCP_ORACLE_HOME>/webcenter/scripts/samlsso/configureCS.py') - Do this if you have Content Server installed in your setup. No restart is required.

  7. Check your installation using the steps provided in Checking Your Configuration.

    Note:

    Since the properties file contains sensitive information, delete it from <WCP_ORACLE_HOME>/common/bin after you have configured and verified the SAML SSO setup. Also delete the config and key files you generated in step 2 above.

Note:

If you encounter errors when running the scripts, you must remove the asserting and relying parties set up by the scripts before running the scripts again as described in Removing Your SAML SSO Configuration.

After removing your old SAML SSO configuration, continue by re-running the scripts.

28.3.2.3 Configuring SAML SSO for RSS Using External Readers

By default, WebCenter Portal RSS feeds are protected by SSO. However, they will not work well with external readers if left protected. If access using external readers is important, Oracle recommends that the WebCenter Portal RSS resource be unprotected so that the authentication for the RSS Servlet is handled by WebLogic Server's BASIC authentication that external readers can handle.

Follow the steps below to unprotect the RSS feeds:

  1. Log onto the WLS Administration Console for the WebCenter Portal domain.
  2. Open the security realm and select Providers >Credential Mapping > wcsamlcm> Management > Relying Parties.
  3. Disable or delete the relying party for RSS.
  4. Open the security realm and select Providers > Authentication > wcsamlia > Management > Asserting Parties.
  5. Disable or delete the asserting party for RSS.

28.3.2.4 Checking Your Configuration

Follow the steps below to check that your single sign-on configuration is working correctly.

To test your single sign-on configuration:

  1. Using a new browser, log in to WebCenter Portal and check that you're not challenged for credentials when you click Forum Administration from Portal Settings > Services > Discussions (assuming this service is provisioned for the portal).
  2. Access the RSS link from the discussions or worklist task flow and check that you are not challenged to log in.
  3. For Content Server, go to the Profile user interface and make sure you see Content Server screens embedded in iFrames without being challenged to log in. You should also be able to access Site Studio content in Content Presenter templates without being challenged to log in as you are already logged into WebCenter Portal.
  4. Access http://host:port/rest/api/resourceIndex and make sure you see the BASIC authentication challenge. If you are already logged in to another related application that uses the same SSO, you should shown content without being challenged to log in.
  5. To test SOA, access links in the Workflow task flow and make sure you are not challenged to log in.

If while testing SAML SSO you encounter 404 or 403 errors, check the SAML configuration and also turn on debug logging for SAML on the AdminServer. Also turn on logging for the WC_Portal server and the server hosting your destination site. The logs will be available in $domain.home/servers/<server>/logs/<server>.log. For information on how to turn on logging for WC_Portal and other application servers, see Viewing and Configuring WebCenter Portal Logs. Before re-running the scripts, remove your SAML SSO configuration as described in Removing Your SAML SSO Configuration.

28.3.2.5 Disabling Your SAML SSO Configuration

This section describes how to temporarily disable your SAML SSO configuration for testing or other purposes.

To disable your SAML SSO configuration:

  1. Log onto the WLS Administration Console for the WebCenter Portal domain.

  2. Open the security realm and select Providers >Credential Mapping > wcsamlcm> Management > Relying Parties and disable all the relying parties shown there.

  3. Open the security realm and select Providers > Authentication > wcsamlia > Management > Asserting Parties and disable all the asserting parties shown there.

  4. If there are other WLS domains, such as SOA or Content Server, that have been configured with SAML SSO, remove the SAML SSO configuration from these domains as well:

    1. Log in to the WLS Administration Console for the WLS domain.

    2. Open the security realm and select Providers > Authentication > wcsamlia > Management > Asserting Parties and disable all the asserting parties shown there.

  5. Confirm that the SAML SSO configuration has been disable by opening your applications and checking that you are not prompted to sign in.

28.3.2.6 Removing Your SAML SSO Configuration

Since the SAML SSO configuration scripts do not include a cleanup facility, if you have made errors while updating the wcsamlsso.properties file or running the scripts, the configuration could be in an invalid state. At this point, it's better to clean up all the SAML SSO configurations and start over. This section describes the steps to remove the SAML SSO configuration.

Note that if you have fully set up SAML SSO (i.e., the script ran to completion), then all the instructions below will be valid. However, if you encountered errors while running the script, then the configuration may be incomplete and only some of the artifacts below will be present and will need to be removed.

To remove your SAML SSO configuration:

  1. Log onto the WLS Administration Console for the WebCenter Portal domain.

  2. Open the security realm and select Providers >Credential Mapping > wcsamlcm> Management > Relying Parties and delete all the relying parties shown there.

  3. Open the security realm and select Providers > Authentication > wcsamlia > Management > Asserting Parties and delete all the asserting parties shown there.

  4. Go to Providers > Authentication > wcsamlia > Management > Certificates and delete the certificate there.

  5. Go to Providers > Credential Mapping > wcsamlcm and delete the SAML Credential Mapper.

  6. Go to Providers > Authentication > wcsamlia and delete the SAML Identity Asserter.

  7. Restart the entire WebCenter Portal WLS domain.

  8. If there are other WLS domains, such as SOA or Content Server, that have been configured with SAML SSO, remove the SAML SSO configuration from these domains as well:

    1. Log in to the WLS Administration Console for the WLS domain.

    2. Open the security realm and select Providers > Authentication > wcsamlia > Management > Asserting Parties and delete all the asserting parties shown there.

    3. Go to Providers > Authentication > wcsamlia > Management > Certificates and delete the certificate there.

    4. Go to Providers > Authentication > wcsamlia and delete the SAML Identity Asserter.

    5. Restart the entire WLS domain.

  9. Confirm that the SAML SSO configuration has been removed by opening your applications and checking that you are not prompted to sign in. You can now safely use the scripts again to reconfigure SAML SSO.

28.4 Configuring SSO for Microsoft Clients

This section describes how to set up single sign-on (SSO) for 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 WebCenter Portal. 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 Portal) in a WebLogic domain based on the same credentials, and without the need to type in their password again. For more information about using Microsoft Office clients with WebCenter Portal, see Chapter 25, "Managing Microsoft Office Integration."

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) must parse SPNEGO tokens in order to extract Kerberos tokens, which are then used for authentication.

This section contains the following subsections:

28.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 28-6 Connecting to a Server Through a Key Distribution Center

Description of Figure 28-6 follows
Description of "Figure 28-6 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 several 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 submechanisms include NTLM and Kerberos, both used in Active Directory.

This feature enables a client browser to access a protected resource on WebLogic Server, and to transparently provide the WebLogic Server with authentication information from the Kerberos database using a SPNEGO ticket. The WebLogic Server can recognize the ticket and extract the information from it. WebLogic Server 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 WebLogic Server.)

Figure 28-7 SPNEGO-based Authentication

Description of Figure 28-7 follows
Description of "Figure 28-7 SPNEGO-based Authentication"

28.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 logins will not work.

28.4.3 Configuring Microsoft Clients

Configuring SSO with Microsoft clients requires configuring the Microsoft Active Directory, the Microsoft client, and the WebLogic Server domain shown in Figure 28-8 . For detailed configuration steps and troubleshooting, see Configuring Single Sign-On with Microsoft Clients in Administering Security for Oracle WebLogic Server 12c (12.2.1).

Figure 28-8 Configuring SSO with Microsoft Clients

Description of Figure 28-8 follows
Description of "Figure 28-8 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 (see Configuring Single Sign-On with Microsoft Clients in Administering Security for Oracle WebLogic Server 12c (12.2.1)).

  3. Choose a browser client (Internet Explorer or Mozilla Firefox) and configure it to use Kerberos tokens (see “Enabling the Browser to Return Kerberos Tokens” in Oracle Argus Insight Installation Guide).

  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 (see the "Creating a JAAS Login File in Administering Security for Oracle WebLogic Server 12c (12.2.1)).

    2. Configure a Negotiate Identity Assertion provider in the WebLogic Server security realm (see Configuring the Negotiate Identity Assertion Provider).

    3. Configure the WebLogic Server 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 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. Add the following system properties to the JAVA_OPTIONS in setDomainEnv.sh for each WebCenter Portal machine, changing the values below for the values of the particular host (on one line):

    -Dnon_sso_protocol=http (the protocol to access WebCenter Portal directly through the WC_Portal server without going through OHS)
    -Dnon_sso_host=example.com (the host for the WLS WC_Portal server)
    -Dnon_sso_port=8888 (the port for the WLS WC_Portal server)
    -Dsso_base_url=http://example.com:7777 (the URL for accessing the WC_Portal server through OHS) 
    

    The non_sso values are the value on the machine for protocol, host, and port. The sso values are the value that the user would see when directed through OHS.

  6. For WebCenter Portal, configure the web tier OHS so that it forwards requests to the Oracle WebLogic Server for WebCenter Portal, as described in Configuring SSO with Virtual Hosts.

  7. Restart the WebLogic Servers (Administration Server and managed servers) using the startup arguments specified in step 5. Repeat steps 4, 5, and 6 for the SOA domain to enable single sign-on for SOA applications.

  8. Restart the OHS for the changes to take effect.

  9. Configure the discussions server (see Configuring the Discussions Server for SSO).

28.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 through Kerberos.

To configure the Negotiate Identity Assertion provider:

  1. Log in to the WebLogic Server Administration Console.

    For information on logging in to the WebLogic Server Administration Console, see Oracle WebLogic Server Administration Console.

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

    The Summary of Security Realms pane displays.

  3. Click your security realm.

    The Settings page for the security realm displays.

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays.

  5. Click New.

    The Create a New Authentication Provider pane displays.

  6. Enter a Name for the identity asserter, and select NegotiateIdentityAsserter as the Type.
  7. Click OK.

28.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 WebLogic Server Administration Console.

    For information on logging in to the WebLogic Server Administration Console, see Oracle WebLogic Server Administration Console.

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

    The Summary of Security Realms pane displays.

  3. Click your security realm.

    The Settings page for the security realm displays.

  4. Open the Providers tab and select the Authentication subtab.

    The Authentication Settings pane displays.

  5. Click New.

    The Create a New Authentication Provider pane displays.

  6. Enter a Name for the authentication provider, and select ActiveDirectoryAuthenticator as the Type.

  7. Click OK.

  8. Click the authentication provider you just created in the list of providers.

    The Settings page for the provider displays.

  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.

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


    Table 28-2 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...

28.4.3.3 Configuring WebCenter Portal

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 Portal. There are two options for doing this:

  • Turn off public access, by logging in to WebCenter Portal as an administrator and removing View access from the Public-User role. When public access is turned off, accessing the URL http://host:port/webcenter takes the user directly to the authenticated view rather than the default public page which has a login section. This is recommended when users are accessing WebCenter Portal only using Internet Explorer, and are confined to the domain where WNA is set up.

  • If you must retain public access to WebCenter Portal, then the recommendation is to use the oracle.webcenter.spaces.osso=true flag when starting the WC_Portal server. This flag tells WebCenter Portal 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 Portal within the Windows network configured for WNA, or any browser is used to access WebCenter Portal from outside the Windows network domain, users see the login page after clicking the Login link.

28.4.3.4 Configuring the Discussions Server for SSO

This section describes how to configure the discussions server for single sign-on. Before configuring the discussions server for SSO, ensure that it has been configured to use the same identity store LDAP as WebCenter Portal, as described in Migrating the Discussions Server to Use an External LDAP.

To set up the discussions server for SSO:

  1. Log in to the Oracle WebCenter Portal's Discussion Server Server Admin Console at:
    http://host:port/owc_discussions/admin
    

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

  2. Open the System Properties page and edit (if it already exists) or add the owc_discussions.sso.mode property, setting it's value to true.

28.5 Configuring SSO with Virtual Hosts

This section describes the OHS configuration required for an environment containing applications that use "/" as the context root, and the additional configuration required in OHS when single sign-on is involved.

This section contains the following subsections:

28.5.1 Understanding the Need for a Virtual Host

The term virtual host refers to the practice of running more than one web site (such as www.company1.com and www.company2.com) on a single machine. Virtual hosts can be IP-based, meaning that you have a different IP address for each web site, or name-based, meaning that you have multiple names running on each IP address. The fact that they are running on the same physical server is not apparent to the end user. For more information about virtual hosts, refer to your Apache documentation.

28.5.2 Configuring Virtual Hosts for OAM 11g

To configure OAM 11g for virtual hosts requires bypassing single sign-on for applications that only support BASIC authorization or do not require single sign-on.

Prior to completing these steps you should already have completed the steps for configuring OAM 11g in Configuring Oracle Access Manager.

Follow the steps below to configure virtual hosts for OAM 11g.

  1. Locate and comment out the following configuration in webgate.conf:

    #Comment out this and move to VirtualHost configuration
    #<LocationMatch "/*">
    #AuthType Oblix
    #require valid-user
    #</LocationMatch>
    

    This entry causes the WebGate to intercept all requests and process it.

  2. Move this entry into the virtual host configuration in httpd.conf where single sign-on is required. as shown in the example below:

    NameVirtualHost *:7777
     
    <VirtualHost *:7777>
      ServerName webtier.example.com
      <LocationMatch "/*">
        AuthType Oblix
        require valid-user
      </LocationMatch>
    </VirtualHost>
     
    <VirtualHost *:7777>
      ServerName webtier-spaces.example.com
      <Location  />
          SetHandler weblogic-handler
          WebLogicHost webcenter.example.com
          WebLogicPort 8888
      </Location>
      <Location /webcenter>
          Deny from all
      </Location>
      <Location /webcenterhelp>
          Deny from all
      </Location>
      <Location /rest>
          Deny from all
      </Location>
    </VirtualHost>
    

    The idea is to provide a single sign-on experience for the default virtual host (webtier.example.com), but not for the WebCenter Portal virtual host (webtier-spaces.example.com) as some applications do not support it.

  3. Restart OHS. Also be sure to update the DNS with entries for webtier-spaces.example.com.

Note:

In the webtier-spaces.example.com virtual host that bypasses single sign-on, only some applications need to bypass single sign-on. For other applications like WebCenter Portal, however, we need single sign-on so we deny access to these applications from this virtual host.