Skip Headers
Oracle® Application Server Single Sign-On Administrator's Guide
10g (10.1.4.0.1)

Part Number B15988-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

7 Enabling SSL

This chapter explains how to enable the single sign-on server for Secure Sockets Layer (SSL). In SSL, a secret session key is created, enabling the exchange of information over a secure channel. When the user logs in, the Web server sends the browser a digital certificate. The browser uses a public key sent by the Web server to encrypt a random number. This encrypted data is used in turn to create the secret key. Enabling the single sign-on server for SSL confers this form of protection on the server's partner applications. The process provides OracleAS with a high degree of security.

Out of the box, the single sign-on server uses the HTTP port of the Oracle HTTP Server. You can, however, configure SSL after installation using either an automated or manual approach.

Automated SSL Configuration

For common topologies, the SSL Configuration Tool can perform the steps required to enable post-installation SSL of the Oracle HTTP Server. For details about the tool and how to run it, see "Using the SSL Configuration Tool" in the Oracle Application Server Administrator's Guide.

If you want to monitor your server, the Beacon Certificate Authorities certificate file, b64InternetCertificate.txt, in the installation directory for the Enterprise Manager Agent, must contain the certificate of the infrastructure server. See the document Oracle Enterprise Manager Advanced Configuration for details. In particular, see the section on configuring beacons to monitor Web applications over HTTPS in the chapter on Oracle Enterprise Manager security.


Note:

Before using the SSL Configuration Tool, you must understand the limitations of configuring an SSL port. See "Caveats About Configuring SSL" on page 7-5 for details.

Manual SSL Configuration

If you prefer a manual approach to enabling SSL, complete the following tasks in the order listed:


Note:

If the Oracle HTTP Server is configured for SSL (topic 1) you must configure the single sign-on server for SSL as well (remaining topics); otherwise users will be unable to access single sign-on URLs. To skirt this restriction, disable SSL directives for URLs that you want to access over HTTP. You do this by editing ORACLE_HOME/sso/conf/sso_apache.conf.

7.1 Enable SSL on the Single Sign-On Middle Tier

The following steps involve configuring the Oracle HTTP Server. In performing them, keep the following in mind:

To quickly enable SSL on the Oracle HTTP Server, do the following:

  1. Back up the opmn.xml file, found at ORACLE_HOME/opmn/conf.

  2. In opmn.xml, change the value for the start-mode parameter to ssl-enabled. This parameter appears in boldface in the xml tag immediately following.

    <ias-component id="HTTP_Server"> 
        <process-type id="HTTP_Server" module-id="OHS"> 
            <module-data> 
               <category id="start-parameters"> 
                   <data id="start-mode" value="ssl-enabled"/> 
               </category> 
            </module-data> 
        <process-set id="HTTP_Server" numprocs="1"/> 
        </process-type> 
    </ias-component>
    
    
  3. Update the distributed cluster management database with the following change:

    ORACLE_HOME/dcm/bin/dcmctl updateconfig -ct opmn
    
    
  4. Reload the modified opmn configuration file:

    ORACLE_HOME/opmn/bin/opmnctl reload 
    
    
  5. Keep a non-SSL port active on the Oracle HTTP Server that communicates with the OracleAS Single Sign-On server.

    The External Applications portlet communicates with the single sign-on server over a non-SSL port. The HTTP port is enabled by default. If you have not disabled the port, this step requires no action. Note that users will not be able to use this port for logins. See "Caveats About Configuring SSL" on page 7-5 for details.

  6. Restart the Oracle HTTP Server:

    ORACLE_HOME/opmn/bin/opmnctl stopproc process-type=HTTP_Server
    ORACLE_HOME/opmn/bin/opmnctl startproc process-type=HTTP_Server
    
    
  7. Verify that you have enabled the single sign-on middle tier for SSL by trying to access the OracleAS welcome page, using the format https://host:ssl_port.


Note:

If your installation has two or more middle tiers, make sure that you complete step 2 in "Configure the Oracle HTTP servers on the single sign-on middle tiers". This is a subsection of "Multiple Single Sign-On Middle Tiers, One Oracle Internet Directory" one of the deployment scenarios presented in Chapter 9.

7.2 Reconfigure the Identity Management Infrastructure Database

To reconfigure the Identity Management Infrastructure Database, you must:

  1. Change all references of http in single sign-on URLs to https within the identity management infrastructure database.

  2. When you change single sign-on URLs in the database, you must also change these URLs in the targets.xml file on the single sign-on middle tier. targets.xml is the configuration file for the various targets that Oracle Enterprise Manager monitors. One of these targets is OracleAS Single Sign-On.

  3. Configure Oracle Enterprise Manager Security.

These steps are described in the subsequent sections.

7.2.1 Change Single Sign-On URLs

Run the ssocfg script, taking care to enter the command on the computer where the single sign-on middle tier is located. Use the following syntax:

  • UNIX:

    $ORACLE_HOME/sso/bin/ssocfg.sh protocol host ssl_port
    
    
  • Windows:

    %ORACLE_HOME%\sso\bin\ssocfg.bat protocol host ssl_port
    
    

In this case, protocol is https. (To change back to HTTP, use http.) The parameter host is the host name, or server name, of the Oracle HTTP listener for the single sign-on server.

Here is an example:

ssocfg.sh https login.acme.com 4443

To determine the correct port number, examine the ssl.conf file. Port 4443 is the port number that the OracleAS installer assigns during installation.

If you run ssocfg successfully, the script returns a status 0. To confirm that you were successful, restart the OC4J_SECURITY instance:

ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY

Then try logging in to the single sign-on server at its SSL address:

https://host:ssl_port/sso/

7.2.2 Update targets.xml

After running ssocfg, update the targets.xml file on the single sign-on middle tier.

To update targets.xml:

  1. Back up the file:

    cp ORACLE_HOME/sysman/emd/targets.xml ORACLE_HOME/sysman/emd/targets.xml.backup
    
    
  2. Open the file and find the target type oracle_sso_server. Within this target type, locate and edit the three attributes that you passed to ssocfg:

    • HTTPMachine—the HTTP server host name

    • HTTPPort—the SSL port number of the Oracle HTTP server

    • HTTPProtocol—the server protocol

    If, for example, you run ssocfg like this:

    ORACLE_HOME/sso/bin/ssocfg.sh https sso.mydomain.com:4443
    
    

    Update the three attributes this way:

    <Property NAME="HTTPMachine" VALUE="sso.mydomain.com"/>
    <Property NAME="HTTPPort" VALUE="4443"/>
    <Property NAME="HTTPProtocol" VALUE="HTTPS"/>
    
    
  3. Save and close the file.

  4. Reload the OracleAS console:

    ORACLE_HOME/bin/emctl reload
    

7.2.3 Configure Oracle Enterprise Manager Security

Since you are enabling the single sign-on server for SSL, you will need to follow all the configuration instructions detailed in the chapter about Oracle Enterprise Manager security in Oracle Enterprise Manager Advanced Configuration. Specifically, pay close attention to the section titled "Configuring Beacons to Monitor Web Applications Over HTTPS." Oracle Beacons, which are part of the Application Service Level Management features of Enterprise Manager, provide application performance availability and performance monitoring. Beacons are used to monitor a URL over SSL using an HTTPS URL.

7.3 Protect Single Sign-On URLs

When the single sign-on server is enabled for SSL, you must specify that HTTP access be limited to those hosts that must access the server using this protocol. This is especially true in the case of those computers hosting the OracleAS installer and OracleAS Portal.

This section provides instructions for:

7.3.1 Protecting URLs in the Absence of a Load Balancing Router

Use these instructions when no load balancing router is deployed in front of the single sign-on server and OracleAS Portal. In ORACLE_HOME/sso/conf/sso_apache.conf, locate and uncomment the directives that follow, then provide a value for the Allow from parameter.

OracleAS Portal must use HTTP to access the URL that provides a list of external applications. The directive that follows enables such access. Replace <your_domain_name> with the fully qualified Portal host name; then uncomment the directive. If you have more than one Portal database, enter just the domain name for these databases.

#<Location "/sso/eappslist">
#  Order deny,allow
#  Deny from all
#  Allow from <your_domain_name>
#</Location>

After editing sso_apache.conf, update the repository for Distributed Cluster Management:

ORACLE_HOME/dcm/bin/dcmctl updateConfig -v -d

7.3.2 Protecting URLs in the Presence of a Load Balancing Router

In a deployment configuration where the single sign-on server and OracleAS Portal are front-ended by a load-balancing router, the rule for limiting access to hosts should be set directly with the load-balancing router. Do not attempt to add such a rule in the ORACLE_HOME/Apache/Apache/conf/sso_apache.conf file to allow or deny access to a host for this configuration.

Here is an example of such a rule for BigIP:

if (client_addr != <infrastructure db IP> netmask 255.255.255.0 and 
    (http_uri starts_with 
    "/sso/eappslist")) {
discard 
} 
else { 
    use pool SSO 
} 

Note:

This is a specific example and is presented for illustration only. In practice, you should ensure that any access rule you apply is consistent with the load balancing router in use.

7.4 Restart the Oracle HTTP Server and the Single Sign-On Middle Tier

Issue these two commands:

ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=HTTP_Server
ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY

7.5 Caveats About Configuring SSL

There are two cases you must consider when configuring SSL:

When you have configured OracleAS Single Sign-On Server for SSL, you must also maintain a non-SSL port on the Oracle HTTP Server that front-ends the OracleAS Single Sign-On Server. This port is required for OracleAS Single Sign-On operation whether or not SSL is configured.

However, if you do this, note that users will not, by default, be able to use the non-SSL port to access OracleAS Single Sign-On-protected content on that Oracle HTTP Server. For example, if you have configured OracleAS Single Sign-On to protect http://myhost.mydomain.com on Oracle HTTP Server 1, users will receive an error if they enter this URL in their browser. They must use https instead.

When you have configured a partner application for SSL (this includes configuring OracleAS Single Sign-On), to enable users to access content using both an SSL and a non-SSL port, you must configure two instances of the partner application. One instance should use the SSL port and the other should use the non-SSL port. See "Configuring and Administering Partner Applications" on page 4-1 for details.


Note:

Oracle does not recommend blocking the non-SSL port for the Oracle HTTP Server that is front-ending the OracleAS Single Sign-On Server.

7.6 Reregister Partner Applications

Once you have enabled the partner application for SSL, reregister mod_osso on the single sign-on middle tier and on the application middle tiers. This step configures mod_osso to use the effective single sign-on URL. See "Configuring mod_osso with Virtual Hosts (SSL and non-SSL)" in Chapter 4 for instructions. To reregister OracleAS Portal, an application integrated with the single sign-on SDK, use the ptlconfig tool. To learn how to use ptlconfig, see Appendix B in Oracle Application Server Portal Configuration Guide.


Note:

After reregistering the partner application, by default users will not be able to access protected content using a non-SSL port. See "Caveats About Configuring SSL" on page 7-5 for details.

7.7 Secure Transmission of mod_osso Cookies

You can add the OssoSecureCookies directive to set the Secure flag on all cookies created by mod_osso. This tells the browser to only transmit those cookies on connections secured by HTTPS.

An example of this directive, in the mod_osso configuration file located in ORACLE_HOME/Apache/Apache/conf/mod_osso.conf, is as follows:

<IfModule mod_osso.c>
OssoIpCheck off
OssoIdleTimeout off
OssoSecureCookies on
OssoConfigFile osso/osso.conf
<Location /j2ee/webapp>
require valid-user
AuthType Basic
</Location>
</IfModule>