820-5986 Deployment Example SAML v2 Using Sun OpenSSO Enterprise 80
820-5986 Deployment Example SAML v2 Using Sun OpenSSO Enterprise 80
Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without
limitation, these intellectual property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.
U.S. Government Rights – Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions
of the FAR and its supplements.
This distribution may include materials developed by third parties.
Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other
countries, exclusively licensed through X/Open Company, Ltd.
Sun, Sun Microsystems, the Sun logo, the Solaris logo, the Java Coffee Cup logo, docs.sun.com, Java, and Solaris are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC
International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
The OPEN LOOK and SunTM Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts
of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to
the Xerox Graphical User Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs and otherwise comply with Sun's written license
agreements.
Products covered by and information contained in this publication are controlled by U.S. Export Control laws and may be subject to the export or import laws in
other countries. Nuclear, missile, chemical or biological weapons or nuclear maritime end uses or end users, whether direct or indirect, are strictly prohibited. Export
or reexport to countries subject to U.S. embargo or to entities identified on U.S. export exclusion lists, including, but not limited to, the denied persons and specially
designated nationals lists is strictly prohibited.
DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO
THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
Copyright 2008 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Tous droits réservés.
Sun Microsystems, Inc. détient les droits de propriété intellectuelle relatifs à la technologie incorporée dans le produit qui est décrit dans ce document. En particulier,
et ce sans limitation, ces droits de propriété intellectuelle peuvent inclure un ou plusieurs brevets américains ou des applications de brevet en attente aux Etats-Unis
et dans d'autres pays.
Cette distribution peut comprendre des composants développés par des tierces personnes.
Certaines composants de ce produit peuvent être dérivées du logiciel Berkeley BSD, licenciés par l'Université de Californie. UNIX est une marque déposée aux
Etats-Unis et dans d'autres pays; elle est licenciée exclusivement par X/Open Company, Ltd.
Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java Coffee Cup, docs.sun.com, Java et Solaris sont des marques de fabrique ou des marques déposées de
Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes les marques SPARC sont utilisées sous licence et sont des marques de fabrique ou des marques
déposées de SPARC International, Inc. aux Etats-Unis et dans d'autres pays. Les produits portant les marques SPARC sont basés sur une architecture développée par
Sun Microsystems, Inc.
L'interface d'utilisation graphique OPEN LOOK et Sun a été développée par Sun Microsystems, Inc. pour ses utilisateurs et licenciés. Sun reconnaît les efforts de
pionniers de Xerox pour la recherche et le développement du concept des interfaces d'utilisation visuelle ou graphique pour l'industrie de l'informatique. Sun détient
une licence non exclusive de Xerox sur l'interface d'utilisation graphique Xerox, cette licence couvrant également les licenciés de Sun qui mettent en place l'interface
d'utilisation graphique OPEN LOOK et qui, en outre, se conforment aux licences écrites de Sun.
Les produits qui font l'objet de cette publication et les informations qu'il contient sont régis par la legislation américaine en matière de contrôle des exportations et
peuvent être soumis au droit d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou utilisateurs finaux, pour des armes nucléaires,
des missiles, des armes chimiques ou biologiques ou pour le nucléaire maritime, directement ou indirectement, sont strictement interdites. Les exportations ou
réexportations vers des pays sous embargo des Etats-Unis, ou vers des entités figurant sur les listes d'exclusion d'exportation américaines, y compris, mais de manière
non exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une façon directe ou indirecte, aux exportations des produits ou des services qui
sont régis par la legislation américaine en matière de contrôle des exportations et la liste de ressortissants spécifiquement designés, sont rigoureusement interdites.
LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS, DECLARATIONS ET GARANTIES EXPRESSES OU TACITES
SONT FORMELLEMENT EXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT TOUTE GARANTIE
IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON.
090131@21808
Contents
Preface ...................................................................................................................................................11
3
Contents
4 Installing Sun Java System Directory Server and Creating Instances for User Data ................ 39
4.1 Installing and Configuring Directory Server 1 and Directory Server 2 .................................. 39
▼ To Download the Directory Server Bits and Required Patches to the Host Machines ........ 40
▼ To Patch the Directory Server Host Machines ......................................................................... 42
▼ To Install Directory Server 1 ....................................................................................................... 43
▼ To Create a User Data Instance on Directory Server 1 ............................................................ 44
▼ To Create a Base Suffix for the User Data Instance on Directory Server 1 ............................ 45
▼ To Install Directory Server 2 ....................................................................................................... 46
▼ To Create a User Data Instance on Directory Server 2 ............................................................ 47
▼ To Create a Base Suffix for the User Data Instance on Directory Server 2 ............................ 48
4.2 Enabling Multi-Master Replication of the User Data Instances .............................................. 49
▼ To Enable Multi-Master Replication for the User Data Instance on Directory Server 1 ..... 50
▼ To Enable Multi-Master Replication for the User Data Instance on Directory Server 2 ..... 51
▼ To Change the Default Replication Manager Password for Each User Data Instance ........ 52
▼ To Create Replication Agreements for Each User Data Instance .......................................... 53
▼ To Initialize the Replication Agreements .................................................................................. 54
▼ To Verify Successful User Data Replication ............................................................................. 56
4.3 Modifying the Directory Server Schema ..................................................................................... 57
▼ To Modify the Directory Server LDAP Schema for SAML v2 User Data .............................. 57
4.4 Enabling Secure Communication for the Directory Server User Data Instances .................. 58
▼ To Import a Root Certificate and a Server Certificate to Directory Server 1 ........................ 58
▼ To Import a Root Certificate and a Server Certificate to Directory Server 2 ........................ 60
4.5 Configuring the Directory Server Load Balancer ...................................................................... 62
▼ To Import the Root Certificate to Directory Server Load Balancer 1 .................................... 62
▼ To Configure the Directory Server Load Balancer 1 ................................................................ 63
4.6 Creating a Test User ...................................................................................................................... 68
▼ To Import Test User Data into the Replicated Directory Server Instances ........................... 68
4 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Contents
5
Contents
7 Installing Sun Java System Directory Server and Creating Instances for User Data ..............125
7.1 Installing and Configuring Directory Server 1 and Directory Server 2 ................................ 125
▼ To Download the Directory Server Bits and Required Patches to the Directory Server Host
Machines ..................................................................................................................................... 126
▼ To Patch the Directory Server Host Machines ....................................................................... 128
▼ To Install Directory Server 1 ..................................................................................................... 129
▼ To Create a User Data Instance on Directory Server 1 .......................................................... 130
▼ To Create a Base Suffix for the User Data Instance on Directory Server 1 .......................... 131
▼ To Install Directory Server 2 ..................................................................................................... 132
▼ To Create a User Data Instance on Directory Server 2 .......................................................... 133
▼ To Create a Base Suffix for the User Data Instance on Directory Server 2 .......................... 134
7.2 Enabling Multi-Master Replication of the User Data Instances ............................................ 135
▼ To Enable Multi-Master Replication for User Data Instance on Directory Server 1 ......... 136
▼ To Enable Multi-Master Replication for User Data Instance on Directory Server 2 ......... 137
▼ To Change the Default Replication Manager Password for Each User Data Instance ...... 138
▼ To Create Replication Agreements for Each User Data Instance ........................................ 139
▼ To Initialize the Replication Agreements ................................................................................ 140
▼ To Verify Successful User Data Replication ........................................................................... 141
7.3 Modifying the Directory Server Schema ................................................................................... 142
▼ To Modify the Directory Server LDAP Schema for SAML v2 User Data ............................ 143
7.4 Enabling Secure Communication for the Directory Server User Data Instances ................ 144
▼ To Install a Root Certificate and a Server Certificate on Directory Server 1 ....................... 144
▼ To Install a Root Certificate and a Server Certificate on Directory Server 2 ....................... 146
7.5 Configuring the Directory Server Load Balancer .................................................................... 147
▼ To Import the Root Certificate to the User Data Load Balancer .......................................... 148
▼ To Configure Directory Server Load Balancer 1 .................................................................... 149
7.6 Creating a Test User .................................................................................................................... 154
▼ To Import Test User Data into the Replicated Directory Server Instances ......................... 154
6 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Contents
▼ To Install Application Server on the OpenSSO Enterprise 1 Host Machine ....................... 159
▼ To Create a Non-Root User on the OpenSSO Enterprise 2 Host Machine ......................... 170
▼ To Install Application Server on the OpenSSO Enterprise 2 Host Machine ....................... 171
8.2 Configuring the OpenSSO Enterprise Load Balancer ............................................................. 182
▼ To Request a Certificate for OpenSSO Enterprise Load Balancer 2 ..................................... 183
▼ To Install a CA Root Certificate to OpenSSO Enterprise Load Balancer 2 ......................... 184
▼ To Install the Server Certificate to OpenSSO Enterprise Load Balancer 2 .......................... 185
▼ To Configure OpenSSO Enterprise Load Balancer 2 ............................................................. 185
▼ To Create an SSL Proxy for SSL Termination at the OpenSSO Enterprise Load Balancer
2 .................................................................................................................................................... 188
8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2 ................ 190
▼ To Generate an OpenSSO Enterprise WAR on the OpenSSO Enterprise 1 Host
Machine ....................................................................................................................................... 190
▼ To Deploy the OpenSSO Enterprise WAR as OpenSSO Enterprise 1 ................................. 192
▼ To Copy the OpenSSO Enterprise WAR to the OpenSSO Enterprise 2 Host Machine .... 194
▼ To Deploy the OpenSSO Enterprise WAR File as OpenSSO Enterprise 2 ......................... 195
▼ To Configure OpenSSO Enterprise 1 ...................................................................................... 196
▼ To Configure OpenSSO Enterprise 2 ...................................................................................... 198
8.4 Configuring the OpenSSO Enterprise Platform Service ......................................................... 199
▼ To Create a Site on OpenSSO Enterprise 1 ............................................................................. 199
▼ To Verify that the OpenSSO Enterprise Site was Configured Properly .............................. 202
8.5 Configuring OpenSSO Enterprise for SAML v2 ...................................................................... 202
▼ To Configure OpenSSO Enterprise for the Modified LDAP Schema .................................. 202
7
Contents
10 Configuring the Service Provider Protected Resource Host Machine ...................................... 213
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1 ................ 213
▼ To Install BEA WebLogic Server on Protected Resource 1 ................................................... 214
▼ To Configure BEA WebLogic Server on Protected Resource 1 ............................................ 215
▼ To Import a Certificate Authority Root Certificate to Protected Resource 1 ...................... 219
▼ To Install the J2EE Policy Agent on Protected Resource 1 .................................................... 220
▼ To Deploy and Start the J2EE Policy Agent Housekeeping Application ............................. 224
▼ To Deploy the J2EE Policy Agent Sample Application .......................................................... 226
▼ To Configure the J2EE Policy Agent to Bypass Application Server Administrator
Authentication ........................................................................................................................... 227
▼ To Enable the J2EE Policy Agent to Run in SSO Only Mode ................................................ 228
▼ To Configure the J2EE Policy Agent for SAML v2 Communication ................................... 229
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1 ....................... 231
▼ To Patch the Protected Resource 1 Host Machine ................................................................. 232
▼ To Install and Configure Sun Java System Web Server on Protected Resource 1 .............. 233
▼ To Import a Certificate Authority Root Certificate to Protected Resource 1 ...................... 237
▼ To Install and Configure Web Policy Agent on Protected Resource 1 ................................ 238
▼ To Enable the Web Policy Agent to Run in SSO Only Mode ................................................ 241
▼ To Configure the Web Policy Agent for SAML v2 Communication ................................... 242
8 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Contents
9
Contents
A Identity Provider Directory Server Host Machines, Load Balancer and Test User ..................313
B Service Provider Directory Server Host Machines, Load Balancer and Test User ....................317
C Identity Provider OpenSSO Enterprise Host Machines and Load Balancers ............................321
D Service Provider OpenSSO Enterprise Host Machines and Load Balancers .............................325
E Service Provider Protected Resource Host Machine Web Containers and Policy Agents ......329
10 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Preface
Sun OpenSSO Enterprise 8.0 provides a comprehensive solution for protecting network
resources that integrates authentication and authorization services, policy agents, and identity
federation. This Preface to the Deployment Example: SAML v2 Using Sun OpenSSO Enterprise
8.0 contains the following sections:
■ “About This Guide” on page 11
■ “Before You Read This Book” on page 11
■ “Related Documentation” on page 12
■ “Searching Sun Product Documentation” on page 14
■ “Typographical Conventions” on page 15
■ “Default Paths and Directory Names” on page 15
Caution – If deviating from the task sequence or details described in this guide, you should refer
to the relevant product documentation for information or necessary requirements.
11
Preface
Related Documentation
Related documentation is available as follows:
■ “OpenSSO Enterprise 8.0 Core Documentation” on page 12
■ “Related Product Documentation” on page 13
12 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Preface
Updates to the Release Notes and links to modifications of the core documentation can be found
on the OpenSSO Enterprise page at docs.sun.com. Updated documents will be marked with a
revision date.
Product Link
13
Preface
search-term site:docs.sun.com
broker site:docs.sun.com
To include other Sun web sites in your search (for example, java.sun.com, www.sun.com, and
developers.sun.com), use sun.com in place of docs.sun.com in the search field.
Note – Sun is not responsible for the availability of third-party web sites mentioned in this
document. Sun does not endorse and is not responsible or liable for any content, advertising,
products, or other materials that are available on or through such sites or resources. Sun will not
be responsible or liable for any actual or alleged damage or loss caused or alleged to be caused by
or in connection with use of or reliance on any such content, goods, or services that are available
on or through such sites or resources.
14 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Preface
Typographical Conventions
The following table describes the typographic conventions that are used in this deployment
example.
AaBbCc123 The names of commands, files, and directories, Edit your .login file.
and onscreen computer output
Use ls -a to list all files.
machine_name% you have mail.
aabbcc123 Placeholder: replace with a real name or value The command to remove a file is rm
filename.
AaBbCc123 Book titles, new terms, and terms to be Read Chapter 6 in the User's Guide.
emphasized
A cache is a copy that is stored
locally.
Do not save the file.
Note: Some emphasized items
appear bold online.
Term Description
15
Preface
OpenSSO-Deploy-base Represents the directory where the web container deploys opensso.war. The
location varies depending on the web container used. To determine the value of
OpenSSO-Deploy-base, view the file in the .openssocfg directory (located in the
home directory of the user who deployed opensso.war). For example, consider
this scenario with Application Server 9.1 as the web container:
■ Application Server 9.1 is installed in the default directory:
/opt/SUNWappserver.
■ The opensso.war file is deployed by super user (root) on Application Server
9.1.
The .openssocfg directory is in the root home directory (/), and the file name in
.openssocfg is
AMConfig_opt_SUNWappserver_domains_domain1_applications_j2ee-modules_opensso_.
Thus, the value for OpenSSO-Deploy-base is:
/opt/SUNWappserver/domains/domain1/applications/j2ee-modules/opensso
ConfigurationDirectory Represents the name of the directory specified during the initial configuration of
OpenSSO Enterprise. The default is opensso in the home directory of the user
running the Configurator. Thus, if the Configurator is run by root,
ConfigurationDirectory is /opensso.
16 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
P A R T I
17
18
1
C H A P T E R 1
Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 provides detailed
instructions for enabling the Security Assertion Markup Language version 2 (SAML v2) in a
federated environment. The book includes procedures for installing, deploying and configuring
a number of host machines and applications. This chapter contains the following introductory
information on the deployment.
■ “1.1 Key Features of Deployment” on page 19
■ “1.2 Deployment Architecture and Components” on page 20
■ “1.3 Sequential Component Interactions” on page 25
19
1.2 Deployment Architecture and Components
20 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
1.2 Deployment Architecture and Components
OpenSSO OpenSSO
Enterprise 1 Enterprise 2
Load Balancer 1
Directory Directory
Server 1 Server 2
Multi-Master Replication
of User Data
The identity provider domain in this deployment is idp-example.com. The identity provider
application represents a legacy system which relies on OpenSSO Enterprise to act as a secure
gateway through which identity information can be transferred to another application in a
different domain. This functionality is provided by the Secure Attribute Exchange feature of
OpenSSO Enterprise which uses SAML v2 without having to deal with federation protocol and
processing.
The following list of components will be installed and configured on the identity provider side
using the procedures documented in Part II.
Sun OpenSSO Enterprise
Two instances of OpenSSO Enterprise provide the core functionality. Each instance is
created with a configuration data store. Configuration data includes information about
services, administrative users, realms, policies, and more. Two instances of Sun Java System
Application Server are installed on the OpenSSO Enterprise host machines into which the
OpenSSO Enterprise WAR is then deployed.
Note – User data is accessed through a single load balancer deployed in front of two instances
of Sun Java System Directory Server.
Note – The command line is used for all Directory Server configurations in this guide.
Load Balancers
The load balancer hardware and software used for this deployment is BIG-IP® manufactured
by F5 Networks. They are deployed as follows:
OpenSSO Enterprise Load Balancer. This load balancer exposes the web-based OpenSSO
Enterprise console to internal administrators. Alternatively, internal administrators can
bypass this load balancer and log in directly.
Directory Server Load Balancer. The load balancer in front of the Directory Server
instances provide round-robin load balancing and a single virtual Directory Server host
name. It detects individual Directory Server failures and recoveries, taking failed servers off
the load balancer list.
22 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
1.2 Deployment Architecture and Components
Internet
Protected Resource 1
Web Container J2EE Container
Service Provider Web Policy Agent 1 J2EE Policy Agent 1 Identity
Application Provider
OpenSSO OpenSSO
Enterprise 1 Enterprise 2
Load Balancer 1
Directory Directory
Server 1 Server 2
Multi-Master Replication
of User Data
The service provider domain in this deployment is sp-example.com. The service provider
application represents a legacy system which relies on OpenSSO Enterprise to act as a secure
gateway through which identity information can be received from the identity provider. This
functionality is provided by the Secure Attribute Exchange feature of OpenSSO Enterprise
which uses SAML v2 without having to deal with federation protocol and processing.
The following list of components will be installed and configured using the procedures
documented in Part III.
Sun OpenSSO Enterprise
Two instances of OpenSSO Enterprise provide the core functionality. Each instance is
created with a configuration data store. Configuration data includes information about
services, administrative users, realms, policies, and more. Two instances of Sun Java System
Application Server are installed on the OpenSSO Enterprise host machines into which the
OpenSSO Enterprise WAR is then deployed.
Note – User data is accessed through a single load balancer deployed in front of two instances
of Sun Java System Directory Server.
Note – The command line is used for all Directory Server configurations in this guide.
Load Balancers
The load balancer hardware and software used for this deployment is BIG-IP® manufactured
by F5 Networks. They are deployed as follows:
OpenSSO Enterprise Load Balancer. This load balancer exposes the web-based OpenSSO
Enterprise console to internal administrators. Alternatively, internal administrators can
bypass this load balancer and log in directly.
Directory Server Load Balancer. The load balancer in front of the Directory Server
instances provides round-robin load balancing and a single virtual Directory Server host
name. It detects individual Directory Server failures and recoveries, taking failed servers off
the load balancer list.
Sun OpenSSO Enterprise Policy Agents
Policy agents are used to restrict access to hosted content or applications. The policy agents
intercept HTTP requests from external users and redirect the request to OpenSSO
Enterprise for authentication. Web policy agents protect any resources under the doc root of
the web container. J2EE policy agents protect a variety of hosted J2EE applications; in this
deployment, agentsample is used. The agents communicate with the OpenSSO Enterprise
instances through the configured load balancer.
Protected Resource Host Machine
The protected resource host machine contains the content to which access is restricted.
Towards this end, BEA WebLogic Server, Sun Java System Web Server, and the respective
J2EE and web policy agents will be installed. A sample Java Server Page included with
OpenSSO Enterprise will be used to emulate a legacy application for purposes of
demonstrating Secure Attribute Exchange using SAML v2. The protected resource host
machine will be used in Chapter 14, “Testing Attribute Mapping”
24 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
1.3 Sequential Component Interactions
Agent-Protected
Browser Service Provider Identity Provider
Application
Identity Provider:
1. Generates name identifier
2. Invokes IDP Attribute Mapper
3. Generates SAMLv2 Assertion
POSTs SAMLv2 <Assertion> to Service Provider Assertion Consumer Service
Service Provider:
1. Verifies response
2. Generates SSOToken
3. Invokes SP Attribute Mapper
4. Sets Attributes on SSOToken
Service Provider redirects to the protected URL
The following image describes the interactions between the various components during the
single logout use case. See Chapter 12, “Testing the SAML v2 Profiles.”
Agent-Protected
Browser Service Provider Identity Provider
Application
spSingleLogoutinit.jsp
Service Provider:
Invokes logout request
Identity Provider:
Processes logout
request
Success or Failure
Return logout URL to Service Provider
Service Provider:
Verifies status
Finish logout
26 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
2
C H A P T E R
Technical Overview
2
This chapter contains technical information regarding the machines, software, and other
components used in this deployment example. It contains the following sections:
■ “2.1 Host Machines” on page 27
■ “2.2 Software” on page 28
■ “2.3 Main Service URLs” on page 28
■ “2.4 Viewing Replicated Entries” on page 32
27
2.2 Software
2.2 Software
The following table lists the software used in this deployment example.
28 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
2.3 Main Service URLs
TABLE 2–3 Identity Provider Components and Main Service URLs (Continued)
Components Main Service URL
30 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
2.3 Main Service URLs
TABLE 2–4 Service Provider Components and Main Service URLs (Continued)
Components Main Service URL
TABLE 2–4 Service Provider Components and Main Service URLs (Continued)
Components Main Service URL
32 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
3
C H A P T E R
This chapter contains information you need to know before beginning the documented
installation and configuration procedures. It contains the following sections:
■ “3.1 Technical Reference” on page 33
■ “3.2 Setting Up the Load Balancers” on page 33
■ “3.3 Obtaining Secure Socket Layer Certificates” on page 34
■ “3.4 Resolving Host Names” on page 34
■ “3.5 Known Issues and Limitations” on page 35
The following service provider sections require load-balancing hardware and software.
■ “7.5 Configuring the Directory Server Load Balancer” on page 147
■ “8.2 Configuring the OpenSSO Enterprise Load Balancer” on page 182
33
3.3 Obtaining Secure Socket Layer Certificates
The server certificates are requested from, and issued by, OpenSSL within each procedure. You
should know how to request server certificates from your CA of choice before beginning this
deployment. The following identity provider sections are related to requesting, installing, and
importing root and server certificates.
■ “To Import a Root Certificate and a Server Certificate to Directory Server 1” on page 58
■ “To Import a Root Certificate and a Server Certificate to Directory Server 2” on page 60
■ “To Import the Root Certificate to Directory Server Load Balancer 1” on page 62
■ “To Request a Certificate for OpenSSO Enterprise Load Balancer 2” on page 94
■ “To Install the Certificate Authority Root Certificate to OpenSSO Enterprise Load Balancer
2” on page 95
■ “To Install the Server Certificate to OpenSSO Enterprise Load Balancer 2” on page 95
■ “To Install a Root Certificate and a Server Certificate on Directory Server 1” on page 144
The following service provider sections are related to requesting, installing, and importing root
and server certificates.
■ “To Install a Root Certificate and a Server Certificate on Directory Server 1” on page 144
■ “To Install a Root Certificate and a Server Certificate on Directory Server 2” on page 146
■ “To Import the Root Certificate to the User Data Load Balancer” on page 148
■ “To Request a Certificate for OpenSSO Enterprise Load Balancer 2” on page 183
■ “To Install a CA Root Certificate to OpenSSO Enterprise Load Balancer 2” on page 184
■ “To Install the Server Certificate to OpenSSO Enterprise Load Balancer 2” on page 185
■ “To Import a Certificate Authority Root Certificate to Protected Resource 1” on page 219
■ “To Import a Certificate Authority Root Certificate to Protected Resource 1” on page 237
34 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
3.5 Known Issues and Limitations
Although the instructions and procedures documented in this book incorporate many best
practices, and may be suitable in many different scenarios, this is not the only way to achieve the
same results. If you plan to deviate from the task sequence or details described, you should refer
to the relevant product documentation for information on differences in platforms, software
versions or other requirement constraints.
Caution – If deviating from the task sequence or details described, refer to the relevant
product documentation for information or necessary requirements.
37
38
4
C H A P T E R 4
This chapter contains instructions for installing Sun JavaTM System Directory Server and
creating the instances in which user data will be stored. Additionally, the procedure for enabling
multi-master replication between the two instances and the procedure for configuring the user
data load balancer are included. This chapter contains the following sections:
■ “4.1 Installing and Configuring Directory Server 1 and Directory Server 2” on page 39
■ “4.2 Enabling Multi-Master Replication of the User Data Instances” on page 49
■ “4.3 Modifying the Directory Server Schema” on page 57
■ “4.4 Enabling Secure Communication for the Directory Server User Data Instances” on
page 58
■ “4.5 Configuring the Directory Server Load Balancer” on page 62
Note – If you have an existing user data store, you can go directly to the instructions in
Chapter 5, “Deploying and Configuring OpenSSO Enterprise.”
39
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
2 Provide the following information in the Select product configuration section and click View
Downloads.
Step 1: Select Component Directory Server Enterprise Edition 6.x
Step 2: Select Version 6.3
Step 3: Select Delivery Type Compress Archive (ZIP)
Step 4: Select Platform Choose the platform you are using.
The Selection Results page will be displayed with links to the download sites for the Directory
Server bits and required patches.
Note – The patch numbers generated for download on the Selection Results page are based on
your input. Check the most recent Directory Server Enterprise Edition 6.3 Release Notes to
determine if you need to install other patches based on your machine's architecture and
operating system. In this deployment, the Release Notes indicate that based on the hardware
and operating system being used, patch 118855, patch 127112, patch 119964, patch 125379, and
patch 119255 are required.
40 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
No results are returned which indicates that the patch is not yet installed on the system.
Note – If these patches are already installed on your machine, proceed to step 7.
5 Make a directory for the patch downloads and change into it.
# mkdir /export/patches
# cd /export/patches
Note – Signed patches are downloaded as JAR files. Unsigned patches are downloaded as ZIP
files. In this step, ZIP files are downloaded.
7 Make a directory for the Directory Server download and change into it.
# mkdir /export/DS63
# cd /export/DS63
8 Download the Base Full Install of Directory Server EE 6.3 — Zip Distribution, Multi-Language,
(DS/DPS/DE/ISW/DSRK) bits.
Note – No Directory Server Administration Console is installed with these bits. This deployment
example uses the command line to configure the software.
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 41
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
2 Change into the directory that contains the downloaded patch files.
# cd /export/patches
Tip – You can use the -M option to install all patches at once. See the patchadd man page for
more information.
6 After installation is complete, verify that each patch was added successfully.
# /usr/sbin/patchadd -p | grep 118855
A series of patch numbers are displayed, and the patch 118855 is present.
42 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
A series of patch numbers are displayed, and the patch 125379 is present.
# setenv LD_LIBRARY_PATH
■ The JAVA_HOME environment variable should be set appropriately for your system
architecture as in the following example:
DSEE.6.1.Solaris10-X86_AMD64-full.tar.gz
# gunzip DSEE.6.3.Solaris10-X86_AMD64-full.tar.gz
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 43
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
6 When Do you accept the license terms? is displayed, enter yes to continue.
Once you accept the license terms, the Directory Server binaries will be installed in the
/var/opt/mps/serverroot/ds6 directory.
Before You Begin This procedure assumes you have just completed “To Install Directory Server 1” on page 43 and
are still logged into the ds1.idp-example.com host machine as a root user.
4 Run netstat to verify that the new instance is up and running on both ports.
# netstat -an | grep 1736
44 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
5 Run ldapsearch to verify that you can read the root Directory Server entry of the new instance.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds1.idp-example.com
-p 1489 -b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass: top
...
supportedLDAPVersion: 3
vendorname: Sun Microsystems, Inc.
vendorVersion: Sun-Java(tm)-System-Directory/6.3
...
Before You Begin This procedure assumes you have just completed “To Create a User Data Instance on Directory
Server 1” on page 44 and are still logged into the ds1.idp-example.com host machine as a root
user.
Type "Y" to accept, "y" to accept just once, "n" to refuse, "d" for more details: Y
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 45
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
Tip – When you enter an uppercase Y, you are not asked for the certificate again in the next steps.
3 Run dsconf list-suffixes to verify that the base suffix was successfully created.
# ./dsconf list-suffixes -p 1489
dc=company,dc=com
If the base suffix was successfully created, dc=company,dc=com is returned. You can also see
idp-users in a command line list of directory instances.
# cd /var/opt/mps
# ls
idp-users serverroot
# setenv LD_LIBRARY_PATH
■ The JAVA_HOME environment variable should be set appropriately for your system
architecture as in the following example:
46 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
DSEE.6.3.Solaris10-X86_AMD64-full.tar.gz
# gunzip DSEE.6.3.Solaris10-X86_AMD64-full.tar.gz
6 When Do you accept the license terms? is displayed, enter yes to continue.
Once you accept the license terms, the Directory Server binaries will be installed in the
/var/opt/mps/serverroot/ds6 directory.
Before You Begin This procedure assumes you have just completed “To Install Directory Server 2” on page 46 and
are still logged into the ds2.idp-example.com host machine as a root user.
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 47
4.1 Installing and Configuring Directory Server 1 and Directory Server 2
4 Run netstat to verify that the new instance is up and running on both ports.
# netstat -an | grep 1736
5 Run ldapsearch to verify that you can read the root Directory Server entry of the new instance.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.idp-example.com
-p 1489 -b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass: top
...
supportedLDAPVersion: 3
vendorname: Sun Microsystems, Inc.
vendorVersion: Sun-Java(tm)-System-Directory/6.3
...
Before You Begin This procedure assumes you have just completed “To Create a User Data Instance on Directory
Server 2” on page 47 and are still logged into the ds2.idp-example.com host machine as a root
user.
48 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.2 Enabling Multi-Master Replication of the User Data Instances
Type "Y" to accept, "y" to accept just once, "n" to refuse, "d" for more details: Y
Tip – When you enter an uppercase Y, you are not asked for the certificate again in the next steps.
3 Run dsconf list-suffixes to verify that the base suffix was successfully created.
# ./dsconf list-suffixes -p 1489
dc=company,dc=com
If the base suffix was successfully created, dc=company,dc=com is returned. You can also see
idp-users in a command line list of directory instances.
# cd /var/opt/mps
# ls
idp-users serverroot
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 49
4.2 Enabling Multi-Master Replication of the User Data Instances
3. “To Change the Default Replication Manager Password for Each User Data Instance” on
page 138
4. “To Create Replication Agreements for Each User Data Instance” on page 139
5. “To Initialize the Replication Agreements” on page 140
6. “To Verify Successful User Data Replication” on page 141
2 (Optional) Run dsconf list-suffixes to verify that the user data instance is not already
enabled for replication.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf list-suffixes -p 1489 -v
4 Run dsconf list-suffixes again to verify that the instance is now enabled for replication.
# ./dsconf list-suffixes -p 1489 -v
50 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.2 Enabling Multi-Master Replication of the User Data Instances
2 (Optional) Run dsconf list-suffixes to verify that the user data instance is not already
enabled for replication.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf list-suffixes -p 1489 -v
4 Run dsconf list-suffixes again to verify that the instance is now enabled for replication.
# ./dsconf list-suffixes -p 1489 -v
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 51
4.2 Enabling Multi-Master Replication of the User Data Instances
2 Create a temporary file that contains the new replication manager password.
This file will be read once, and the password stored for future use.
# cd /var/opt/mps/serverroot/ds6/bin
# echo replmanager > pwd.txt
replmanager
4 Run dsconf set-server-prop to set the replication manager password using pwd.txt as input.
# ./dsconf set-server-prop -h ds1.idp-example.com
-p 1489 def-repl-manager-pwd-file:pwd.txt
52 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.2 Enabling Multi-Master Replication of the User Data Instances
8 Create a temporary file that contains the new replication manager password.
This file will be read once, and the password stored for future use.
# cd /var/opt/mps/serverroot/ds6/bin
# echo replmanager > pwd.txt
replmanager
10 Run dsconf set-server-prop to set the replication manager password using pwd.txt as input.
# ./dsconf set-server-prop -h ds2.idp-example.com
-p 1489 def-repl-manager-pwd-file:pwd.txt
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 53
4.2 Enabling Multi-Master Replication of the User Data Instances
3 Run dsconf list-repl-agmts to verify that the replication agreement was successfully
created.
# ./dsconf list-repl-agmts -p 1489
dc=company,dc=com ds2.idp-example.com:1489
This response indicates that the Directory Server 1 base suffix will be replicated to Directory
Server 2.
7 Run dsconf list-repl-agmts to verify that the replication agreement was successfully
created.
# ./dsconf list-repl-agmts -p 1489
dc=company,dc=com ds1.idp-example.com:1489
This response indicates that the Directory Server 2 base suffix will be replicated to Directory
Server 1.
54 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.2 Enabling Multi-Master Replication of the User Data Instances
Note – Initialization is not required on both instances when configuring for MMR.
2 Run dsconf show-repl-agmt-status to verify that the replication agreements are not yet
initialized.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf show-repl-agmt-status -h ds1.idp-example.com
-p 1489 dc=company,dc=com ds2.idp-example.com:1489
Configuration Status : OK
Authentication Status : OK
Initialization Status : NOT OK
4 Run dsconf show-repl-agmt-status again to verify that the replication agreements are now
initialized.
# ./dsconf show-repl-agmt-status -h ds1.idp-example.com
-p 1489 dc=company,dc=com ds2.idp-example.com:1489
Configuration Status : OK
Authentication Status : OK
Initialization Status : OK
Status: : Enabled
Last Update Date : Aug 25, 2008 3:10:08 PM
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 55
4.2 Enabling Multi-Master Replication of the User Data Instances
1 Run ldapmodify on the ds1.idp-example.com host machine to create a new directory entry.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapmodify -a -h ds1.idp-example.com -p 1489
-D cn=admin,cn=Administrators,cn=config -w dsmanager
dn: ou=People,dc=company,dc=com
objectclass: top
objectclass: organizationalUnit
ou: People
description: Container for user entries
^C
This step creates a new organizational unit on Directory Server 1.
2 After the entry is created, log in to the ds2.idp-example.com host machine as a root user.
3 Run ldapsearch on Directory Server 2 to verify that the directory entry was successfully
replicated.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -b "dc=company,dc=com" -p 1489
-D "cn=Directory Manager" -w dsmanager
"objectclass=organizationalUnit"
version: 1
dn: ou=People,dc=company,dc=com
objectClass: top
objectClass: organizationalUnit
ou: People
description Container for user entries
56 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.3 Modifying the Directory Server Schema
5 Run ldapsearch on Directory Server 1 to verify that the entry was deleted.
# ./ldapsearch -b "dc=company,dc=com"
-p 1489 -D "cn=Directory Manager" -w dsmanager
"objectclass=organizationalUnit"
The search will return no results as the delete was successfully replicated.
2 Create an LDIF file with the following information and save it as /tmp/saml.ldif.
This file includes SAML v2 LDAP attributes.
dn: CN=schema
changetype:modify
add:attributeTypes
attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.500
NAME ’sun-fm-saml2-nameid-infokey’
DESC ’SAML 2.0 Name Identifier Information Key’
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN
’Sun Java System Access Management’ )
attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.501
NAME ’sun-fm-saml2-nameid-info’
DESC ’SAML 2.0 Name Identifier Information’
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN
’Sun Java System Access Management’ )
-
add:objectClasses
objectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.200
NAME ’sunFMSAML2NameIdentifier’
DESC ’SAML 2.0 name identifier objectclass’
SUP top AUXILIARY MAY
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 57
4.4 Enabling Secure Communication for the Directory Server User Data Instances
( sun-fm-saml2-nameid-infokey $ sun-fm-saml2-nameid-info )
X-ORIGIN ’Sun Java System Access Management’ )
58 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.4 Enabling Secure Communication for the Directory Server User Data Instances
CA-cert
2007/09/20 11:41 2010/06/17 11:41 n
[email protected],CN=openssltestca,OU=am,
O=sun,L=santa clara,ST=california,C=us Same as issuer
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 59
4.4 Enabling Secure Communication for the Directory Server User Data Instances
10 Run ldapsearch on Directory Server 1 to verify that the directory entries can be accessed
through the secure port.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds1.idp-example.com -p 1736
-Z -P /var/opt/mps/idp-users/alias/slapd-cert8.db
-b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass:top
namingContexts: dc=company,dc=com
supportedExtension: 2.16.840.1.113730.3.5.7
:
supportedSSLCiphers: SSL-CK_RC4_128_EXPORT40_WITH_MD5
supportedSSLCiphers: SSL-CK_RC2_128_CBC_EXPORT40_WITH_MD5
This confirms that the Directory Server instance can be accessed through the secure port.
60 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.4 Enabling Secure Communication for the Directory Server User Data Instances
CA-cert
2007/09/20 11:41 2010/06/17 11:41 n
[email protected],CN=openssltestca,OU=am,
O=sun,L=santa clara,ST=california,C=us Same as issuer
10 Run ldapsearch on Directory Server 2 to verify that the directory entries can be accessed
through the secure port.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.idp-example.com -p 1736
-Z -P /var/opt/mps/idp-users/alias/slapd-cert8.db
-b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass:top
namingContexts: dc=company,dc=com
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 61
4.5 Configuring the Directory Server Load Balancer
supportedExtension: 2.16.840.1.113730.3.5.7
:
supportedSSLCiphers: SSL-CK_RC4_128_EXPORT40_WITH_MD5
supportedSSLCiphers: SSL-CK_RC2_128_CBC_EXPORT40_WITH_MD5
This confirms that the Directory Server instance can be accessed through the secure port.
# ifconfig -a
Use the following list of procedures as a checklist for completing the task.
1. “To Import the Root Certificate to Directory Server Load Balancer 1” on page 62
2. “To Configure the Directory Server Load Balancer 1” on page 63
Before You Begin Use the same root certificate that you imported in “4.4 Enabling Secure Communication for the
Directory Server User Data Instances” on page 58. For more information, see “3.3 Obtaining
Secure Socket Layer Certificates” on page 34.
62 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.5 Configuring the Directory Server Load Balancer
1 Access https://lb1.idp-example.com, the BIG-IP load balancer login page, in a web browser.
3 Click Proxies.
5 Click Import.
7 Click Browse in the Certificate File field on the Install SSL Certificate page.
2 Create a Pool.
A pool contains all the backend server instances.
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 63
4.5 Configuring the Directory Server Load Balancer
d. Click Done.
Tip – If you encounter JavaScriptTM errors or otherwise cannot proceed to create a virtual server,
try using Internet Explorer.
c. In the Add a Virtual Server dialog box, provide the following information:
Address Enter the IP address for lb1.idp-example.com.
Service 489
d. Continue to click Next until you reach the Pool Selection dialog box.
f. Click Done.
4 Add Monitors
Monitors are required for the load balancer to detect the backend server failures.
64 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.5 Configuring the Directory Server Load Balancer
e. At the top of the Node column, in the drop-down list, choose tcp.
f. Click Apply.
f. Click Apply.
6 Verify the load balancer configuration with the following sub procedure.
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 65
4.5 Configuring the Directory Server Load Balancer
b. On each host machine, use the tail command to monitor the Directory Server access log.
# cd /var/opt/mps/idp-users/logs
# tail -f access
You should see connections to the load balancer IP address opening and closing. For
example:
c. Execute the following LDAP search against the Directory Server load balancer from
Directory Server 1.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h lb1.idp-example.com -p 489 -Z
-P /var/opt/mps/idp-users/alias/slapd-cert8.db
-b "dc=company,dc=com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: dc=company,dc=com
dc: company
objectClass: top
objectClass: domain
Make sure the returned entries display in the access log on only one Directory Server host
machine.
e. Perform the (same) LDAP search against the Directory Server load balancer from Directory
Server 2.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h lb1.idp-example.com -p 489 -Z
-P /var/opt/mps/idp-users/alias/slapd-cert8.db
-b "dc=company,dc=com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: dc=company,dc=com
66 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.5 Configuring the Directory Server Load Balancer
dc: company
objectClass: top
objectClass: domain
Make sure that the returned entries display in the access log on only Directory Server 2.
This means that the load balancer may not fully detect that Directory Server 1 is stopped. In
this case, you may have started the search too soon based on the polling interval setting. For
example, if the polling interval is set to 10 seconds, you should wait ten seconds to start the
search. You can reset the timeout properties to a lower value using the load balancer
console.
a. Click the Monitors tab.
b. Click the tcp monitor name.
c. In the Interval field, set the value to 5.
This tells the load balancer to poll the server every 5 seconds.
d. In the Timeout field, set the value to 16.
e. Click Apply and repeat the LDAP search.
See your load balancer documentation for more information on the timeout property.
h. Perform the following LDAP search against the Directory Server load balancer from
Directory Server 1.
# cd /var/opt/mps/serverroot/dsrk6/bin
./ldapsearch -h lb1.idp-example.com -p 489 -Z
-P /var/opt/mps/idp-users/alias/slapd-cert8.db
-b "dc=company,dc=com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: dc=company,dc=com
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 67
4.6 Creating a Test User
dc: company
objectClass: top
objectClass: domain
Make sure the returned entries display in the access log on only Directory Server 1.
j. Log out of both Directory Server host machines and the load balancer console.
Note – If you are using an existing user data store, create the appropriate users in it and move on
to Chapter 6, “Configuring OpenSSO Enterprise Realms for User Authentication.”
dn: ou=Groups,dc=company,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Groups
description: Container for group entries
dn: uid=idpuser,ou=users,dc=company,dc=com
uid: idpuser
68 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
4.6 Creating a Test User
givenName: idp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: inetUser
sn: user
cn: idp user
userPassword: idpuser
inetUserStatus: Active
version: 1
dn: uid=idpuser,ou=users,dc=company,dc=com
uid: idpuser
givenName: idp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: inetUser
sn: user
cn: idp user
userPassword:
{SSHA}H5LpB+QLZMoL9SiXzY/DokHKXRclELVy7w25AA==
inetUserStatus: Active
Chapter 4 • Installing Sun Java System Directory Server and Creating Instances for User Data 69
4.6 Creating a Test User
7 (Optional) Verify that the entries were replicated to Directory Server 2 by logging in as a root
user to the ds2.idp-example.com host machine and using ldapsearch.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.idp-example.com
-b "dc=company,dc=com" -p 1489 -D "cn=Directory Manager"
-w dsmanager ""
version: 1
dn: dc=company,dc=com
objectClass: top
objectClass: domain
dc: company
dn: ou=users,dc=company,dc=com
objectClass: top
objectClass: organizationalUnit
ou: users
description: Container for user entries
dn: ou=Groups,dc=company,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Groups
description: Container for group entries
dn: uid=idpuser,ou=users,dc=company,dc=com
uid: idpuser
givenName: idp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: inetUser
sn: user
cn: idp user
userPassword:
{SSHA}H5LpB+QLZMoL9SiXzY/DokHKXRclELVy7w25AA==
inetUserStatus: Active
70 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5
C H A P T E R 5
This chapter includes instructions on how to deploy and configure two instances of Sun
OpenSSO Enterprise 8.0. It begins with the installation of Sun JavaTM System Application Server
onto each host machine, followed by the deployment and configuration of the OpenSSO
Enterprise WAR. This chapter contains the following sections:
■ “5.1 Installing the Application Server Web Containers” on page 71
■ “5.2 Configuring the OpenSSO Enterprise Load Balancer” on page 92
■ “5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2” on
page 100
■ “5.4 Configuring the OpenSSO Enterprise Platform Service” on page 110
■ “5.5 Configuring OpenSSO Enterprise for SAML v2” on page 113
71
5.1 Installing the Application Server Web Containers
Note – We use roleadd rather than useradd for security reasons; roleadd disables the ability of
the user to log in.
72 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
root:x:0:0:Super-User:/:/sbin/sh
daemon:x:1:1::/:
...
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
osso80adm:x:223830:10::/export/osso80adm:/sbin/sh
Caution – If you do not perform this step, you will not be able to switch user (su) when logged in
as the non-root user.
1 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
2 Download the Sun Java System Application Server 9.1 Update 1 binary from the Sun
Microsystems Product Download page to the /export/AS91 directory.
3 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_01-solaris-sparc.bin
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
74 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Applicatin Server version [no]
{"<" goes back, "!" exits}?
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
domain2pwd
domain2pwd
domain2master
domain2master
76 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
7 Verify that the non-root user domain was created with the correct permissions using the
following sub-procedure.
total 30
drwxr-xr-x 15 osso80adm staff 512 Mar 20 14:12 .
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 ..
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 addons
drwxr-xr-x 6 osso80adm staff 512 Mar 20 14:12 applications
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 autodeploy
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 bin
drwx------ 3 osso80adm staff 1024 Mar 26 13:27 config
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 docroot
drwxr-xr-x 6 osso80adm staff 512 Mar 26 13:34 generated
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 imq
8 Start ossodomain, the non-root user domain, using the following sub-procedure.
c. Start ossodomain.
# ./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
78 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
a. Generate a private/public key pair and reference it with the alias, opensso-idp-1.
opensso-idp-1 will be used in a later step to retrieve the public key which is contained in a
self-signed certificate.
# cd /export/osso80adm/domains/ossodomain/config
# keytool -genkey -noprompt -keyalg rsa -keypass domain2master
-alias opensso-idp-1 -keystore keystore.jks -dname
"CN=osso1.idp-example.com, OU=OpenSSO, O=Sun Microsystems,
L=Santa Clara, ST=California, C=US" -storepass domain2master
b. Verify that the key pair was successfully created and stored in the certificate store.
# keytool -list -v -keystore keystore.jks -storepass domain2master
Note – The output of this command may list more than one certificate based on the entries in
the keystore.
80 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
g. Replace the self-signed public key certificate (associated with the s1as alias) with the server
certificate received from the CA.
# keytool -import -file opensso-idp-1.cer -alias opensso-idp-1
-keystore keystore.jks -storepass domain2master
h. (Optional) Verify that the self-signed public key certificate has been overwritten by the
server certificate received from the CA.
# keytool -list -v -keystore keystore.jks
-storepass domain2master
i. Change the certificate alias from the default s1as to the new opensso-idp-1 in the
domain.xml file for the ossodomain domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="opensso-idp-1" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
11 Modify the JVM options in your web container's configuration file using the following
sub-procedure.
OpenSSO Enterprise is deployed with an embedded configuration data store (if desired). In
order for the configuration data store to be created successfully, the following JVM options
should be modified in the web container's configuration file. We will be modifying domain.xml
again for this example.
./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
13 Verify that the certificate used for SSL communication is the root CA certificate.
b. View the details of the certificate in the security warning to ensure that it is Issued by
“OpenSSLTestCA”.
After inspecting and accepting the certificate, you should see the default index.html page.
82 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
root:x:0:0:Super-User:/:/sbin/sh
daemon:x:1:1::/:
...
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
osso80adm:x:223830:10::/export/osso80adm:/sbin/sh
Caution – If you do not perform this step, you will not be able to switch user (su) when logged in
as the non-root user.
1 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
2 Download the Sun Java System Application Server 9.1 Update 1 binary from the Sun
Microsystems Product Download page to the /export/AS91 directory.
3 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_01-solaris-sparc.bin
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
84 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Applicatin Server version [no]
{"<" goes back, "!" exits}?
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
domain2pwd
domain2pwd
domain2master
domain2master
86 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
Note – The FileNotFoundException is a known issue. Please see Appendix G, “Known Issues
and Limitations.”
7 Verify that the non-root user domain was created with the correct permissions using the
following sub-procedure.
total 30
drwxr-xr-x 15 osso80adm staff 512 Mar 20 14:12 .
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 ..
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 addons
drwxr-xr-x 6 osso80adm staff 512 Mar 20 14:12 applications
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 autodeploy
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 bin
drwx------ 3 osso80adm staff 1024 Mar 26 13:27 config
drwxr-xr-x 2 osso80adm staff 512 Mar 20 14:12 docroot
drwxr-xr-x 6 osso80adm staff 512 Mar 26 13:34 generated
drwxr-xr-x 3 osso80adm staff 512 Mar 20 14:12 imq
8 Start ossodomain, the non-root user domain, using the following sub-procedure.
c. Start ossodomain.
# ./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
88 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
a. Generate a private/public key pair and reference it with the alias, opensso-idp-2.
opensso-idp-2 will be used in a later step to retrieve the public key which is contained in a
self-signed certificate.
# cd /export/osso80adm/domains/ossodomain/config
# keytool -genkey -noprompt -keyalg rsa -keypass domain2master
-alias opensso-idp-2 -keystore keystore.jks -dname "CN=osso2.idp-example.com,
OU=OpenSSO, O=Sun Microsystems, L=Santa Clara, ST=California, C=US"
-storepass domain2master
b. Verify that the key pair was successfully created and stored in the certificate store.
# keytool -list -v -keystore keystore.jks -storepass domain2master
Note – The output of this command may list more than one certificate based on the entries in
the keystore.
90 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.1 Installing the Application Server Web Containers
g. Replace the self-signed public key certificate (associated with the s1as alias) with the server
certificate received from the CA.
# keytool -import -file opensso-idp-2.cer -alias opensso-idp-2
-keystore keystore.jks -storepass domain2master
h. (Optional) Verify that the self-signed public key certificate has been overwritten by the
server certificate received from the CA.
# keytool -list -v -keystore keystore.jks
-storepass domain2master
i. Change the certificate alias from the default s1as to the new opensso-idp-2 in the
domain.xml file for the ossodomain domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="opensso-idp-2" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
11 Modify the JVM options in your web container's configuration file using the following
sub-procedure.
OpenSSO Enterprise is deployed with an embedded configuration data store (if desired). In
order for the configuration data store to be created successfully, the following JVM options
should be modified in the web container's configuration file. We will be modifying domain.xml
again for this example.
./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
13 Verify that the certificate used for SSL communication is the root CA certificate.
b. View the details of the certificate in the security warning to ensure that it is Issued by
“OpenSSLTestCA”.
After inspecting and accepting the certificate, you should see the default index.html page.
92 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.2 Configuring the OpenSSO Enterprise Load Balancer
Cookie-based The load balancer makes decisions based on client's cookies. The load balancer looks at
the request and detects the presence of a cookie by a specific name. If the cookie is
detected in the request, the load balancer routes the request to the specific server to
which the cookie has been assigned. If the cookie is not detected in the request, the load
balancer balances client requests among the available servers.
IP-based This is similar to cookie-based load balancing, but the decision is based on the IP
address of the client. The load balancer sends all requests from a specific IP address to
the same server.
TCP The load balancer mainstreams session affinity. This means that all requests related to a
TCP session, are forwarded to the same server. In this deployment example, Load
Balancer 2 forwards all requests from a single client to exactly the same server. When
the session is started and maintained by one client, session affinity is guaranteed. This
type of load-balancing is applicable to the TCP-based protocols.
This section assumes that you have already installed a load balancer. Before you begin, note the
following:
■ The load balancer hardware and software used in the lab facility for this deployment is
BIG-IP® manufactured by F5 Networks. If you are using different load balancer software, see
the documentation that comes with that product for detailed settings information.
■ Contact your network administrator to obtain an available virtual IP address for the load
balancer you want to configure.
■ Know the IP address of the load balancer hardware, the URL for the load balancer login
page, and a username and password for logging in to the load balancer application.
■ Get the IP addresses for OpenSSO Enterprise 1 and OpenSSO Enterprise 2 by running the
following command on each host machine:
# ifconfig -a
Use the following list of procedures as a checklist for completing the task.
1. “To Request a Certificate for OpenSSO Enterprise Load Balancer 2” on page 94
2. “To Install the Certificate Authority Root Certificate to OpenSSO Enterprise Load Balancer
2” on page 95
3. “To Install the Server Certificate to OpenSSO Enterprise Load Balancer 2” on page 95
4. “To Configure OpenSSO Enterprise Load Balancer 2” on page 96
5. “To Create an SSL Proxy for SSL Termination at the OpenSSO Enterprise Load Balancer 2”
on page 99
1 Access https://is-f5.example.com, the BIG-IP load balancer login page, in a web browser.
6 On the SSL Certificate Administration page, click Generate New Key Pair/Certificate Request.
9 Save the text contained in the Certificate Request field to a file named lb-2.csr.
94 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.2 Configuring the OpenSSO Enterprise Load Balancer
1 Access https://is-f5.example.com, the BIG-IP load balancer login page, in a web browser.
5 Click Import.
7 Click Browse in the Certificate File field on the Install SSL Certificate page.
5 In the Choose File dialog, navigate to lb-2.cer, the server certificate, and click Open.
4 Create a Pool.
A pool contains all the backend server instances.
96 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.2 Configuring the OpenSSO Enterprise Load Balancer
d. Click Done.
Note – If you encounter JavaScriptTM errors or otherwise cannot proceed to create a virtual
server, try using Internet Explorer.
c. In the Add a Virtual Server dialog box, provide the following information:
Address Enter the IP address for lb2.idp-example.com
Service 1082
d. Continue to click Next until you reach the Pool Selection dialog box.
f. Click Done.
6 Add Monitors.
OpenSSO Enterprise comes with a JSP file named isAlive.jsp that can be contacted to
determine if the server is down. Since we have not yet deployed OpenSSO Enterprise,
isAlive.jsp cannot be used. In the following sub procedure, create a custom monitor that
periodically accesses the Application server instance(s). If desired, the monitor can be changed
later to use isAlive.jsp.
f. Click Apply.
b. Click the name of the pool you want to configure; in this case, OpenSSO-IDP-Pool.
f. Click Apply.
98 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.2 Configuring the OpenSSO Enterprise Load Balancer
Before You Begin You should have a root certificate issued by a recognized CA.
1 Access https://is-f5.example.com, the BIG-IP load balancer login page, in a web browser.
7 Click Next.
8 On the page starting with“Insert HTTP Header String,”change to Rewrite Redirects and choose
Matching.
9 Click Next.
10 On the page starting with“Client Cipher List String”, accept the defaults.
11 Click Next.
12 On the page starting with“Server Chain File,”change to Server Trusted CA's File, select
“OpenSSL_CA_Cert.crt”from the drop-down list.
13 Click Done.
The new proxy server is added to the Proxy Server list.
Tip – A message may be displayed indicating that the browser doesn't recognize the certificate
issuer. If this happens, install the CA root certificate in the browser so that the browser
recognizes the certificate issuer. See your browser's online help system for information on
installing a root CA certificate.
100 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
3. “To Copy the OpenSSO Enterprise WAR to the OpenSSO Enterprise 2 Host Machine” on
page 104
4. “To Deploy the OpenSSO Enterprise WAR File as OpenSSO Enterprise 2” on page 105
5. “To Configure OpenSSO Enterprise 1” on page 106
6. “To Configure OpenSSO Enterprise 2” on page 108
2 Create a directory into which the OpenSSO Enterprise ZIP file can be downloaded and change
into it.
# mkdir /export/OSSO_BITS
# cd /export/OSSO_BITS
total 66
drwxr-xr-x 14 root root 512 Jul 21 20:54 .
drwxr-xr-x 3 root root 512 Aug 5 16:49 ..
-rw-r--r-- 1 root root 959 Jul 21 20:22 README
drwxr-xr-x 6 root root 512 Jul 21 20:58 deployable-war
drwxr-xr-x 2 root root 512 Jul 21 20:54 docs
drwxr-xr-x 2 root root 512 Jul 21 20:54 fedlet
drwxr-xr-x 3 root root 512 Jul 21 20:22 integrations
drwxr-xr-x 2 root root 512 Jul 21 20:54 ldif
drwxr-xr-x 4 root root 512 Jul 21 20:54 libraries
-rw-r--r-- 1 root root 17003 Jul 21 20:22 license.txt
drwxr-xr-x 2 root root 512 Jul 21 20:54 migration
drwxr-xr-x 2 root root 512 Jul 21 20:54 patches
drwxr-xr-x 2 root root 512 Jul 21 20:54 samples
drwxr-xr-x 3 root root 512 Jul 21 20:58 tools
drwxr-xr-x 8 root root 512 Jul 21 20:32 upgrade
drwxr-xr-x 2 root root 2048 Jul 21 20:22 xml
6 Create a staging area in the non-root user directory into which the WAR will be exploded.
# cd /export/osso80adm
# mkdir osso-staging
Tip – In the staging area, after exploding the WAR, you can modify the WAR contents to suit
your needs, generate a new WAR, and deploy it on any number of remote host computers.
Whenever you need to make changes to the WAR, you maintain the changes in this one staging
area, and redeploy the modified WAR as many times as you want, on as many host machines as
you need.
configuration.dir=/export/osso80adm/config
10 Verify that the new WAR was created in the proper location and with the appropriate
permissions.
# cd /export/osso80adm
# ls -al
total 130552
drwxr-xr-x 7 osso80adm staff 512 Aug 5 13:44 .
drwxr-xr-x 12 root sys 512 Aug 5 11:11 ..
-rw------- 1 osso80adm staff 779 Aug 5 14:56 .asadmintruststore
drwx------ 2 osso80adm staff 512 Aug 5 14:44 .gconf
102 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
4 List the contents of the j2ee-modules directory to verify that the WAR file was successfully
deployed.
# cd /export/osso80adm/domains/ossodomain/applications/j2ee-modules
# ls -al
total 6
drwxr-xr-x 3 osso80adm staff 512 Aug 5 14:01 .
drwxr-xr-x 6 osso80adm staff 512 Aug 5 14:55 ..
drwxr-xr-x 21 osso80adm staff 1024 Aug 5 14:01 opensso
opensso exists in the directory and is owned by the non-root user osso80adm.
4 Copy opensso.war from the osso1.idp-example.com host machine to the osso80adm directory.
5 Verify that the WAR file was copied into the proper location and with the appropriate
permissions.
# ls -al
total 130552
drwxr-xr-x 6 osso80adm staff 512 Aug 5 14:14 .
drwxr-xr-x 8 root sys 512 Aug 5 10:54 ..
-rw-r--r-- 1 osso80adm staff 70 Aug 5 14:13 .asadminpass
-rw------- 1 osso80adm staff 778 Aug 5 14:12 .asadmintruststore
drwx------ 2 osso80adm staff 512 Aug 5 13:15 .gconf
drwx------ 2 osso80adm staff 512 Aug 5 13:26 .gconfd
-rw-r--r-- 1 osso80adm staff 144 Aug 5 15:00 .profile
drwx------ 3 osso80adm staff 512 Aug 5 15:26 .sunw
104 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
4 List the contents of the j2ee-modules directory to verify that the WAR file was successfully
deployed.
# cd /export/osso80adm/domains/ossodomain/applications/j2ee-modules
# ls -al
total 6
drwxr-xr-x 3 osso80adm staff 512 Aug 5 14:01 .
drwxr-xr-x 6 osso80adm staff 512 Aug 5 14:55 ..
drwxr-xr-x 21 osso80adm staff 1024 Aug 5 14:01 opensso
opensso exists in the directory and is owned by the non-root user osso80adm.
2 Select Create New Configuration under Custom Configuration on the Configurator page.
The OpenSSO Enterprise Custom Configuration Wizard is displayed.
3 Provide the following information for the Default User [amAdmin] in Step 1: General and click
Next.
Password ossoadmin
Confirm ossoadmin
4 Accept the default values in Step 2: Server Settings and click Next
c. Accept the default values for the Port, Encryption Key, and Root Suffix fields.
6 Select Remote Directory in Step 4: User Store Settings, provide the following information and
click Next
SSL Enabled Check the box.
Directory Name lb1.idp-example.com
106 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
Port 489
Root Suffix dc=company,dc=com
Password dsmanager
Store Type Select Generic LDAP.
8 Provide the following information for the Default Agent User [amldapuser] in Step 6: Default
Agent User and click Next.
Password agentuser
Confirm agentuser
12 (Optional) To verify that the config directory and the supporting bootstrap directory have
been created with the proper permissions, do the following.
total 130556
drwxr-xr-x 8 osso80adm staff 512 Aug 6 19:32 .
drwxr-xr-x 14 root sys 512 Aug 6 09:07 ..
-rw-r--r-- 1 osso80adm staff 70 Mar 27 14:01 .asadminpass
-rw------- 1 osso80adm staff 1527 Aug 6 18:27 .asadmintruststore
drwx------ 2 osso80adm staff 512 Mar 26 14:44 .gconf
drwx------ 2 osso80adm staff 512 Mar 26 14:44 .gconfd
-rw-r--r-- 1 osso80adm staff 1436 Apr 2 14:34 .keystore
2 Select Create New Configuration under Custom Configuration on the Configurator page.
The OpenSSO Enterprise Custom Configuration Wizard is displayed.
3 Provide the following information for the Default User [amAdmin] in Step 1: General and click
Next.
Password ossoadmin
Confirm ossoadmin
4 Accept the default values in Step 2: Server Settings and click Next
108 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
10 (Optional) To verify that the config directory and the supporting bootstrap directory have
been created with the proper permissions, do the following.
total 130556
drwxr-xr-x 8 osso80adm staff 512 Aug 6 19:32 .
drwxr-xr-x 14 root sys 512 Aug 6 09:07 ..
-rw-r--r-- 1 osso80adm staff 70 Mar 27 14:01 .asadminpass
-rw------- 1 osso80adm staff 1527 Aug 6 18:27 .asadmintruststore
drwx------ 2 osso80adm staff 512 Mar 26 14:44 .gconf
drwx------ 2 osso80adm staff 512 Mar 26 14:44 .gconfd
-rw-r--r-- 1 osso80adm staff 1436 Apr 2 14:34 .keystore
-rw-r--r-- 1 osso80adm staff 144 Mar 11 17:02 .profile
drwx------ 3 osso80adm staff 512 Mar 24 11:20 .sunw
drwxr-xr-x 4 osso80adm staff 512 Aug 6 19:34 config
drwxr-xr-x 4 osso80adm staff 512 Aug 6 18:26 domains
drwxr-xr-x 21 osso80adm staff 1024 Aug 6 19:15 osso-staging
-rw-r--r-- 1 osso80adm staff 68884903 Aug 6 19:17 opensso.war
-rw-r--r-- 1 osso80adm staff 136 Mar 11 17:02 local.cshrc
-rw-r--r-- 1 osso80adm staff 157 Mar 11 17:02 local.login
-rw-r--r-- 1 osso80adm staff 174 Mar 11 17:02 local.profile
The config directory was created and is owned by non-root user osso80adm.
5 Enter the following values for the load balancer and click OK.
Name External
Primary URL https://lb2.idp-example.com:1081/opensso
A new site called External is displayed in the Sites list.
7 Assign External from the Parent Site drop down list and click Save.
110 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.4 Configuring the OpenSSO Enterprise Platform Service
9 Enter the number generated for the osso1.idp-example.com host machine as the value of the
com.iplanet.am.lbcookie.value property and click Save.
The number was generated using the makecookie command in “To Configure OpenSSO
Enterprise Load Balancer 2” on page 96.
12 Assign External from the Parent Site drop down list and click Save.
14 Enter the number generated for the osso2.idp-example.com host machine as the value of the
com.iplanet.am.lbcookie.value property and click Save.
The number was generated using the makecookie command in “To Configure OpenSSO
Enterprise Load Balancer 2” on page 96.
Note – You should see External under the Site Name column for both servers.
2 When the OpenSSO Enterprise login page is displayed, verify that the browser URL still contains
the Primary Site URL configured for the load balancer.
If it does not contain the Site URL, the site configuration is incorrect. If the site configuration is
correct, all browser interactions will occur through the secure Site URL.
112 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
5.5 Configuring OpenSSO Enterprise for SAML v2
3 Click the Access Control tab and / (Top-level Realm) on the Access Control page.
This chapter contains instructions on configuring OpenSSO Enterprise to use the external user
data store (set up in Chapter 4, “Installing Sun Java System Directory Server and Creating
Instances for User Data”) for authentication credentials. This is done by modifying the top-level
realm or, alternately, configuring a sub realm for the external users and creating an
authentication chain. Choose either of the sections listed to configure OpenSSO Enterprise for
user authentication.
■ “6.1 Modifying the Top-Level Realm for Test Users” on page 115
■ “6.2 Creating and Configuring a Sub Realm for Test Users” on page 117
115
6.1 Modifying the Top-Level Realm for Test Users
4 Click / (Top Level Realm), the root realm, under the Access Control tab.
6 Click embedded.
The Generic LDAPv3 properties page is displayed.
7 On the Generic LDAPv3 properties page, set the following attribute values and click Save.
LDAP People Container Naming Attribute
Enter ou.
LDAP Groups Container Value
Enter Groups.
LDAP Groups Container Naming Attribute
Enter ou.
LDAP People Container Value
Enter users.
Note – If this field is empty, the search for user entries will start from the root suffix.
9 (Optional) Click the Subjects tab to verify that the test users are now displayed.
idpuser is displayed under Users (as well as others created during OpenSSO Enterprise
configuration).
116 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
6.2 Creating and Configuring a Sub Realm for Test Users
13 Click Save.
a demarcation between OpenSSO Enterprise configuration and administrative data and the
user data. Use the following list of procedures as a checklist for completing this task.
1. “To Create a Sub Realm” on page 118
2. “To Change the User Profile Configuration for the Sub Realm” on page 119
3. “To Modify the Sub Realm for User Authentication” on page 119
4. “To Verify That the Sub Realm Can Access the External User Data Store” on page 120
5. “To Verify That the Sub Realm Subjects Can Successfully Authenticate” on page 121
6 Click OK.
The users realm is listed as a sub realm of / (Top Level Realm), the root realm.
118 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
6.2 Creating and Configuring a Sub Realm for Test Users
5 Click Save.
1 Click users, the sub realm, under the Access Control tab.
3 Click embedded.
The Generic LDAPv3 properties page is displayed.
4 On the Generic LDAPv3 properties page, set the following attribute values and click Save.
LDAP People Container Naming Attribute
Enter ou.
LDAP Groups Container Value
Enter Groups.
LDAP Groups Container Naming Attribute
Enter ou.
Note – If this field is empty, the search for user entries will start from the root suffix.
6 (Optional) Click the Subjects tab to verify that the test users are now displayed.
idpuser is displayed under Users (as well as others created during OpenSSO Enterprise
configuration).
120 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
6.2 Creating and Configuring a Sub Realm for Test Users
Caution – If deviating from the task sequence or details described, refer to the relevant
product documentation for information or necessary requirements.
123
124
7
C H A P T E R 7
This chapter contains instructions for installing Sun JavaTM System Directory Server and
creating the instances in which Sun OpenSSO Enterprise user data will be stored. Additionally,
the procedure for enabling multi-master replication between the two instances and the
procedure for configuring the user data load balancer are included. This chapter contains the
following sections:
■ “7.1 Installing and Configuring Directory Server 1 and Directory Server 2” on page 125
■ “7.2 Enabling Multi-Master Replication of the User Data Instances” on page 135
■ “7.3 Modifying the Directory Server Schema” on page 142
■ “7.4 Enabling Secure Communication for the Directory Server User Data Instances” on
page 144
■ “7.5 Configuring the Directory Server Load Balancer” on page 147
Note – If you have an existing user data store, you can go directly to the instructions in
Chapter 8, “Deploying and Configuring OpenSSO Enterprise.”
125
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
2 Provide the following information in the Select product configuration section and click View
Downloads.
Step 1: Select Component Directory Server Enterprise Edition 6.x
Step 2: Select Version 6.3
Step 3: Select Delivery Type Compress Archive (ZIP)
Step 4: Select Platform Choose the platform you are using.
The Selection Results page will be displayed with links to the download sites for the Directory
Server bits and required patches.
Note – The patch numbers generated for download on the Selection Results page are based on
your input. Check the most recent Directory Server Enterprise Edition 6.1 Release Notes to
determine if you need to install other patches based on your machine's architecture and
operating system. In this deployment, the Release Notes indicate that based on the hardware
and operating system being used, patch 118855, patch 127112, patch 119964, patch 125379, and
patch 119255 are required.
126 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
No results are returned which indicates that the patch is not yet installed on the system.
Note – If the necessary patches are already installed on your machine, proceed to step 7.
5 Make a directory for the patch downloads and change into it.
# mkdir /export/patches
# cd /export/patches
Note – Signed patches are downloaded as JAR files. Unsigned patches are downloaded as ZIP
files. In this step, ZIP files are downloaded.
7 Make a directory for the Directory Server download and change into it.
# mkdir /export/DS63
# cd /export/DS63
8 Download the Base Full Install of Directory Server EE 6.3 — Zip Distribution, Multi-Language,
(DS/DPS/DE/ISW/DSRK) bits.
Note – No Directory Server Administration Console is installed with these bits. This deployment
example uses the command line to configure the software.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 127
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
2 Change into the directory that contains the downloaded patch files.
# cd /export/patches
Tip – You can use the -M option to install all patches at once. See the patchadd man page for
more information.
6 After installation is complete, verify that each patch was added successfully.
# /usr/sbin/patchadd -p | grep 118855
A series of patch numbers are displayed, and the patch 118855 is present.
128 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
A series of patch numbers are displayed, and the patch 125379 is present.
# setenv LD_LIBRARY_PATH
■ The JAVA_HOME environment variable should be set appropriately for your system
architecture as in the following example:
DSEE.6.3.Solaris10-X86_AMD64-full.tar.gz
# gunzip DSEE.6.3.Solaris10-X86_AMD64-full.tar.gz
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 129
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
6 When Do you accept the license terms? is displayed, enter yes to continue.
Once you accept the license terms, the Directory Server binaries will be installed in the
/var/opt/mps/serverroot/ds6 directory.
Before You Begin This procedure assumes you have just completed “To Install Directory Server 1” on page 129
and are still logged into the ds1.sp-example.com host machine as a root user.
130 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
5 Run ldapsearch to verify that you can read the root Directory Server entry of the new instance.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds1.sp-example.com
-p 1489 -b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass: top
...
supportedLDAPVersion: 3
vendorName: Sun Microsystems, Inc.
vendorVersion: Sun-Java(tm)-System-Directory/6.3
...
Before You Begin This procedure assumes you have just completed “To Create a User Data Instance on Directory
Server 1” on page 130 and are still logged into the ds1.sp-example.com host machine as a root
user.
Type "Y" to accept, "y" to accept just once, "n" to refuse, "d" for more details: Y
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 131
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
Tip – When you type an uppercase Y, you are not asked for the certificate again in the next steps.
3 Run dsconf list-suffixes to verify that the base suffix was successfully created.
# ./dsconf list-suffixes -p 1489
o=spusers.com
If the base suffix was successfully created, o=spusers.com is returned. You can also see
sp-users in a command line list of directory instances.
# cd /var/opt/mps
# ls
sp-users serverroot
# setenv LD_LIBRARY_PATH
■ The JAVA_HOME environment variable should be set appropriately for your system
architecture as in the following example:
132 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
DSEE.6.3.Solaris-Sparc-full.tar.gz
# gunzip DSEE.6.3.Solaris-Sparc-full.tar.gz
6 When Do you accept the license terms? is displayed, enter yes to continue.
Once you accept the license terms, the Directory Server binaries will be installed in the
/var/opt/mps/serverroot/ds6 directory.
Before You Begin This procedure assumes you have just completed “To Install Directory Server 2” on page 132
and are still logged into the ds2.sp-example.com host machine as a root user.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 133
7.1 Installing and Configuring Directory Server 1 and Directory Server 2
5 Run ldapsearch to verify that you can read the root Directory Server entry of the new instance.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.sp-example.com
-p 1489 -b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass: top
...
supportedLDAPVersion: 3
vendorName: Sun Microsystems, Inc.
vendorVersion: Sun-Java(tm)-System-Directory/6.3
...
Before You Begin This procedure assumes you have just completed “To Create a User Data Instance on Directory
Server 2” on page 133 and are still logged into the ds2.sp-example.com host machine as a root
user.
134 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.2 Enabling Multi-Master Replication of the User Data Instances
Type "Y" to accept, "y" to accept just once, "n" to refuse, "d" for more details: Y
Tip – When you type an uppercase Y, you are not asked for the certificate again in the next steps.
3 Run dsconf list-suffixes to verify that the base suffix was successfully created.
# ./dsconf list-suffixes -p 1489
o=siroeusers.com
If the base suffix was successfully created, o=spusers.com is returned. You can also see
sp-users in a command line list of directory instances.
# cd /var/opt/mps
# ls
sp-users serverroot
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 135
7.2 Enabling Multi-Master Replication of the User Data Instances
2 (Optional) Run dsconf list-suffixes to verify that the user data instance is not already
enabled for replication.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf list-suffixes -p 1489 -v
4 Run dsconf list-suffixes again to verify that the instance is now enabled for replication.
# ./dsconf list-suffixes -p 1489 -v
136 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.2 Enabling Multi-Master Replication of the User Data Instances
2 (Optional) Run dsconf list-suffixes to verify that the user data instance is not already
enabled for replication.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf list-suffixes -p 1489 -v
4 Run dsconf list-suffixes again to verify that the instance is now enabled for replication.
# ./dsconf list-suffixes -p 1489 -v
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 137
7.2 Enabling Multi-Master Replication of the User Data Instances
2 Create a temporary file that contains the new replication manager password.
This file will be read once, and the password stored for future use.
# cd /var/opt/mps/serverroot/ds6/bin
# echo replmanager > pwd.txt
replmanager
4 Run dsconf set-server-prop to set the replication manager password using pwd.txt as input.
# ./dsconf set-server-prop -h ds1.sp-example.com -p 1489
def-repl-manager-pwd-file:pwd.txt
8 Create a temporary file that contains the new replication manager password.
This file will be read once, and the password stored for future use.
# cd /var/opt/mps/serverroot/ds6/bin
# echo replmanager > pwd.txt
replmanager
138 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.2 Enabling Multi-Master Replication of the User Data Instances
10 Run dsconf set-server-prop to set the replication manager password using pwd.txt as input.
# ./dsconf set-server-prop -h ds2.sp-example.com -p 1489
def-repl-manager-pwd-file:pwd.txt
3 Run dsconf list-repl-agmts to verify that the replication agreement was successfully
created.
# ./dsconf list-repl-agmts -p 1489
o=spusers.com ds2.sp-example.com:1489
This response indicates that the Directory Server 1 base suffix will be replicated to Directory
Server 2.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 139
7.2 Enabling Multi-Master Replication of the User Data Instances
7 Run dsconf list-repl-agmts to verify that the replication agreement was successfully
created.
# ./dsconf list-repl-agmts -p 1489
o=spusers.com ds1.sp-example.com:1489
This response indicates that the Directory Server 2 base suffix will be replicated to Directory
Server 1.
Note – Initialization is not required on both instances when configuring for MMR.
2 Run dsconf show-repl-agmt-status to verify that the replication agreements have not yet
been initialized.
# cd /var/opt/mps/serverroot/ds6/bin
# ./dsconf show-repl-agmt-status -h ds1.sp-example.com
-p 1489 o=spusers.com ds2.sp-example.com:1489
Configuration Status : OK
Authentication Status : OK
Initialization Status : NOT OK
140 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.2 Enabling Multi-Master Replication of the User Data Instances
4 Run dsconf show-repl-agmt-status again to verify that the replication agreements are now
initialized.
# ./dsconf show-repl-agmt-status -h ds1.sp-example.com
-p 1489 o=spusers.com ds2.sp-example.com:1489
Configuration Status : OK
Authentication Status : OK
Initialization Status : OK
Status: : Enabled
Last Update Date : Sep 13, 2008 9:58:17 AM
1 Prepare an LDIF file with the following contents and save it in the /tmp directory as
people.ldif.
dn: ou=People,o=spusers.com
objectclass: top
objectclass: organizationalUnit
ou: People
description: Container for user entries
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 141
7.3 Modifying the Directory Server Schema
-w dsmanager
3 After the entry is created, log in to the ds2.sp-example.com host machine as a root user.
4 Run ldapsearch on Directory Server 2 to verify that ou=People was successfully replicated.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -b "o=spusers.com" -p 1489
-D "cn=Directory Manager" -w dsmanager
"objectclass=organizationalUnit"
version: 1
dn: ou=People,o=spusers.com
objectClass: top
objectClass: organizationalUnit
ou: People
description Container for user entries
6 Now, as a root user on Directory Server 1, run ldapsearch to verify that the deletion was
replicated.
# ./ldapsearch -b "o=spusers.com"
-p 1489 -D "cn=Directory Manager" -w dsmanager
"objectclass=organizationalUnit"
The search will return no results as the delete was successfully replicated.
142 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.3 Modifying the Directory Server Schema
2 Create an LDIF file with the following information and save it as /tmp/saml.ldif.
This file includes SAML v2 LDAP attributes.
dn: CN=schema
changetype:modify
add:attributeTypes
attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.500
NAME ’sun-fm-saml2-nameid-infokey’
DESC ’SAML 2.0 Name Identifier Information Key’
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN
’Sun Java System Access Management’ )
attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.501
NAME ’sun-fm-saml2-nameid-info’
DESC ’SAML 2.0 Name Identifier Information’
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN
’Sun Java System Access Management’ )
-
add:objectClasses
objectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.200
NAME ’sunFMSAML2NameIdentifier’
DESC ’SAML 2.0 name identifier objectclass’
SUP top AUXILIARY MAY
( sun-fm-saml2-nameid-infokey $ sun-fm-saml2-nameid-info )
X-ORIGIN ’Sun Java System Access Management’ )
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 143
7.4 Enabling Secure Communication for the Directory Server User Data Instances
144 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.4 Enabling Secure Communication for the Directory Server User Data Instances
opensslCA
2008/02/06 00:00 2017/02/06 00:00 n
CN=Certificate Manager,OU=opensso,O=Identity,C=US
Same as issuer
9 Run ldapsearch on Directory Server 1 to verify that the directory entries can be accessed
through the secure port.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds1.sp-example.com -p 1736
-Z -P /var/opt/mps/sp-users/alias/slapd-cert8.db
-b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass:top
namingContexts: o=spusers.com
supportedExtension: 2.16.840.1.113730.3.5.7
:
supportedSSLCiphers: SSL-CK_RC4_128_EXPORT40_WITH_MD5
supportedSSLCiphers: SSL-CK_RC2_128_CBC_EXPORT40_WITH_MD5
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 145
7.4 Enabling Secure Communication for the Directory Server User Data Instances
This confirms that the Directory Server instance can be accessed through the secure port.
opensslCA
2008/02/06 00:00 2017/02/06 00:00 n
CN=Certificate Manager,OU=opensso,O=Identity,C=us
Same as issuer
146 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.5 Configuring the Directory Server Load Balancer
9 Run ldapsearch on Directory Server 2 to verify that the directory entries can be accessed
through the secure port.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.sp-example.com -p 1736
-Z -P /var/opt/mps/sp-users/alias/slapd-cert8.db
-b "" -s base "(objectclass=*)"
version: 1
dn:
objectClass:top
namingContexts: o=spusers.com
supportedExtension: 2.16.840.1.113730.3.5.7
:
supportedSSLCiphers: SSL-CK_RC4_128_EXPORT40_WITH_MD5
supportedSSLCiphers: SSL-CK_RC2_128_CBC_EXPORT40_WITH_MD5
This confirms that the Directory Server instance can be accessed through the secure port.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 147
7.5 Configuring the Directory Server Load Balancer
■ The load balancer hardware and software used in the lab facility for this deployment is
BIG-IP® manufactured by F5 Networks. If you are using different load balancer software, see
the documentation that comes with that product for detailed settings information.
■ Contact your network administrator to obtain an available virtual IP address for the load
balancer you want to configure.
■ Know the IP address of the load balancer hardware, the URL for the load balancer login
page, and a username and password for logging in to the load balancer application.
■ Get the IP addresses for Directory Server 1 and Directory Server 2 by running the following
command on each host machine:
# ifconfig -a
Use the following list of procedures as a checklist for completing the task.
1. “To Import the Root Certificate to the User Data Load Balancer” on page 148
2. “To Configure Directory Server Load Balancer 1” on page 149
1 Access https://is-f5.siroe.com, the BIG-IP load balancer login page, in a web browser.
3 Click Proxies.
5 Click Import.
7 Click Browse in the Certificate File field on the Install SSL Certificate page.
148 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.5 Configuring the Directory Server Load Balancer
2 Create a Pool.
A pool contains all the backend server instances.
d. Click Done.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 149
7.5 Configuring the Directory Server Load Balancer
Tip – If you encounter JavaScriptTM errors or otherwise cannot proceed to create a virtual server,
try using Internet Explorer.
c. In the Add a Virtual Server dialog box, provide the following information:
Address Enter the IP address for lb1.sp-example.com
Service 489
d. Continue to click Next until you reach the Pool Selection dialog box.
f. Click Done.
4 Add Monitors
Monitors are required for the load balancer to detect the backend server failures.
e. At the top of the Node column, in the drop-down list, choose ldap-tcp.
f. Click Apply.
150 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.5 Configuring the Directory Server Load Balancer
request requires information to be written to Directory Server 1, that information must also be
replicated to Directory Server 2. As the replication takes time to complete, if a related request is
directed by the load balancer to Directory Server 2 during the replication process itself, the
request may fail as the entry might only be partially created. When properly configured, simple
persistence ensures that both requests are routed to Directory Server 1 and processed in
consecutive order; the first request is finished before the second request begins processing.
Simple persistence ensures that within the specified interval, no errors or delays occur due to
replication time or redirects when retrieving data. Simple persistence tracks connections based
only on the client IP address.
f. Click Apply.
6 Verify the Directory Server load balancer configuration using the following sub-procedure.
b. On each host machine, use the tail command to monitor the Directory Server access log.
# cd /var/opt/mps/sp-users/logs
# tail -f access
You should see connections to the load balancer IP address opening and closing. For
example:
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 151
7.5 Configuring the Directory Server Load Balancer
c. Execute the following LDAP search against the Directory Server load balancer from
Directory Server 1.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h lb1.sp-example.com -p 489 -Z
-P /var/opt/mps/sp-users/alias/slapd-cert8.db
-b "o=spusers.com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: o=spusers.com
objectClass: top
objectClass: organization
o: spusers.com
Make sure the returned entries display in the access log on only one Directory Server host
machine.
e. Perform the (same) LDAP search against the Directory Server load balancer from Directory
Server 2.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h lb1.sp-example.com -p 489 -Z
-P /var/opt/mps/sp-users/alias/slapd-cert8.db
-b "o=spusers.com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: o=spusers.com
objectClass: top
objectClass: organization
o: spusers.com
Make sure the returned entries display in the access log on only Directory Server 2.
152 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.5 Configuring the Directory Server Load Balancer
This means that the load balancer may not fully detect that Directory Server 1 is stopped. In
this case, you may have started the search too soon based on the polling interval setting. For
example, if the polling interval is set to 10 seconds, you should wait ten seconds to start the
search. You can reset the timeout properties to a lower value using the load balancer
console.
a. Click the Monitors tab.
b. Click the ldap-tcp monitor name.
c. In the Interval field, set the value to 5.
This tells the load balancer to poll the server every 5 seconds.
d. In the Timeout field, set the value to 16.
e. Click Apply and repeat the LDAP search.
See your load balancer documentation for more information on the timeout property.
h. Perform the (same) LDAP search against the Directory Server load balancer from Directory
Server 1 to confirm that the request is forwarded to the running Directory Server 1.
# cd /var/opt/mps/serverroot/dsrk6/bin
./ldapsearch -h lb1.sp-example.com -p 489 -Z
-P /var/opt/mps/am-users/alias/slapd-cert8.db
-b "o=spusers.com" -D "cn=directory manager"
-w dsmanager "(objectclass=*)"
version: 1
dn: o=spusers.com
objectClass: top
objectClass: organization
o: spusers.com
Make sure the returned entries display in the access log on only Directory Server 1.
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 153
7.6 Creating a Test User
j. Log out of both Directory Server host machines and the load balancer console.
Note – If you are using an existing user data store, create the appropriate users in it and move on
to Chapter 9, “Configuring OpenSSO Enterprise Realms for User Authentication.”
dn: ou=Groups,o=spusers.com
objectClass: top
objectClass: organizationalUnit
ou: Groups
description: Container for group entries
dn: uid=spuser,ou=users,o=spusers.com
uid: spuser
givenName: sp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
154 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
7.6 Creating a Test User
objectClass: inetUser
sn: user
cn: sp user
userPassword: spuser
inetUserStatus: Active
version: 1
dn: uid=spuser,ou=users,o=spusers.com
uid: spuser
givenName: sp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: inetUser
sn: user
cn: sp user
userPassword:
{SSHA}H5LpB+QLZMoL9SiXzY/DokHKXRclELVy7w25AA==
inetUserStatus: Active
Chapter 7 • Installing Sun Java System Directory Server and Creating Instances for User Data 155
7.6 Creating a Test User
7 (Optional) Verify that the entries were replicated to Directory Server 2 by logging in as a root
user to the ds2.idp-example.com host machine and using ldapsearch.
# cd /var/opt/mps/serverroot/dsrk6/bin
# ./ldapsearch -h ds2.sp-example.com
-b "o=spusers.com" -p 1489 -D "cn=Directory Manager"
-w dsmanager ""
version: 1
dn: o=spusers.com
objectClass: top
objectClass: domain
dc: company
dn: ou=users,o=spusers.com
objectClass: top
objectClass: organizationalUnit
ou: users
description: Container for user entries
dn: ou=Groups,o=spusers.com
objectClass: top
objectClass: organizationalUnit
ou: Groups
description: Container for group entries
dn: uid=spuser,ou=users,o=spusers.com
uid: spuser
givenName: sp
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: inetUser
sn: user
cn: sp user
userPassword:
{SSHA}H5LpB+QLZMoL9SiXzY/DokHKXRclELVy7w25AA==
inetUserStatus: Active
156 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8
C H A P T E R 8
This chapter includes instructions on how to deploy and configure two instances of Sun
OpenSSO Enterprise 8.0 on the service provider side. It begins with the installation of Sun
JavaTM System Application Server onto each host machine, followed by the deployment and
configuration of the OpenSSO Enterprise WAR. This chapter contains the following sections:
■ “8.1 Installing the Application Server Web Containers” on page 157
■ “8.2 Configuring the OpenSSO Enterprise Load Balancer” on page 182
■ “8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2” on
page 190
■ “8.4 Configuring the OpenSSO Enterprise Platform Service” on page 199
Note – We use roleadd rather than useradd for security reasons; roleadd disables the ability of
the user to log in.
157
8.1 Installing the Application Server Web Containers
root:x:0:0:Super-User:/:/sbin/sh
daemon:x:1:1::/:
158 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
...
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
osso80adm:x:223830:10::/export/osso80adm:/sbin/sh
Caution – If you do not perform this step, you will not be able to switch user (su) when logged in
as the non-root user.
Before You Begin This procedure assumes you have just completed “To Create a Non-Root User on the OpenSSO
Enterprise 1 Host Machine” on page 158 and are still logged into the osso1.sp-example.com
host machine as a root user.
1 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
2 Download the Sun Java System Application Server 9.1 Update 2 binary from the Sun
Microsystems Product Download page to the /export/AS91 directory.
3 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_02-solaris-sparc-ml.bin
Before you install this product, Press Enter to display the Software
you must read and accept the entire License Agreement.
Software License Agreement under which
this product is licensed for your use.
160 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Applicatin Server version [no]
{"<" goes back, "!" exits}?
162 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
--domaindir /export/osso80adm/domains
--adminport 8989 --user domain2adm --instanceport 1080
--domainproperties http.ssl.port=1081 ossodomain
domain2pwd
domain2pwd
domain2master
domain2master
164 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
7 Verify that the non-root user domain was created with the correct permissions using the
following sub-procedure.
total 30
drwxr-xr-x 15 osso80adm staff 512 Sep 14 16:43 .
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 ..
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 addons
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 applications
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 autodeploy
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 bin
drwx------ 3 osso80adm staff 1024 Sep 14 16:43 config
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 docroot
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 generated
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 imq
drwxr-xr-x 5 osso80adm staff 512 Sep 14 16:43 java-web-start
drwxr-xr-x 8 osso80adm staff 512 Sep 14 16:43 jbi
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 lib
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 logs
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 session-store
The files and directories are owned by osso80adm.
8 Start ossodomain, the non-root user domain, using the following sub-procedure.
b. Start ossodomain.
# ./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
10 Create a request for a CA-signed server certificate to secure communications between the
soon-to-be-configured OpenSSO Enterprise load balancer and ossodomain using the following
sub-procedure.
a. Generate a private/public key pair and reference it with the alias, opensso-sp-1.
opensso-sp-1 will be used in a later step to retrieve the public key which is contained in a
self-signed certificate.
# cd /export/osso80adm/domains/ossodomain/config
# keytool -genkey -noprompt -keyalg rsa -keypass domain2master
-alias opensso-sp-1 -keystore keystore.jks -dname "CN=osso1.sp-example.com,
OU=OpenSSO, O=Sun Microsystems, L=Santa Clara, ST=California, C=US"
-storepass domain2master
b. Verify that the key pair was successfully created and stored in the certificate store.
# keytool -list -v -keystore keystore.jks -storepass domain2master
166 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
Note – The output of this command may list more than one certificate based on the entries in
the keystore.
g. Replace the self-signed public key certificate (associated with the s1as alias) with the
CA-signed server certificate.
# keytool -import -file opensso-sp-1.cer -alias opensso-sp-1
-keystore keystore.jks -storepass domain2master
h. (Optional) Verify that the self-signed public key certificate has been overwritten by the
server certificate received from the CA.
# keytool -list -v -keystore keystore.jks
-storepass domain2master
i. Change the certificate alias from the default s1as to the new opensso-sp-1 in the
domain.xml file for the ossodomain domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="opensso-sp-1" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
168 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
11 Modify the JVM options in your web container's configuration file using the following
sub-procedure.
OpenSSO Enterprise is deployed with an embedded configuration data store (if desired). In
order for the configuration data store to be created successfully, the following JVM options
should be modified in the web container's configuration file. We will be modifying domain.xml
again for this example.
./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
13 Verify that the certificate used for SSL communication is the root CA certificate.
b. View the details of the certificate in the security warning to ensure that it is Issued by
“OpenSSLTestCA”.
After inspecting and accepting the certificate, you should see the default index.html page.
root:x:0:0:Super-User:/:/sbin/sh
daemon:x:1:1::/:
...
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
osso80adm:x:223830:10::/export/osso80adm:/sbin/sh
Caution – If you do not perform this step, you will not be able to switch user (su) when logged in
as the non-root user.
170 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
Before You Begin This procedure assumes you have just completed “To Create a Non-Root User on the OpenSSO
Enterprise 2 Host Machine” on page 170 and are still logged into the osso2.sp-example.com
host machine as a root user.
1 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
2 Download the Sun Java System Application Server 9.1 Update 2 binary from the Sun
Microsystems Product Download page to the AS91 directory of the osso2.sp-example.com host
machine.
3 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_02-solaris-sparc-ml.bin
Before you install this product, Press Enter to display the Software
you must read and accept the entire License Agreement.
Software License Agreement under which
this product is licensed for your use.
172 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Applicatin Server version [no]
{"<" goes back, "!" exits}?
174 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
--domaindir /export/osso80adm/domains
--adminport 8989 --user domain2adm --instanceport 1080
--domainproperties http.ssl.port=1081 ossodomain
domain2pwd
domain2pwd
domain2master
domain2master
176 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
7 Verify that the non-root user domain was created with the correct permissions using the
following sub-procedure.
total 30
drwxr-xr-x 15 osso80adm staff 512 Sep 14 16:43 .
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 ..
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 addons
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 applications
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 autodeploy
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 bin
drwx------ 3 osso80adm staff 1024 Sep 14 16:43 config
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 docroot
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 generated
drwxr-xr-x 3 osso80adm staff 512 Sep 14 16:43 imq
drwxr-xr-x 5 osso80adm staff 512 Sep 14 16:43 java-web-start
drwxr-xr-x 8 osso80adm staff 512 Sep 14 16:43 jbi
drwxr-xr-x 6 osso80adm staff 512 Sep 14 16:43 lib
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 logs
drwxr-xr-x 2 osso80adm staff 512 Sep 14 16:43 session-store
The files and directories are owned by osso80adm.
8 Start ossodomain, the non-root user domain, using the following sub-procedure.
b. Start ossodomain.
# ./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
10 Create a request for a CA-signed server certificate to secure communications between the
soon-to-be-configured OpenSSO Enterprise load balancer and ossodomain using the following
sub-procedure.
a. Generate a private/public key pair and reference it with the alias, opensso-sp-2.
opensso-sp-2 will be used in a later step to retrieve the public key which is contained in a
self-signed certificate.
# cd /export/osso80adm/domains/ossodomain/config
# keytool -genkey -noprompt -keyalg rsa -keypass domain2master
-alias opensso-sp-2 -keystore keystore.jks -dname "CN=osso2.sp-example.com,
OU=OpenSSO, O=Sun Microsystems, L=Santa Clara, ST=California, C=US"
-storepass domain2master
b. Verify that the key pair was successfully created and stored in the certificate store.
# keytool -list -v -keystore keystore.jks -storepass domain2master
178 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
Note – The output of this command may list more than one certificate based on the entries in
the keystore.
g. Replace the self-signed public key certificate (associated with the s1as alias) with the
CA-signed server certificate.
# keytool -import -file opensso-sp-2.cer -alias opensso-sp-2
-keystore keystore.jks -storepass domain2master
h. (Optional) Verify that the self-signed public key certificate has been overwritten by the
CA-signed server certificate.
# keytool -list -v -keystore keystore.jks
-storepass domain2master
i. Change the certificate alias from the default s1as to the new opensso-sp-2 in the
domain.xml file for the ossodomain domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="opensso-sp-2" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
180 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.1 Installing the Application Server Web Containers
11 Modify the JVM options in your web container's configuration file using the following
sub-procedure.
OpenSSO Enterprise is deployed with an embedded configuration data store (if desired). In
order for the configuration data store to be created successfully, the following JVM options
should be modified in the web container's configuration file. We will be modifying domain.xml
again for this example.
./startserv
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
13 Verify that the certificate used for SSL communication is the root CA certificate.
b. View the details of the certificate in the security warning to ensure that it is Issued by
“OpenSSLTestCA”.
After inspecting and accepting the certificate, you should see the default index.html page.
Cookie-based The load balancer makes decisions based on client's cookies. The load balancer looks at
the request and detects the presence of a cookie by a specific name. If the cookie is
detected in the request, the load balancer routes the request to the specific server to
which the cookie has been assigned. If the cookie is not detected in the request, the load
balancer balances client requests among the available servers.
IP-based This is similar to cookie-based load balancing, but the decision is based on the IP
address of the client. The load balancer sends all requests from a specific IP address to
the same server.
TCP The load balancer mainstreams session affinity. This means that all requests related to a
TCP session, are forwarded to the same server. In this deployment example, Load
Balancer 2 forwards all requests from a single client to exactly the same server. When
the session is started and maintained by one client, session affinity is guaranteed. This
type of load-balancing is applicable to the TCP-based protocols.
This section assumes that you have already installed a load balancer. Before you begin, note the
following:
■ The load balancer hardware and software used in the lab facility for this deployment is
BIG-IP® manufactured by F5 Networks. If you are using different load balancer software, see
the documentation that comes with that product for detailed settings information.
■ Contact your network administrator to obtain an available virtual IP address for the load
balancer you want to configure.
■ Know the IP address of the load balancer hardware, the URL for the load balancer login
page, and a username and password for logging in to the load balancer application.
182 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.2 Configuring the OpenSSO Enterprise Load Balancer
■ Get the IP addresses for OpenSSO Enterprise 1 and OpenSSO Enterprise 2 by running the
following command on each host machine:
# ifconfig -a
Use the following list of procedures as a checklist for completing the task.
1. “To Request a Certificate for OpenSSO Enterprise Load Balancer 2” on page 183
2. “To Install a CA Root Certificate to OpenSSO Enterprise Load Balancer 2” on page 184
3. “To Install the Server Certificate to OpenSSO Enterprise Load Balancer 2” on page 185
4. “To Configure OpenSSO Enterprise Load Balancer 2” on page 185
5. “To Create an SSL Proxy for SSL Termination at the OpenSSO Enterprise Load Balancer 2”
on page 188
1 Access https://is-f5.siroe.com, the BIG-IP load balancer login page, in a web browser.
6 On the SSL Certificate Administration page, click Generate New Key Pair/Certificate Request.
9 Save the text contained in the Certificate Request field to a file named lb-2.csr.
1 Access https://is-f5.example.com, the BIG-IP load balancer login page, in a web browser.
5 Click Import.
7 Click Browse in the Certificate File field on the Install SSL Certificate page.
184 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.2 Configuring the OpenSSO Enterprise Load Balancer
5 In the Choose File dialog, navigate to lb-2.cer, the CA-signed server certificate, and click Open.
4 Create a Pool.
A pool contains all the backend server instances.
d. Click Done.
Note – If you encounter JavaScriptTM errors or otherwise cannot proceed to create a virtual
server, try using Internet Explorer.
c. In the Add a Virtual Server dialog box, provide the following information:
Address Enter the IP address for lb2.sp-example.com
Service 1082
d. Continue to click Next until you reach the Pool Selection dialog box.
f. Click Done.
186 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.2 Configuring the OpenSSO Enterprise Load Balancer
6 Add Monitors.
OpenSSO Enterprise comes with a JSP file named isAlive.jsp that can be contacted to
determine if the server is down. Since we have not yet deployed OpenSSO Enterprise,
isAlive.jsp cannot be used. In the following sub procedure, create a custom monitor that
periodically accesses the Application Server instance(s). If desired, the monitor can be changed
later to use isAlive.jsp.
d. Mark the Add checkbox that corresponds to the IP address for both
osso1.sp-example.com:1080 and osso2.sp-example.com:1080.
f. Click Apply.
b. Click the name of the pool you want to configure; in this case, OpenSSO-SP-Pool.
f. Click Apply.
Before You Begin Use the same root certificate that you imported in “7.4 Enabling Secure Communication for the
Directory Server User Data Instances” on page 144. For more information, see “3.3 Obtaining
Secure Socket Layer Certificates” on page 34.
1 Access https://is-f5.example.com, the BIG-IP load balancer login page, in a web browser.
188 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.2 Configuring the OpenSSO Enterprise Load Balancer
7 Click Next.
8 On the page starting with“Insert HTTP Header String,”change to Rewrite Redirects and choose
Matching.
9 Click Next.
10 On the page starting with“Server Chain File,”change to Server Trusted CA's File, select“ca.cer”
from the drop-down list.
11 Click Done.
The new proxy server is added to the Proxy Server list.
Tip – A message may be displayed indicating that the browser doesn't recognize the certificate
issuer. If this happens, install the CA root certificate in the browser so that the browser
recognizes the certificate issuer. See your browser's online help system for information on
installing a root CA certificate.
2 Create a directory into which the OpenSSO Enterprise ZIP file can be downloaded and change
into it.
# mkdir /export/OSSO_BITS
# cd /export/OSSO_BITS
190 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
# ls -al
total 68
drwxr-xr-x 14 root root 512 Sep 8 11:13 ./
drwxrwxr-x 3 root root 512 Sep 15 13:06 ../
-rw-r--r-- 1 root root 1349 Sep 8 10:58 README
drwxr-xr-x 6 root root 512 Sep 8 11:15 deployable-war/
drwxr-xr-x 2 root root 512 Sep 8 11:13 docs/
drwxr-xr-x 2 root root 512 Sep 8 11:13 fedlet/
drwxr-xr-x 5 root root 512 Sep 8 11:11 integrations/
drwxr-xr-x 2 root root 512 Sep 8 11:13 ldif/
drwxr-xr-x 4 root root 512 Sep 8 11:13 libraries/
-rw-r--r-- 1 root root 17003 Sep 8 10:58 license.txt
drwxr-xr-x 2 root root 512 Sep 8 11:13 migration/
drwxr-xr-x 2 root root 512 Sep 8 11:13 patches/
drwxr-xr-x 2 root root 512 Sep 8 11:13 samples/
drwxr-xr-x 2 root root 512 Sep 8 11:14 tools/
drwxr-xr-x 8 root root 512 Sep 8 11:13 upgrade/
drwxr-xr-x 2 root root 2048 Sep 8 11:11 xml/
6 Create a staging area in the non-root user directory into which the WAR will be exploded.
# cd /export/osso80adm
# mkdir osso-staging
Tip – In the staging area, after exploding the WAR, you can modify the WAR contents to suit
your needs, generate a new WAR, and deploy it on any number of remote host computers.
Whenever you need to make changes to the WAR, you maintain the changes in this one staging
area, and redeploy the modified WAR as many times as you want, on as many host machines as
you need.
configuration.dir=/export/osso80adm/config
10 Verify that the new WAR was created in the proper location and with the appropriate
permissions.
# cd /export/osso80adm/osso-staging
# /bin/rm -rf *
# jar xvf ../opensso.war
# ls -al
total 498
drwxr-xr-x 7 osso80adm staff 512 Aug 5 13:44 .
drwxr-xr-x 12 root sys 512 Aug 5 11:11 ..
-rw------- 1 osso80adm staff 779 Aug 5 14:56 .asadmintruststore
drwx------ 2 osso80adm staff 512 Aug 5 14:44 .gconf
drwx------ 2 osso80adm staff 512 Aug 5 14:44 .gconfd
-rw-r--r-- 1 osso80adm staff 144 Aug 5 17:02 .profile
drwx------ 3 osso80adm staff 512 Aug 5 11:20 .sunw
drwxr-xr-x 3 osso80adm staff 512 Aug 5 14:55 domains
drwxr-xr-x 21 osso80adm staff 1024 Aug 5 13:43 osso-staging
-rw-r--r-- 1 osso80adm staff 68884903 Aug 5 13:45 opensso.war
-rw-r--r-- 1 osso80adm staff 136 Aug 5 17:02 local.cshrc
-rw-r--r-- 1 osso80adm staff 157 Aug 5 17:02 local.login
-rw-r--r-- 1 osso80adm staff 174 Aug 5 17:02 local.profile
192 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
4 List the contents of the j2ee-modules directory to verify that the WAR file was successfully
deployed.
# cd /export/osso80adm/domains/ossodomain/applications/j2ee-modules
# ls -al
total 6
drwxr-xr-x 3 osso80adm staff 512 Aug 5 14:01 .
drwxr-xr-x 6 osso80adm staff 512 Aug 5 14:55 ..
drwxr-xr-x 21 osso80adm staff 1024 Aug 5 14:01 opensso
opensso exists in the directory and is owned by the non-root user osso80adm.
4 Copy opensso.war from the osso1.sp-example.com host machine to the osso80adm directory.
5 Verify that the WAR file was copied into the proper location and with the appropriate
permissions.
# ls -al
total 130552
drwxr-xr-x 6 osso80adm staff 512 Sep 5 14:14 .
drwxr-xr-x 8 root sys 512 Sep 5 10:54 ..
-rw-r--r-- 1 osso80adm staff 70 Sep 5 14:13 .asadminpass
-rw------- 1 osso80adm staff 778 Sep 5 14:12 .asadmintruststore
drwx------ 2 osso80adm staff 512 Sep 5 13:15 .gconf
drwx------ 2 osso80adm staff 512 Sep 5 13:26 .gconfd
-rw-r--r-- 1 osso80adm staff 144 Sep 5 15:00 .profile
drwx------ 3 osso80adm staff 512 Sep 5 15:26 .sunw
drwxr-xr-x 3 osso80adm staff 512 Sep 5 14:12 domains
-rw-r--r-- 1 osso80adm staff 68884903 Sep 5 14:14 opensso.war
-rw-r--r-- 1 osso80adm staff 136 Sep 5 15:00 local.cshrc
-rw-r--r-- 1 osso80adm staff 157 Sep 5 15:00 local.login
-rw-r--r-- 1 osso80adm staff 174 Sep 5 15:00 local.profile
opensso.war exists in the directory and is owned by osso80adm.
194 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
admin username:domain2adm
admin password:domain2pwd
master password:domain2master
4 List the contents of the j2ee-modules directory to verify that the WAR file was successfully
deployed.
# cd /export/osso80adm/domains/ossodomain/applications/j2ee-modules
# ls -al
total 6
drwxr-xr-x 3 osso80adm staff 512 Sep 5 14:01 .
drwxr-xr-x 6 osso80adm staff 512 Sep 5 14:55 ..
drwxr-xr-x 21 osso80adm staff 1024 Sep 5 14:01 opensso
opensso exists in the directory and is owned by the non-root user osso80adm.
2 Select Create New Configuration under Custom Configuration on the Configurator page.
The OpenSSO Enterprise Custom Configuration Wizard is displayed.
3 Provide the following information for the Default User [amAdmin] in Step 1: General and click
Next.
Password ossoadmin
Confirm ossoadmin
4 Accept the default values in Step 2: Server Settings and click Next
c. Accept the default values for the Port, Encryption Key, and Root Suffix fields.
6 Select Remote Directory in Step 4: User Store Settings, provide the following information and
click Next
SSL Enabled Check the box.
Directory Name lb2.sp-example.com
Port 489
Root Suffix o=spusers.com
Password dsmanager
Store Type Select Generic LDAP.
8 Provide the following information for the Default Agent User [amldapuser] in Step 6: Default
Agent User and click Next.
196 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.3 Deploying and Configuring OpenSSO Enterprise 1 and OpenSSO Enterprise 2
Password agentuser
Confirm agentuser
12 (Optional) To verify that the config directory and the supporting bootstrap directory have
been created with the proper permissions, do the following.
total 130556
drwxr-xr-x 8 osso80adm staff 512 Sep 6 19:32 .
drwxr-xr-x 14 root sys 512 Sep 6 09:07 ..
-rw-r--r-- 1 osso80adm staff 70 Sep 27 14:01 .asadminpass
-rw------- 1 osso80adm staff 1527 Sep 6 18:27 .asadmintruststore
-rw-r--r-- 1 osso80adm staff 144 Sep 11 17:02 .profile
drwx------ 3 osso80adm staff 512 Sep 24 11:20 .sunw
drwxr-xr-x 4 osso80adm staff 512 Sep 6 19:34 config
drwxr-xr-x 4 osso80adm staff 512 Sep 6 18:26 domains
-rw-r--r-- 1 osso80adm staff 136 Sep 11 17:02 local.cshrc
-rw-r--r-- 1 osso80adm staff 157 Sep 11 17:02 local.login
-rw-r--r-- 1 osso80adm staff 174 Sep 11 17:02 local.profile
The config directory was created and is owned by non-root user osso80adm.
2 Select Create New Configuration under Custom Configuration on the Configurator page.
The OpenSSO Enterprise Custom Configuration Wizard is displayed.
3 Provide the following information for the Default User [amAdmin] in Step 1: General and click
Next.
Password ossoadmin
Confirm ossoadmin
4 Accept the default values in Step 2: Server Settings and click Next
10 (Optional) To verify that the config directory and the supporting bootstrap directory have
been created with the proper permissions, do the following.
198 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.4 Configuring the OpenSSO Enterprise Platform Service
total 130556
drwxr-xr-x 8 osso80adm staff 512 Aug 6 19:32 .
drwxr-xr-x 14 root sys 512 Aug 6 09:07 ..
-rw-r--r-- 1 osso80adm staff 70 Mar 27 14:01 .asadminpass
-rw------- 1 osso80adm staff 1527 Aug 6 18:27 .asadmintruststore
-rw-r--r-- 1 osso80adm staff 144 Mar 11 17:02 .profile
drwx------ 3 osso80adm staff 512 Mar 24 11:20 .sunw
drwxr-xr-x 4 osso80adm staff 512 Aug 6 19:34 config
drwxr-xr-x 4 osso80adm staff 512 Aug 6 18:26 domains
-rw-r--r-- 1 osso80adm staff 136 Mar 11 17:02 local.cshrc
-rw-r--r-- 1 osso80adm staff 157 Mar 11 17:02 local.login
-rw-r--r-- 1 osso80adm staff 174 Mar 11 17:02 local.profile
The config directory was created and is owned by non-root user osso80adm.
5 Enter the following values for the load balancer and click OK.
Name sp-site
Primary URL https://lb2.sp-example.com:1081/opensso
A new site called sp-site is displayed in the Sites list.
7 Assign sp-site from the Parent Site drop down list and click Save.
9 Enter the number generated for the osso1.sp-example.com host machine as the value of the
com.iplanet.am.lbcookie.value property and click Save.
The number was generated using the makecookie command in “To Configure OpenSSO
Enterprise Load Balancer 2” on page 185.
12 Assign sp-site from the Parent Site drop down list and click Save.
14 Enter the number generated for the osso2.sp-example.com host machine as the value of the
com.iplanet.am.lbcookie.value property and click Save.
The number was generated using the makecookie command in “To Configure OpenSSO
Enterprise Load Balancer 2” on page 185.
200 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.4 Configuring the OpenSSO Enterprise Platform Service
Note – You should see sp-site under the Site Name column for both servers.
2 When the OpenSSO Enterprise login page is displayed, verify that the browser URL still contains
the Primary Site URL for the load balancer.
If it does not contain the Site URL, the site configuration is incorrect. If the site configuration is
correct, all browser interactions will occur through the secure Site URL.
202 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
8.5 Configuring OpenSSO Enterprise for SAML v2
3 Click the Access Control tab and / (Top-level Realm) on the Access Control page.
This chapter contains instructions on configuring OpenSSO Enterprise to use the external user
data store (set up in Chapter 4, “Installing Sun Java System Directory Server and Creating
Instances for User Data”) for authentication credentials. This is done by modifying the top-level
realm or, alternately, configuring a sub realm for the external users and creating an
authentication chain. Choose either of the sections listed to configure OpenSSO Enterprise for
user authentication.
■ “6.1 Modifying the Top-Level Realm for Test Users” on page 115
■ “6.2 Creating and Configuring a Sub Realm for Test Users” on page 117
205
9.1 Modifying the Top-Level Realm for Test Users
4 Click / (Top Level Realm), the root realm, under the Access Control tab.
6 Click embedded.
The Generic LDAPv3 properties page is displayed.
7 On the Generic LDAPv3 properties page, set the following attribute values and click Save.
LDAP People Container Naming Attribute
Enter ou.
LDAP Groups Container Value
Enter Groups.
LDAP Groups Container Naming Attribute
Enter ou.
LDAP People Container Value
Enter users.
Note – If this field is empty, the search for user entries will start from the root suffix.
9 (Optional) Click the Subjects tab to verify that the test users are now displayed.
spuser is displayed under Users (as well as others created during OpenSSO Enterprise
configuration).
206 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
9.2 Creating and Configuring a Sub Realm for Test Users
13 Click Save.
a demarcation between OpenSSO Enterprise configuration and administrative data and the
user data. Use the following list of procedures as a checklist for completing this task.
1. “To Create a Sub Realm” on page 118
2. “To Change the User Profile Configuration for the Sub Realm” on page 119
3. “To Modify the Sub Realm for User Authentication” on page 119
4. “To Verify That the Sub Realm Can Access the External User Data Store” on page 120
5. “To Verify That the Sub Realm Subjects Can Successfully Authenticate” on page 121
6 Click OK.
The users realm is listed as a sub realm of / (Top Level Realm), the root realm.
208 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
9.2 Creating and Configuring a Sub Realm for Test Users
5 Click Save.
1 Click users, the sub realm, under the Access Control tab.
3 Click embedded.
The Generic LDAPv3 properties page is displayed.
4 On the Generic LDAPv3 properties page, set the following attribute values and click Save.
LDAP People Container Naming Attribute
Enter ou.
LDAP Groups Container Value
Enter Groups.
LDAP Groups Container Naming Attribute
Enter ou.
Note – If this field is empty, the search for user entries will start from the root suffix.
6 (Optional) Click the Subjects tab to verify that the test users are now displayed.
spuser is displayed under Users (as well as others created during OpenSSO Enterprise
configuration).
210 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
9.2 Creating and Configuring a Sub Realm for Test Users
In this deployment, protected resources are hosted on one machine that contains two installed
web containers (one Sun JavaTM System Web Server and one BEA WebLogic Server application
server) and the appropriate policy agent for each (a web policy agent and a J2EE policy agent,
respectively). The policy agents are configured to access the OpenSSO Enterprise Load Balancer
4. This chapter contains the following sections:
■ “10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1” on
page 213
■ “10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1” on page 231
213
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
Before You Begin Ensure that your machine is properly patched. Refer to the BEA web site to make sure that your
system has the recommended patches.
2 Create a directory into which you can download the WebLogic Server bits and change into it.
# mkdir /export/BEAWL10
# cd /export/BEAWL10
total 294548
drwxr-xr-x 2 root root 512 Aug 7 13:23 .
drwxr-xr-x 3 root sys 512 Aug 7 13:16 ..
-rw-r--r-- 1 root root 656834948 Aug 7 13:24 server100_solaris32.bin
214 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
total 90
drwxr-xr-x 7 root root 512 Jul 15 11:59 .
drwxr-xr-x 4 root root 512 Jul 15 11:58 ..
-rwxr-xr-x 1 root root 826 Jul 15 11:59 UpdateLicense.sh
-rw-r--r-- 1 root root 14 Jul 15 11:59 beahomelist
drwxr-xr-x 6 root root 512 Jul 15 11:59 jdk150_06
-rw-r--r-- 1 root root 12447 Jul 15 11:59 license.bea
drwxr-xr-x 2 root root 512 Jul 15 11:59 logs
drwxr-xr-x 6 root root 6656 Jul 15 11:58 modules
-rw-r--r-- 1 root root 15194 Jul 15 11:59 registry.dat
-rw-r--r-- 1 root root 1077 Jul 15 11:59 registry.xml
drwxr-xr-x 4 root root 512 Jul 15 12:01 utils
drwxr-xr-x 10 root root 512 Jul 15 11:59 weblogic10
Configure Administrator Username and Password Enter the following and click Next.
■ Username: weblogic
■ Password: bea10admin
■ Confirm Password: bea10admin
Customize Environment and Services Settings Select yes and click Next.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 215
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
Configure the Administration Server Accept the default values and click Next.
Configure Managed Servers Select Add, enter the following values, and
click Next.
■ Name: ApplicationServer-1
■ Listen Port: 1081
Configure Machines Select the Unix Machine tab, then select Add,
type pr1 and click Next.
Assign Servers to Machines From the left panel select AdminServer and
ApplicationServer-1. From the right panel
select pr-1. Click --> and then click Next.
4 Run the netstat command to verify that the port is open and listening.
# netstat -an | grep 7001
Note – You can also access the administration console by pointing a web browser to
http://pr1.sp-example.com:7001/console.
216 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
7 Create a boot.properties file for the WebLogic Server administration server administrator
credentials.
The administration server administrative user and password are stored in boot.properties.
Application Server 1 uses this information during startup. WebLogic Server encrypts the file, so
there is no security risk even if you enter the user name and password in clear text.
# cat > boot.properties
username=weblogic
password=bea10admin
^D
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 217
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
12 Create a boot.properties file for the WebLogic Server managed server administrator
credentials.
The managed server administrative user and password are stored in boot.properties. The
Application Server 1 managed server uses this information during startup. WebLogic Server
encrypts the file, so there is no security risk even if you enter the user name and password in
clear text.
# cat > boot.properties
username=weblogic
password=bea10admin
^D
14 Run the netstat command to verify that the port is open and listening.
# netstat -an | grep 1081
218 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
Before You Begin Copy the same CA root certificate used in “To Install a CA Root Certificate to OpenSSO
Enterprise Load Balancer 2” on page 184 to the /export/software directory on the
pr1.sp-example.com host machine.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 219
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
2 Stop the WebLogic Server 1 administration server and the WebLogic Server 1 managed
instance.
# cd /usr/local/bea/user_projects/domains/pr1/bin
# ./stopManagedWebLogic.sh ApplicationServer-1 t3://localhost:7001
# ./stopWebLogic.sh
3 Create a directory into which you will download the J2EE Policy Agent bits and change into it.
# mkdir /export/J2EEPA1
# cd /export/J2EEPA1
4 Create a text file that contains a password for the Agent Profile created during installation.
The J2EE Policy Agent installer requires this.
# cat > agent.pwd
j2eeagent1
^D
5 Download the J2EE policy agent bits for WebLogic Server from
http://www.sun.com/download/index.jsp.
# ls -al
total 18824
drwxr-xr-x 2 root root 512 Jul 17 16:02 .
drwxr-xr-x 8 root root 512 Jul 17 15:58 ..
-rw-r--r-- 1 root root 11 Jul 17 15:59 agent.pwd
-rw-r--r-- 1 root root 9 Jul 17 16:01 agentadm.pwd
-rw-r--r-- 1 root root 9623704 Jul 17 16:02 weblogic_v10_agent_3.zip
220 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
Please read the following License Agreement carefully: Press Enter to continue. Continue to press
Enter until you reach the end of the
License Agreement and the installer's
Welcome page is displayed.
Enter the WebLogic Server instance Enter the name of the WebLogic Server
name: [AdminServer] instance secured by the agent
ApplicationServer-1
Is the agent being deployed on a Portal domain [false] Accept the default value.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 221
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
This Agent Profile does not exist in Accept the default value to create the
OpenSSO Enterprise. Agent Profile during installation.
Will it be created by the installer? (Agent
Administrator name and password are required)
[true]:
222 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
When the installer is finished, a new file is in the bin directory called
setAgentEnv_ApplicationServer-1.sh.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 223
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
12 Verify that the J2EE Policy Agent 1 was successfully created in OpenSSO Enterprise using the
following sub procedure.
f. Click j2eeagent-1.
The j2eeagent-1 properties page is displayed.
g. Log out of the OpenSSO Enterprise console and close the browser.
224 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
installation process. For example, during the installation process, if you entered /agentapp as
the deployment URI for the agent application, use that same context path in this procedure.
4 On the Summary of Deployments page, in the Change Center, click Lock & Edit.
10 In the Install Application Assistant page, choose Install this deployment as an application and click
Next.
11 In the list of Servers, mark the checkbox for ApplicationServer-1 and click Next.
13 Click Finish.
17 On the Summary of Deployments page, mark the agentapp checkbox and click Start > Servicing
all requests.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 225
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
Tip – If you encounter a JavaScriptTM error, start the WebLogic Server instance and perform the
steps again.
9 In the Install Application Assistant page, choose Install this deployment as an application and click
Next.
10 In the list of Servers, mark the checkbox for ApplicationServer-1 and click Next.
11 On the Optional Settings page, click Next to accept the default settings.
226 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
16 In the Deployments list, mark the checkbox for agentsample and click Start > Servicing All
Requests.
6 Click j2eeagent-1.
The j2eeagent-1 properties page is displayed.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 227
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
8 Provide the user name of the Application Server administrator in the Bypass Principal List and
click Add.
Enter weblogic to ensure that the administrator will be authenticated against WebLogic itself
and not OpenSSO Enterprise.
9 Click Save.
6 Click j2eeagent-1.
The j2eeagent-1 properties page is displayed.
9 Add the following values to the New Value text boxes and click Add.
Map Key agentsample
Corresponding Map Value SSO_ONLY
10 Click Save.
228 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
11 Log out of the OpenSSO Enterprise console and close the browser.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 229
10.1 Installing the J2EE Container and J2EE Policy Agent on Protected Resource 1
6 Click j2eeagent-1.
The j2eeagent-1 properties page is displayed.
10 Enter https://lb4.sp-example.com:1081/opensso/spssoinit?
metaAlias=/sp&idpEntityID=https://lb2.idp-example.com:1181/opensso in the text box
and click Add.
This URL redirects the agent to the identity provider for authentication.
11 Enter https://lb4.sp-example.com:1081/opensso/saml2/jsp/spSingleLogoutInit.jsp?
idpEntityID=https://lb2.idp-example.com:1181/opensso as a value of the OpenSSO
Logout URL attribute and click Add.
This URL redirects the agent to the identity provider for authentication.
12 Click Save.
14 Add the following values to the Application Logout URI text boxes and click Add.
Map Key agentsample
Corresponding Map Value /agentsample/logout
15 Click Save.
16 Log out of the OpenSSO Enterprise console and close the browser.
230 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
# ./stopWebLogic.sh
# ./startWebLogic.sh
# ./startManagedWebLogic.sh ApplicationServer-1 t3://localhost:7001
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 231
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
Before You Begin Read the latest version of the Web Server 7.0 Release Notes to determine if you need to install
patches on your host machine. In this case, the Release Notes indicate that based on the
hardware and operating system being used, patch 119963–08, patch 120011–14, and patch
117461–08 are required.
3 Make a directory for downloading the patch you need and change into it.
# mkdir /export/patches
# cd /export/patches
Note – Signed patches are downloaded as JAR files. Unsigned patches are downloaded as ZIP
files.
232 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
7 After installation is complete, run patchadd to verify that the patch was added successfully.
# patchadd -p | grep 119963–08
In this example, a series of patch numbers are displayed, and the patch 119963–08 is present.
1 Create a directory into which you can download the Web Server bits and change into it.
# mkdir /export/WS7
# cd /export/WS7
2 Download the Sun Java System Web Server 7.0 Update 3 software from
http://www.sun.com/download/products.xml?id=45ad781d.
Follow the instructions on the Sun Microsystems Product Downloads web site for downloading
the software.
4 Run setup.
# cd /export/WS7
# ./setup --console
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 233
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
Welcome to the Sun Java System Web Press Enter. Continue to press Enter
Server 7.0u3 installation wizard. when prompted.
...
You will be asked to specify preferences that
determine how Sun Java System Web Server 7.0U3
is installed and configured.
1. Express
2. Custom
3. Exit
1. Server Core
2. Server Core 64-biy Binaries
3. Administration Command Line Interface
4. Sample Applications
5. Language Pack
234 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
Create SMF services for server instances Accept the default value.
[yes/no] [no] {"," goes back, "!" exits}
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 235
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
1. Install Now
2. Start Over
3. Exit Installation
Installation Successful.
9 (Optional) Log out of the Web Server console and close the browser.
236 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
accept requests
info: CORE3274: successful server startup
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 237
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
2 Create a directory into which you can download the Web Server agent bits and change into it.
# mkdir /export/WebPA1
# cd /export/WebPA1
webagent1
^D
4 Download the web policy agent for Web Server from http://www.sun.com/download/.
# ls -al
total 7512
drwxr-xr-x 2 root root 512 Jul 24 14:48 .
drwxr-xr-x 11 root root 512 Jul 24 14:41 ..
-rw-r--r-- 1 root root 10 Jul 24 14:42 agent.pwd
-rw-r--r-- 1 root root 9 Jul 24 14:42 agentadm.pwd
238 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
Please read the following License Press Enter and continue to press Enter
Agreement carefully: until you have reached the end of the
License Agreement.
Do you completely agree with all the terms and Type yes and press Enter.
conditions of this License Agreement (yes/no): [no]:
Enter the Sun Java System Web Server Config Type /opt/SUNWwbsvr/
Directory Path [/var/opt/SUNWwbsvr7/ https-pr1.sp-example.com/config and
https-pr1.sp-example.com/config]: press Enter.
Enter the Agent profile name Type webagent-1 and press Enter.
[UrlAccessAgent]:
Enter the path to a file that contains the Type /export/WebPA1/agent.pwd and
password to be used for identifying the Agent. press Enter.
Note – A warning message is displayed
regarding the existence of the agent
profile.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 239
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
9 Verify that the Web Policy Agent was successfully created in OpenSSO Enterprise using the
following sub procedure.
240 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
e. Click webagent-1.
The webagent-1 properties page is displayed.
6 Click webagent-1.
The webagent-1 properties page is displayed.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 241
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
8 Select the check box to enable the SSO Mode Only property.
9 Click Save.
10 Log out of the OpenSSO Enterprise console and close the browser.
242 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
6 Click webagent-1.
The webagent-1 properties page is displayed.
10 Enter https://lb4.sp-example.com:1081/opensso/spssoinit?
metaAlias=/sp&idpEntityID=https://lb2.idp-example.com:1181/opensso in the text box
and click Add.
This URL redirects the agent to the identity provider for authentication.
11 Select the existing value of the OpenSSO Logout URL attribute and click Delete.
12 Enter https://lb4.sp-example.com:1081/opensso/saml2/jsp/spSingleLogoutInit.jsp?
metaAlias=/sp&idpEntityID=https://lb2.idp-example.com:1181/opensso in the text box
and click Add.
13 Enter http://www.sun.com as a value of the Logout Redirect URL attribute and click Add.
15 Click Save.
16 Log out of the OpenSSO Enterprise console and close the browser.
Chapter 10 • Configuring the Service Provider Protected Resource Host Machine 243
10.2 Installing the Web Server and Web Policy Agent on Protected Resource 1
244 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
P A R T I V
245
246
11
C H A P T E R 1 1
This deployment consists of a service provider and an identity provider that communicate for
purposes of federation using SAML v2. Towards this end, we configure each instance of
OpenSSO Enterprise (respectively) acting as the identity provider and the service provider as
hosted. Additionally, we configure each hosted instance with the necessary information to
communicate with the remote provider — in essence, with each other. In this chapter, we
configure the instances of OpenSSO Enterprise as SAML v2 providers.
■ “11.1 Configuring OpenSSO Enterprise as the Hosted Identity Provider” on page 247
■ “11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider” on page 253
■ “11.3 Configuring the Hosted Service Provider to Communicate with the Remote Identity
Provider” on page 263
247
11.1 Configuring OpenSSO Enterprise as the Hosted Identity Provider
4 Make the following changes on the Create a SAML v2 Identity Provider on this Server page.
■ Select the No radio button for Do you have metadata for this provider?
■ Under metadata properties, type https://lb2.idp-example.com:1081/opensso as the
value for Name.
■ Under metadata properties, select test as the value for Signing Key.
■ Under Circle of Trust properties, type idpcot as the value for the New Circle of Trust.
■ Accept the default values for any remaining properties.
5 Click Configure.
7 Click the Federation tab to verify the hosted identity provider configurations.
■ Confirm that idpcot was created under the Circle of Trust table with one entity:
https://lb2.idp-example.com:1081/opensso|saml2.
■ Confirm that https://lb2.idp-example.com:1081/opensso|saml2 was created under the
Entity Providers table.
Before You Begin This procedure assumes that you have just completed “To Configure the Hosted Identity
Provider” on page 247 and are still logged in to the OpenSSO Enterprise console.
248 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.1 Configuring OpenSSO Enterprise as the Hosted Identity Provider
2 Click export-entity.
The export-entity page is displayed.
3 Enter the following values for each option and click Submit.
entityid The EntityID is the unique uniform resource identifier (URI) used to
identify a particular provider. In this deployment, type
https://lb2.idp-example.com:1081/opensso.
realm The OpenSSO Enterprise realm in which the data resides. In this
deployment as all data resides in the top-level realm, type /.
sign Leave this unchecked.
meta-data-file Set this flag to export the standard metadata for the provider.
extended-data-file Set this flag to export the extended metadata for the provider.
spec Type saml2.
</KeyDescriptor>
<ArtifactResolutionService index="0" isDefault="true" Binding=
"urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location=
"https://lb2.idp-example.com:1081/opensso/ArtifactResolver/metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:
HTTP-Redirect" Location="https://lb2.idp-example.com:1081/opensso/
IDPSloRedirect/metaAlias/idp" ResponseLocation="
https://lb2.idp-example.com:1081/opensso/IDPSloRedirect/metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:
HTTP-POST" Location="https://lb2.idp-example.com:1081/opensso/IDPSloPOST/
metaAlias/idp" ResponseLocation="https://lb2.idp-example.com:1081/opensso/
IDPSloPOST/metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb2.idp-example.com:1081/opensso/IDPSloSoap/metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:
HTTP-Redirect" Location="https://lb2.idp-example.com:1081/opensso/
IDPMniRedirect/metaAlias/idp" ResponseLocation=
"https://lb2.idp-example.com:1081/opensso/IDPMniRedirect/metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://lb2.idp-example.com:1081/opensso/IDPMniPOST/metaAlias/idp"
ResponseLocation="https://lb2.idp-example.com:1081/opensso/
IDPMniPOST/metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb2.idp-example.com:1081/opensso/IDPMniSoap/metaAlias/idp"/>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://lb2.idp-example.com:1081/opensso/SSORedirect/metaAlias/idp"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://lb2.idp-example.com:1081/opensso/SSOPOST/metaAlias/idp"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb2.idp-example.com:1081/opensso/SSOSoap/metaAlias/idp"/>
<NameIDMappingService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb2.idp-example.com:1081/opensso/NIMSoap/metaAlias/idp"/>
<AssertionIDRequestService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb2.idp-example.com:1081/opensso/AIDReqSoap/
IDPRole/metaAlias/idp"/>
<AssertionIDRequestService Binding="urn:oasis:names:tc:SAML:2.0:bindings:URI"
Location="https://lb2.idp-example.com:1081/opensso/AIDReqUri/
IDPRole/metaAlias/idp"/>
</IDPSSODescriptor>
</EntityDescriptor>
250 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.1 Configuring OpenSSO Enterprise as the Hosted Identity Provider
<Attribute name="idpAuthncontextMapper">
<Value>com.sun.identity.saml2.plugins.
DefaultIDPAuthnContextMapper</Value>
</Attribute>
<Attribute name="assertionEffectiveTime">
<Value>600</Value>
</Attribute>
<Attribute name="wantMNIResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantMNIRequestSigned">
<Value/>
</Attribute>
<Attribute name="attributeMap">
<Value>EmailAddress=mail</Value>
<Value>Telephone=telephonenumber</Value>
</Attribute>
<Attribute name="discoveryBootstrappingEnabled">
<Value>false</Value>
</Attribute>
<Attribute name="basicAuthUser">
<Value/>
</Attribute>
<Attribute name="idpAttributeMapper">
<Value>com.sun.identity.saml2.plugins.
DefaultIDPAttributeMapper</Value>
</Attribute>
<Attribute name="idpECPSessionMapper">
<Value>com.sun.identity.saml2.plugins.
DefaultIDPECPSessionMapper</Value>
</Attribute>
<Attribute name="basicAuthPassword">
<Value/>
</Attribute>
<Attribute name="basicAuthOn">
<Value>false</Value>
</Attribute>
<Attribute name="wantLogoutResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantLogoutRequestSigned">
<Value/>
</Attribute>
<Attribute name="encryptionCertAlias">
<Value/>
</Attribute>
<Attribute name="wantArtifactResolveSigned">
252 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider
<Value/>
</Attribute>
<Attribute name="assertionNotBeforeTimeSkew">
<Value>600</Value>
</Attribute>
<Attribute name="autofedAttribute">
<Value/>
</Attribute>
<Attribute name="saeAppSecretList"/>
</IDPSSOConfig>
</EntityConfig>
4 Make the following changes on the Create a SAML v2 Service Provider on this Server page.
■ Select the No radio button for Do you have metadata for this provider?
■ Under metadata properties, type https://lb4.sp-example.com:1081/opensso as the
value for Name.
■ Under metadata properties, select test as the value for Signing Key.
■ Under Circle of Trust properties, select the Add to New radio button and type spcot as the
value for the New Circle of Trust.
■ Accept the default values for any remaining properties.
5 Click Configure.
A pop up screen is displayed that reads:
Service provider is configured.
You can modify the provider’s profile under the Federation tab.
Before You Begin This procedure assumes that you have just completed “To Configure the Hosted Service
Provider” on page 253 and are still logged in to the OpenSSO Enterprise console.
254 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider
2 Click export-entity.
The export-entity page is displayed.
3 Enter the following values for each option and click Submit.
entityid The EntityID is the unique uniform resource identifier (URI) used to
identify a particular provider. In this deployment, type
https://lb4.sp-example.com:1081/opensso.
realm The OpenSSO Enterprise realm in which the data resides. In this
deployment as all data resides in the top-level realm, type /.
sign Leave this box unchecked.
meta-data-file Set this flag to export the standard metadata for the provider.
extended-data-file Set this flag to export the extended metadata for the provider.
spec Type saml2.
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:
SAML:2.0:bindings:HTTP-Artifact" Location="https://lb4.sp-example.com:1081/opensso/
Consumer/metaAlias/sp"/>
<AssertionConsumerService index="1" Binding="urn:oasis:names:tc:SAML:2.0:bindings:
HTTP-POST" Location="https://lb4.sp-example.com:1081/opensso/
Consumer/metaAlias/sp"/>
<AssertionConsumerService index="2" Binding="urn:oasis:names:tc:SAML:2.0:
bindings:PAOS" Location="https://lb4.sp-example.com:1081/opensso/Consumer/
ECP/metaAlias/sp"/>
</SPSSODescriptor>
<IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration=
"urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+
RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
/FfwWigmrW0Y0Q==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<ArtifactResolutionService index="0" isDefault="true" Binding="urn:oasis:
names:tc:SAML:2.0:bindings:SOAP" Location="https://lb4.sp-example.com:1081/
opensso/ArtifactResolver/metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://lb4.sp-example.com:1081/opensso/IDPSloRedirect/metaAlias/idp"
ResponseLocation="https://lb4.sp-example.com:1081/opensso/IDPSloRedirect/
metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://lb4.sp-example.com:1081/opensso/IDPSloPOST/metaAlias/idp"
ResponseLocation="https://lb4.sp-example.com:1081/opensso/IDPSloPOST/
metaAlias/idp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb4.sp-example.com:1081/opensso/IDPSloSoap/metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://lb4.sp-example.com:1081/opensso/IDPMniRedirect/metaAlias/idp"
256 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider
ResponseLocation="https://lb4.sp-example.com:1081/opensso/IDPMniRedirect/
metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://lb4.sp-example.com:1081/opensso/IDPMniPOST/metaAlias/idp"
ResponseLocation="https://lb4.sp-example.com:1081/opensso/IDPMniPOST/
metaAlias/idp"/>
<ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb4.sp-example.com:1081/opensso/IDPMniSoap/metaAlias/idp"/>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:
persistent</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:
transient</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:
emailAddress</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:
unspecified</NameIDFormat>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:
HTTP-Redirect" Location="https://lb4.sp-example.com:1081/opensso/
SSORedirect/metaAlias/idp"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://lb4.sp-example.com:1081/opensso/SSOPOST/metaAlias/idp"/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb4.sp-example.com:1081/opensso/SSOSoap/metaAlias/idp"/>
<NameIDMappingService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb4.sp-example.com:1081/opensso/NIMSoap/metaAlias/idp"/>
<AssertionIDRequestService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://lb4.sp-example.com:1081/opensso/AIDReqSoap/IDPRole/
metaAlias/idp"/>
<AssertionIDRequestService Binding="urn:oasis:names:tc:SAML:2.0:bindings:URI"
Location="https://lb4.sp-example.com:1081/opensso/AIDReqUri/IDPRole/
metaAlias/idp"/>
</IDPSSODescriptor>
</EntityDescriptor>
<Attribute name="enableIDPProxy">
<Value>false</Value>
</Attribute>
<Attribute name="ECPRequestIDPListGetComplete">
<Value/>
</Attribute>
<Attribute name="cotlist">
<Value>spcot</Value>
</Attribute>
<Attribute name="transientUser">
<Value>anonymous</Value>
</Attribute>
<Attribute name="spAuthncontextComparisonType">
<Value>exact</Value>
</Attribute>
<Attribute name="wantAssertionEncrypted">
<Value/>
</Attribute>
<Attribute name="spAdapter">
<Value/>
</Attribute>
<Attribute name="spAuthncontextClassrefMapping">
<Value>urn:oasis:names:tc:SAML:2.0:ac:classes:
PasswordProtectedTransport|0|default</Value>
</Attribute>
<Attribute name="appLogoutUrl">
<Value/>
</Attribute>
<Attribute name="saml2AuthModuleName">
<Value/>
</Attribute>
<Attribute name="autofedEnabled">
<Value>true</Value>
</Attribute>
<Attribute name="localAuthURL">
<Value/>
</Attribute>
<Attribute name="spAttributeMapper">
<Value>com.sun.identity.saml2.plugins.DefaultSPAttributeMapper</Value>
</Attribute>
<Attribute name="signingCertAlias">
<Value/>
</Attribute>
<Attribute name="wantMNIResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantMNIRequestSigned">
258 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider
<Value/>
</Attribute>
<Attribute name="attributeMap">
<Value>EmailAddress=EmailAddress</Value>
<Value>Telephone=Telephone</Value>
</Attribute>
<Attribute name="saeSPUrl">
<Value>https://lb4.sp-example.com:1081/opensso/spsaehandler/
metaAlias/sp</Value>
</Attribute>
<Attribute name="responseArtifactMessageEncoding">
<Value>URI</Value>
</Attribute>
<Attribute name="idpProxyCount">
<Value>0</Value>
</Attribute>
<Attribute name="basicAuthUser">
<Value/>
</Attribute>
<Attribute name="useIntroductionForIDPProxy">
<Value>false</Value>
</Attribute>
<Attribute name="wantArtifactResponseSigned">
<Value/>
</Attribute>
<Attribute name="intermediateUrl">
<Value/>
</Attribute>
<Attribute name="defaultRelayState">
<Value/>
</Attribute>
<Attribute name="basicAuthPassword">
<Value/>
</Attribute>
<Attribute name="wantPOSTResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantAttributeEncrypted">
<Value/>
</Attribute>
<Attribute name="basicAuthOn">
<Value>false</Value>
</Attribute>
<Attribute name="spAdapterEnv"/>
<Attribute name="saeSPLogoutUrl">
<Value>https://lb4.sp-example.com:1081/opensso/samples/
saml2/sae/saeSPApp.jsp</Value>
</Attribute>
<Attribute name="ECPRequestIDPListFinderImpl">
<Value>com.sun.identity.saml2.plugins.ECPIDPFinder</Value>
</Attribute>
<Attribute name="wantLogoutResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantLogoutRequestSigned">
<Value/>
</Attribute>
<Attribute name="encryptionCertAlias">
<Value/>
</Attribute>
<Attribute name="spAuthncontextMapper">
<Value>com.sun.identity.saml2.plugins.DefaultSPAuthnContextMapper</Value>
</Attribute>
<Attribute name="assertionTimeSkew">
<Value>300</Value>
</Attribute>
<Attribute name="ECPRequestIDPList"/>
<Attribute name="autofedAttribute">
<Value>mail</Value>
</Attribute>
<Attribute name="saeAppSecretList">
<Value>url=https://lb4.sp-example.com:1081/opensso/samples/saml2/sae/
saeSPApp.jsp|type=symmetric|secret=AQICIbz4afzilWzbmo6QD9lQ9
U4kEBrMlvZy</Value>
</Attribute>
</SPSSOConfig>
<IDPSSOConfig metaAlias="/idp">
<Attribute name="description">
<Value/>
</Attribute>
<Attribute name="signingCertAlias">
<Value>test</Value>
</Attribute>
<Attribute name="encryptionCertAlias">
<Value/>
</Attribute>
<Attribute name="basicAuthOn">
<Value>false</Value>
</Attribute>
<Attribute name="basicAuthUser">
<Value/>
</Attribute>
<Attribute name="basicAuthPassword">
<Value/>
260 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.2 Configuring OpenSSO Enterprise as the Hosted Service Provider
</Attribute>
<Attribute name="autofedEnabled">
<Value>false</Value>
</Attribute>
<Attribute name="autofedAttribute">
<Value/>
</Attribute>
<Attribute name="assertionEffectiveTime">
<Value>600</Value>
</Attribute>
<Attribute name="idpAuthncontextMapper">
<Value>com.sun.identity.saml2.plugins.DefaultIDPAuthnContextMapper</Value>
</Attribute>
<Attribute name="idpAuthncontextClassrefMapping">
<Value>urn:oasis:names:tc:SAML:2.0:ac:classes:
PasswordProtectedTransport|0||default</Value>
</Attribute>
<Attribute name="idpAccountMapper">
<Value>com.sun.identity.saml2.plugins.DefaultIDPAccountMapper</Value>
</Attribute>
<Attribute name="idpAttributeMapper">
<Value>com.sun.identity.saml2.plugins.DefaultIDPAttributeMapper</Value>
</Attribute>
<Attribute name="assertionIDRequestMapper">
<Value>com.sun.identity.saml2.plugins.DefaultAssertionIDRequestMapper</Value>
</Attribute>
<Attribute name="nameIDFormatMap">
<Value>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress=mail</Value>
<Value>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName=</Value>
<Value>urn:oasis:names:tc:SAML:1.1:nameid-format:
WindowsDomainQualifiedName=</Value>
<Value>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos=</Value>
<Value>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified=</Value>
</Attribute>
<Attribute name="idpECPSessionMapper">
<Value>com.sun.identity.saml2.plugins.DefaultIDPECPSessionMapper</Value>
</Attribute>
<Attribute name="attributeMap"/>
<Attribute name="wantNameIDEncrypted">
<Value/>
</Attribute>
<Attribute name="wantArtifactResolveSigned">
<Value/>
</Attribute>
<Attribute name="wantLogoutRequestSigned">
<Value/>
</Attribute>
<Attribute name="wantLogoutResponseSigned">
<Value/>
</Attribute>
<Attribute name="wantMNIRequestSigned">
<Value/>
</Attribute>
<Attribute name="wantMNIResponseSigned">
<Value/>
</Attribute>
<Attribute name="cotlist">
<Value>spcot</Value>
</Attribute>
<Attribute name="discoveryBootstrappingEnabled">
<Value>false</Value>
</Attribute>
<Attribute name="assertionCacheEnabled">
<Value>false</Value>
</Attribute>
<Attribute name="assertionNotBeforeTimeSkew">
<Value>600</Value>
</Attribute>
<Attribute name="saeAppSecretList"/>
<Attribute name="saeIDPUrl">
<Value>https://lb4.sp-example.com:1081/opensso/idpsaehandler/metaAlias/
idp</Value>
</Attribute>
<Attribute name="AuthUrl">
<Value/>
</Attribute>
<Attribute name="appLogoutUrl">
<Value/>
</Attribute>
</IDPSSOConfig>
</EntityConfig>
262 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
11.3 Configuring the Hosted Service Provider to Communicate with the Remote Identity Provider
4 Make the following changes on the Create a SAML v2 Remote Identity Provider page.
■ Select the URL radio button for Where does the metadata file reside?
■ Type https://lb2.idp-example.com:1081/opensso/saml2/jsp/exportmetadata.jsp as
the value of URL where metadata is located.
■ Under Circle of Trust, select the Add to Exiting radio button and select the spcot circle of
trust from the drop down menu.
5 Click Configure.
Following are the SAML v2 profiles used for testing the SAML v2 configurations.
■ Federation
■ Single Logout
■ Single Sign On
■ Federation Termination
SAML v2 profiles can be initiated from the service provider side or from the identity provider
side of the deployment. There are two ways in which the SAML v2 configurations can be tested
and the procedures for these options are in the following sections.
■ “12.1 Using the OpenSSO Enterprise Common Tasks Wizard” on page 265
■ “12.2 Using Specially Constructed URLs” on page 267
265
12.1 Using the OpenSSO Enterprise Common Tasks Wizard
4 Select the radio button next to idpcot, the circle of trust that contains the providers you are
testing.
The providers in idpcot are displayed.
7 When displayed, log in to the OpenSSO Enterprise console on the identity provider side with the
following information.
Username idpuser
Password idpuser
With successful authentication, the OpenSSO Enterprise console on the service provider side is
displayed.
8 Log in to the OpenSSO Enterprise console on the service provider side with the following
information.
Username spuser
Password spuser
With successful authentication, the two accounts are linked. Single logout follows the successful
federation.
9 When displayed to test single sign on, log in to the OpenSSO Enterprise console on the identity
provider side with the following information.
Username idpuser
Password idpuser
Following successful authentication on the identity provider side, the user is logged in to the
service provider through a back channel, demonstrating single sign on. Finally, the user profile
federation is terminated. Thus, the following has occurred:
■ A user is successfully authenticated with two different providers and the user's separate
profiles are federated.
■ The user is logged out of both providers verifying single logout.
266 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
12.2 Using Specially Constructed URLs
■ The user is logged back in to both providers by providing credentials to only one of them
verifying single sign on.
■ The federation between the two user profiles is terminated.
Tests can be initiated from the identity provider side or the service provider side. The following
procedures provide the constructed URLs and procedures for accessing them.
■ “12.2.1 Testing Identity Provider Initiated URLs” on page 267
■ “12.2.2 Testing Service Provider Initiated URLs” on page 271
4 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
268 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
12.2 Using Specially Constructed URLs
The browser message “Single Sign-On succeeded” is displayed confirming that federation has
succeeded.
4 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
3 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
3 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
270 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
12.2 Using Specially Constructed URLs
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
4 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
272 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
12.2 Using Specially Constructed URLs
The browser message “Single Sign-On succeeded” is displayed confirming federation has
succeeded.
4 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
3 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
3 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
274 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
12.2 Using Specially Constructed URLs
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
2 (Optional) To view the SAML v2 assertion used, see the debug file in
/export/ossoadm/config/opensso/debug/Federation.
Secure Attribute Exchange (also referred to as Virtual Federation Proxy) provides a mechanism
for one application to communicate identity information to a second application in a different
domain. More specifically, it provides a secure gateway that enables legacy applications to
communicate authentication attributes without having to deal with federation protocols and
processing. Secure Attribute Exchange uses SAML v2 to transfer identity data between the
communicating entities. This chapter contains the following sections for setting up and testing
Secure Attribute Exchange.
■ “13.2 Establishing Trust Between Communicating Entities” on page 292
■ “13.3 Testing the Secure Attribute Exchange ” on page 296
Note – This chapter assumes you have completed Part II and Part III; in effect, creating two
domains that can communicate using SAML v2. In this test, we use symmetric key encryption
(one shared secret is used for both encryption and decryption) between all providers and
applications.
277
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
The following procedures will install one instance of Application Server as the web container
for both the identity provider and the service provider applications.
■ “To Patch the OpenSSO Enterprise Host Machines” on page 278
■ “To Install Application Server on the Secure Attribute Exchange Identity Provider Host
Machine” on page 279
■ “To Install Application Server on the Secure Attribute Exchange Service Provider Host
Machine” on page 282
■ “To Secure Communications from the Identity Provider Application” on page 285
■ “To Secure Communications from the Service Provider Application” on page 287
■ “To Modify the Identity Provider Web Container domain.xml Configuration File” on
page 289
■ “To Deploy the Client SDK on the Identity Provider Host Machine” on page 290
278 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
2 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
3 Download the Sun Java System Application Server 9.1 Update 1 binary from the Sun
Microsystems Product Download page to the /export/AS91 directory.
4 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_01-solaris-sparc.bin
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Application Server version [no]
{"<" goes back, "!" exits}?
280 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
2 Create a directory into which the Application Server bits can be downloaded and change into it.
# mkdir /export/AS91
# cd /export/AS91
3 Download the Sun Java System Application Server 9.1 Update 1 binary from the Sun
Microsystems Product Download page to the /export/AS91 directory.
4 Grant the downloaded binary execute permission using the chmod command.
# chmod +x sjsas-9_1_01-solaris-sparc.bin
282 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
1. Create Directory
2. Choose New.
The Sun Java System Application Server Press Enter to accept the default value.
requires a Java 2 SDK. Please provide the path to
a Java 2 SDK 5.0 or greater. [/usr/jdk/instances/jdk1.5.0]
{"<" goes back, "!" exits}
Supply the admin user’s password and override Press Enter to accept the default value.
any of the other initial configuration settings as
necessary.
Admin User’s Password (8 chars minimum): Enter domain1pwd and then re-enter
Re-enter Password: domain1pwd.
Do you want to store admin user name and Press Enter to accept the default value.
password in .asadminpass file in user’s home
directory [yes] {"<" goes back, "!" exits}?
Admin Port [4848] {"<" goes back, "!" exits} Press Enter to accept the three default
HTTP Port [8080] {"<" goes back, "!" exits} values.
HTTPS Port [8181] {"<" goes back, "!" exits}
Do you want to enable Updatecenter client Press Enter to accept the default value.
[yes] {"<" goes back, "!" exits}?
Do you want to upgrade from previous Press Enter to accept the default value.
Application Server version [no]
{"<" goes back, "!" exits}?
The following items for the product Sun Java Press Enter to accept the default value
System Application Server will be installed: and begin the installation process.
Ready To Install
1. Install Now
2. Start Over
3. Exit Installation
- Installation Successful.
284 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
2 Generate a private/public key pair and reference it with the alias, sae-idp.
sae-idp will be used in a later step to retrieve the public key which is contained in a self-signed
certificate.
# cd /opt/SUNWappserver91/domains/domain1/config
# keytool -genkey -noprompt -keyalg rsa -keypass changeit
-alias sae-idp -keystore keystore.jks -dname "CN=sae.idp-example.com,
OU=OpenSSO, O=Sun Microsystems, L=Santa Clara, ST=California, C=US"
-storepass changeit
3 Verify that the key pair was successfully created and stored in the certificate store using the
following command.
# keytool -list -v -keystore keystore.jks -storepass changeit
The output of this command lists a key entry with the alias sae-idp.
Note – The output of this command may list more than one certificate based on the entries in the
keystore.
8 Replace the self-signed public key certificate (associated with the s1as alias) with the server
certificate received from the CA.
# keytool -import -file sae-idp.cer -alias sae-idp
-keystore keystore.jks -storepass changeit
286 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
9 (Optional) Verify that the self-signed public key certificate has been overwritten by the server
certificate received from the CA.
# keytool -list -alias sae-idp -v -keystore keystore.jks
-storepass changeit
10 Change the certificate alias from the default s1as to the new sae-idp in the domain.xml file for
the domain1 domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="sae-idp" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
2 Generate a private/public key pair and reference it with the alias, sae-sp.
sae-sp will be used in a later step to retrieve the public key which is contained in a self-signed
certificate.
# cd /opt/SUNWappserver91/domains/domain1/config
# keytool -genkey -noprompt -keyalg rsa -keypass changeit
-alias sae-sp -keystore keystore.jks -dname "CN=sae.sp-example.com,
OU=OpenSSO, O=Sun Microsystems, L=Santa Clara, ST=California, C=US"
-storepass changeit
3 Verify that the key pair was successfully created and stored in the certificate store using the
following command.
# keytool -list -v -keystore keystore.jks -storepass changeit
The output of this command lists a key entry with the alias sae-sp.
Note – The output of this command may list more than one certificate based on the entries in the
keystore.
288 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
Valid from: Thu Sep 20 11:41:51 PDT 2007 until: Thu Jun 17 11:41:51 PDT 2010
Certificate fingerprints:
MD5: 78:7D:F0:04:8A:5B:5D:63:F5:EC:5B:21:14:9C:8A:B9
SHA1: A4:27:8A:B0:45:7A:EE:16:31:DC:E5:32:46:61:9E:B8:A3:20:8C:BA
8 Replace the self-signed public key certificate (associated with the s1as alias) with the server
certificate received from the CA.
# keytool -import -file sae-sp.cer -alias sae-sp
-keystore keystore.jks -storepass changeit
9 (Optional) Verify that the self-signed public key certificate has been overwritten by the server
certificate received from the CA.
# keytool -list -alias sae-sp -v -keystore keystore.jks
-storepass changeit
10 Change the certificate alias from the default s1as to the new sae-sp in the domain.xml file for
the domain1 domain.
The Application Server configuration file is domain.xml.
<http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server="server" enabled="true"
family="inet" id="http-listener-2" port="1081" security-enabled="true"
server-name="" xpowered-by="true">
<ssl cert-nickname="sae-sp" client-auth-enabled="false" ssl2-enabled="false"
ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
./asadmin start-domain
5 Verify that the certificate used for SSL communication is the root CA certificate.
b. View the details of the certificate in the security warning to ensure that it is Issued by
“OpenSSLTestCA”.
After inspecting and accepting the certificate, you should see the default index.html page.
1 Get the Client SDK WAR using the following sub procedure.
290 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.1 Installing Application Server for the Secure Attribute Exchange Configuration
4 Click Deploy.
The Deploy Enterprise Applications/Modules page is displayed.
5 Click the radio button next to Packaged file to be uploaded to the server and browse for the
opensso-client-jdk15.war WAR in the /export/OSSO_BITS/opensso/samples/war
directory.
8 (Optional) List the contents of the j2ee-modules directory to verify that the WAR was
successfully deployed.
total 6
drwxr-xr-x 3 root staff 512 Aug 15 14:01 .
drwxr-xr-x 6 root staff 512 Aug 15 14:55 ..
drwxr-xr-x 21 root staff 1024 Aug 15 14:01 opensso-client
Next Steps Add the IP address and host machine names to the /etc/hosts file on both the
sae.idp-example.com and the sae.idp-example.com host machines as well as the host
machine on which the browser is located.
Before You Begin Choose a shared secret for use between the identity provider application and the instance of
OpenSSO Enterprise on the identity provider side; in this procedure, secret12.
Note – In a real deployment the application would store this shared secret in an encrypted
file.
292 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.2 Establishing Trust Between Communicating Entities
Password: ossoadmin
5 Save the string for later use and close the browser window.
In this case, AQICrLO+CuXkZFna8uAS0/GiUUtwyQltVdw2.
9 Under SAE Configuration, type the following in the New Value text box of the Per Application
Security Configuration property and click Add.
url=https://sae.idp-example.com:8181/opensso/saml2/sae/
saeIDPApp.jsp|type=symmetric|secret=AQICrLO+CuXkZFna8uAS0/GiUUtwyQltVdw2
13 Under the Attribute Map property, type the following New Values and click Add.
■ mail=mail
■ branch=branch
These attributes will be sent as part of the SAML v2 assertion.
26 Under User Profile, select the Ignored radio button and click Save.
294 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.2 Establishing Trust Between Communicating Entities
Before You Begin Choose a shared secret for use between the service provider application and the instance of
OpenSSO Enterprise on the service provider side; in this procedure, secret12.
4 Save the string for later use and close the browser window.
In this case, AQICIbz4afzilWzbmo6QD9lQ9U4kEBrMlvZy.
8 Under Attribute Mapper, add the following new values to the Attribute Map property.
■ mail=mail
■ branch=branch
11 Click Save.
15 Type the following in the New Value field of the Per Application Security Configuration property
and click Add.
url=https://sae.sp-example.com:8181/opensso/saml2/sae/
saeSPApp.jsp|type=symmetric|secret=AQICIbz4afzilWzbmo6QD9lQ9U4kEBrMlvZy
22 Under User Profile, select the Ignored radio button and click Save.
296 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.3 Testing the Secure Attribute Exchange
Note – This test for Secure Attribute Exchange does not use the test users created in building the
SP and IDP Environment. The values of Userid on local IDP, Authenticated auth level, mail
attribute, and branch attribute are hard-coded in saeIDPApp.jsp as the default values for the
test. Because we have not created the hard-coded test user on the service provider side, we
previously set the User Profile to ignore on the service provider side.
4 Click ssourl.
The SAE SP APP SAMPLE page is displayed proving that Secure Attribute Exchange single
sign-on has succeeded.
SAE SP APP SAMPLE
Secure Attrs :
sun.authlevel 0
sun.spentityid https://lb4.sp-example.com:1081/opensso
branch mainbranch
sun.idpentityid https://lb2.idp-example.com:1081/opensso
mail [email protected]
5 Enter https://lb2.idp-example.com:1081/opensso/samples/saml2/sae/saeIDPApp.jsp
in the browser to regenerate the Secure Attributes Exchange IDP APP SAMPLE page.
The Secure Attributes Exchange IDP APP SAMPLE is regenerated and the following links are
displayed.
Click here to invoke the remote SP App via
http GET to local IDP : https://sae.sp-example.com:8181/
opensso/samples/saml2/sae/saeSPApp.jsp : ssourl
298 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
13.3 Testing the Secure Attribute Exchange
6 Click slourl.
The Secure Attributes Exchange IDP APP SAMPLE is displayed.
sun.spappurl=https://sae.sp-example.com:8181/opensso/
saml2/sae/saeSPApp.jsp
sun.idpappurl=https://sae.idp-example.com:8181/opensso/
saml2/sae/saeIDPApp.jsp
Click here to invoke the remote SP App via http GET to local IDP :
https://sae.sp-example.com:8181/opensso/saml2/sae/saeSPApp.jsp : ssourl
Click here to invoke the remote SP App via http POST to IDP :
https://sae.sp-example.com:8181/opensso/saml2/sae/saeSPApp.jsp
9 Click slourl.
The SAE SP APP SAMPLE page is displayed proving successful logout.
SAE SP APP SAMPLE
Secure Attrs :
sun.cmd logout
sun.returnurl https://lb4.sp-example.com:1081/opensso/SPSloRedirect/
metaAlias/sp?SAMLRequest=nZNva9swEMa%2FitHbkliS438iMQTCWErXpvUWxt5
d7HMqsCVPJ0P27WcnLaSDdlDQq5Oe%2Bz33cFoSdG2v7uzRDv4Jfw9IPghOXWtIna9
WbHBGWSBNykCHpHylyvW3OyXnXPXOelvZlgXbzYqRrKPDouKQQpOmnIsMRSMhgSgRIuU
gU55jLEQlWbBHR9qaFRvbjGqiAbeGPBg%2FljjPZjyfyfy7jFSUjOcXCzajNW3An1XP3
vekwrA9zJI5aWdxXtlOCZ6J0PZoiGxY7srWPmGtHVY%2B7NDDutVAIfUsuLf%2BwTy4d
ePR%2FQtcXIDFcgpAna25q0g%2BTgSI0E0eWXHlUc7xBF3fXrlsoFuGV4QX3P3Ycbv5B
C6YlI8DtLrR00z%2FpbOg3L2veS9VFnyxrgP%2Fsa2poutZc36qvANDGo1nhfwqbv78u
O334tGI26MRxzAWu%2F3NDp5%2FvsRxSeASR69KpGlPtqbG0yf2siC5iMe9SzMeJynK
KhVCZsAhr6s6y2OIDg1WUSq4uODfEovX4psPUvwF&RelayState=s212b785d4bda31
faa635552f1233bbbb3a2c5badb&sun.appreturn=true
Logout URL
Troubleshooting If there are issues running this test, see the OpenSSO Enterprise debug files located in the
/export/ossoadm/config/opensso/debug/Federation directory on both the identity
provider and the service provider sides.
300 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
14
C H A P T E R 1 4
In this deployment there is no user data on the service provider side so, because of this, we map
all identity provider users to an anonymous user which represents all users in the identity
provider user data store when it presents itself to the service provider. This use case illustrates
how you can pass user profile attributes from the identity provider to the service provider, and
from the service provider site to its agent-protected applications. Communication from the
identity provider to the service provider takes place using SAML v2 protocols. Communication
from the service provider to its agent-protected applications uses agent-to-LDAP attribute
mapping. This chapter contains the following sections.
■ “14.1 Creating a Test User” on page 301
■ “14.2 Configuring OpenSSO Enterprise for Attribute Mapping” on page 303
■ “14.3 Testing Attribute Mapping” on page 307
301
14.1 Creating a Test User
302 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
14.2 Configuring OpenSSO Enterprise for Attribute Mapping
6 Under Attribute Mapping, enter the following values and click Add.
EmailAddress=EmailAddress
Telephone=Telephone
7 Click Save.
The profile is updated.
Before You Begin This procedure assumes you have completed “To Create a Test User for Attribute Mapping” on
page 301.
304 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
14.2 Configuring OpenSSO Enterprise for Attribute Mapping
9 Select https://lb4.sp-example.com:1081/opensso/spssoinit?
metaAlias=/sp&idpEntityID=https://lb2.idp-example.com:1081/opensso in the
OpenSSO Login URL property box and click Delete.
10 Enter https://lb4.sp-example.com:1081/opensso/spssoinit?
metaAlias=/sp&idpEntityID=https://lb2.idp-example.com:1081/opensso&NameIDFormat=transient
in the OpenSSO Login URL text box and click Add.
11 Click Save.
The profile is updated.
306 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
14.3 Testing Attribute Mapping
10 Select HTTP_HEADER as the value for the Session Attribute Fetch Mode property.
11 Enter the following new values in the Session Attribute Map property text box and click Add.
Map Key Telephone
Corresponding Map Value Telephone
12 Enter the following new values in the Session Attribute Map property text box and click Add.
Map Key EmailAddress
Corresponding Map Value EmailAddress
13 Click Save.
The profile is updated.
308 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
14.3 Testing Attribute Mapping
connection keep-alive
emailaddress [email protected]
telephone 408-555-5454
Init parameters
Parameter: Value:
fork false
mappedfile false
logVerbosityLevel warning
com.sun.appserv.jsp.classpath /opt/SUNWwbsvr/lib/webserv-rt.jar:
/opt/SUNWwbsvr/lib/pwc.jar:/opt/SUNWwbsvr/lib/ant.jar:
/opt/SUNWwbsvr/jdk/lib/tools.jar:/opt/SUNWwbsvr/lib/ktsearch.jar:
/opt/SUNWwbsvr/lib/webserv-jstl.jar:/opt/SUNWwbsvr/lib/jsf-impl.jar:
/opt/SUNWwbsvr/lib/jsf-api.jar:/opt/SUNWwbsvr/lib/webserv-jwsdp.jar:
/opt/SUNWwbsvr/lib/container-auth.jar:/opt/SUNWwbsvr/lib/mail.jar:
/opt/SUNWwbsvr/lib/activation.jar:
httpMethods GET,HEAD,POST
Appendices
This final part of Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0
contains technical configurations and other information regarding this deployment.
■ Appendix A, “Identity Provider Directory Server Host Machines, Load Balancer and
Test User”
■ Appendix B, “Service Provider Directory Server Host Machines, Load Balancer and
Test User”
■ Appendix C, “Identity Provider OpenSSO Enterprise Host Machines and Load
Balancers”
■ Appendix D, “Service Provider OpenSSO Enterprise Host Machines and Load
Balancers”
■ Appendix E, “Service Provider Protected Resource Host Machine Web Containers and
Policy Agents”
■ Appendix F, “The snoop.jsp File”
■ Appendix G, “Known Issues and Limitations”
Note – The BIG-IP load balancer login page and configuration console for all load balancers
in this deployment example is accessed from the URL, is-f5.example.com.
Login username
Password password
311
312
A
A P P E N D I X A
This appendix collects the information regarding the Directory Server instances. It contains the
following tables:
■ Sun Java System Directory Server 1 Host Machine
■ Sun Java System Directory Server 2 Host Machine
■ Load Balancer for Directory Server Host Machines
■ Test User Entry
Components Description
313
Identity Provider Directory Server Host Machines, Load Balancer and Test User
TABLE A–1 Sun Java System Directory Server 1 Host Machine (Continued)
Components Description
Component Description
314 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Identity Provider Directory Server Host Machines, Load Balancer and Test User
Component Description
URL lb1.idp-example.com
Monitors ds1.idp-example.com:1736
ds2.idp-example.com:1736
UserID Description
DN uid=idpuser1,ou=users,dc=company,dc=com
Appendix A • Identity Provider Directory Server Host Machines, Load Balancer and Test User 315
316
B
A P P E N D I X B
This appendix collects the information regarding the Directory Server instances. It contains the
following tables:
■ Sun Java System Directory Server 1 Host Machine
■ Sun Java System Directory Server 2 Host Machine
■ Load Balancer for Directory Server Host Machines
■ Test User Entry
Components Description
317
Service Provider Directory Server Host Machines, Load Balancer and Test User
TABLE B–1 Sun Java System Directory Server 1 Host Machine (Continued)
Components Description
Component Description
318 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Service Provider Directory Server Host Machines, Load Balancer and Test User
Component Description
URL lb3.sp-example.com
Monitors ds1.sp-example.com:1736
ds2.sp-example.com:1736
UserID Description
DN uid=spuser1,ou=users,o=spusers.com
Appendix B • Service Provider Directory Server Host Machines, Load Balancer and Test User 319
320
C
A P P E N D I X C
This appendix collects the information regarding the identity provider OpenSSO Enterprise
host machines.
■ OpenSSO Enterprise 1 Host Machine
■ OpenSSO Enterprise 2 Host Machine
■ Load Balancer for OpenSSO Enterprise Host Machines
Component Description
Administrative http://osso1.idp-example.com:4848
Console URL
321
Identity Provider OpenSSO Enterprise Host Machines and Load Balancers
Directory /export/osso80adm/domains/
Administrative http://osso2.idp-example.com:8989
Console URL
Administrative https://osso2.idp-example.com:1081/opensso/console
Console URL
322 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Identity Provider OpenSSO Enterprise Host Machines and Load Balancers
Component Description
Administrative http://osso2.idp-example.com:4848
Console URL
Directory /export/osso80adm/domains/
Administrative http://osso2.idp-example.com:8989
Console URL
Appendix C • Identity Provider OpenSSO Enterprise Host Machines and Load Balancers 323
Identity Provider OpenSSO Enterprise Host Machines and Load Balancers
Administrative https://osso2.idp-example.com:1081/opensso/console
Console URL
Component Description
URL lb2.idp-.example.com
Monitors osso1.idp-example.com:1081
osso2.idp-example.com:1081
324 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
D
A P P E N D I X D
This appendix collects the information regarding the service provider OpenSSO Enterprise host
machines.
■ OpenSSO Enterprise 1 Host Machine
■ OpenSSO Enterprise 2 Host Machine
■ Load Balancer for OpenSSO Enterprise Host Machines
Component Description
Administrative http://osso1.sp-example.com:4848
Console URL
325
Service Provider OpenSSO Enterprise Host Machines and Load Balancers
Directory /export/osso80adm/domains/
Administrative http://osso2.sp-example.com:8989
Console URL
Administrative https://osso2.sp-example.com:1081/opensso/console
Console URL
326 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
Service Provider OpenSSO Enterprise Host Machines and Load Balancers
Component Description
Administrative http://osso2.sp-example.com:4848
Console URL
Directory /export/osso80adm/domains/
Administrative http://osso2.sp-example.com:8989
Console URL
Appendix D • Service Provider OpenSSO Enterprise Host Machines and Load Balancers 327
Service Provider OpenSSO Enterprise Host Machines and Load Balancers
Administrative https://osso2.sp-example.com:1081/opensso/console
Console URL
Component Description
URL lb4.sp-.example.com
Monitors osso1.sp-example.com:1081
osso2.sp-example.com:1081
328 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
E
A P P E N D I X E
This appendix collects the information regarding the web containers and policy agents installed
on the Protected Resource host machine.
Component Description
Administrator weblogic
Port 7001
Port 1081
J2EE Policy Agent for BEA J2EE Agent Profile Name j2eeagent–1
WebLogic Server
329
Service Provider Protected Resource Host Machine Web Containers and Policy Agents
Port 1080
Web Policy Agent for Sun Java Web Agent Profile Name webagent-1
System Web Server
330 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
F
A P P E N D I X
<HTML>
<HEAD>
<TITLE>JSP snoop page</TITLE>
<%@ page import="javax.servlet.http.
HttpUtils,java.util.Enumeration" %>
</HEAD>
<BODY>
<H1>JSP Snoop page</H1>
FIGURE 16?1 Output from snoop.jsp
Example 16?1
16.1 Mapping User Attributes fromthe Identity Provider to
a Single User on the Service Provider
284 Deployment Example 2: Federation Using SAML v2 ? April 2007
<H2>Request information</H2>
<TABLE>
<TR>
<TH align=right>Requested URL:</TH>
<TD><%= HttpUtils.getRequestURL(request) %></TD>
</TR>
<TR>
<TH align=right>Request method:</TH>
<TD><%= request.getMethod() %></TD>
</TR>
<TR>
<TH align=right>Request URI:</TH>
<TD><%= request.getRequestURI() %></TD>
</TR>
<TR>
<TH align=right>Request protocol:</TH>
<TD><%= request.getProtocol() %></TD>
</TR>
331
The snoop.jsp File
<TR>
<TH align=right>Servlet path:</TH>
<TD><%= request.getServletPath() %></TD>
</TR>
<TR>
<TH align=right>Path info:</TH>
<TD><%= request.getPathInfo() %></TD>
</TR>
<TR>
<TH align=right>Path translated:</TH>
<TD><%= request.getPathTranslated() %></TD>
</TR>
<TR>
<TH align=right>Query string:</TH>
<TD><%= request.getQueryString() %></TD>
</TR>
<TR>
<TH align=right>Content length:</TH>
<TD><%= request.getContentLength() %></TD>
</TR>
<TR>
<TH align=right>Content type:</TH>
<TD><%= request.getContentType() %></TD>
<TR>
<TR>
<TH align=right>Server name:</TH>
<TD><%= request.getServerName() %></TD>
16.1 Mapping User Attributes fromthe Identity Provider
to a Single User on the Service Provider
Chapter 16 ? Use Case 2: User AttributeMapping 285
<TR>
<TR>
<TH align=right>Server port:</TH>
<TD><%= request.getServerPort() %></TD>
<TR>
<TR>
<TH align=right>Remote user:</TH>
<TD><%= request.getRemoteUser() %></TD>
<TR>
<TR>
<TH align=right>Remote address:</TH>
<TD><%= request.getRemoteAddr() %></TD>
<TR>
<TR>
<TH align=right>Remote host:</TH>
<TD><%= request.getRemoteHost() %></TD>
<TR>
<TR>
332 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
The snoop.jsp File
%>
<TR valign=top>
<TD><%= k %></TD>
<TD><%= val %></TD>
<TD><%
for(int i = 0; i < vals.length; i++) {
if(i > 0)
out.print("<BR>");
out.print(vals[i]);
}
%></TD>
</TR>
<%
}
%>
</TABLE>
<%
}
%>
<%
e = getServletConfig().getInitParameterNames();
if(e != null && e.hasMoreElements()) {
%>
<H2>Init parameters</H2>
<TABLE>
<TR valign=top>
16.1 Mapping User Attributes fromthe Identity Provider
to a Single User on the Service Provider
Chapter 16 ? Use Case 2: User AttributeMapping 287
<TH align=left>Parameter:</TH>
<TH align=left>Value:</TH>
</TR>
<%
while(e.hasMoreElements()) {
String k = (String) e.nextElement();
String val = getServletConfig().getInitParameter(k);
%>
<TR valign=top>
<TD><%= k %></TD>
<TD><%= val %></TD>
</TR>
<%
}
%>
</TABLE>
<%
}
%>
334 Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 • November 2008
The snoop.jsp File
</BODY>
</HTML>
The issues in this appendix will be updated as more information becomes available.
Reference
Number Description
337
338