Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0

Part I About This Deployment

This first part of Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 provides introductory material and an overview of the deployment. It contains the following chapters:

Chapter 1 Components and Features

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

Deployment Example: SAML v2 Using Sun OpenSSO Enterprise 8.0 is designed to highlight the following key features:

1.2 Deployment Architecture and Components

In a deployment configured for communication using SAML v2 a service provider and an identity provider must be created within a circle of trust. The circle of trust enables business providers to easily conduct cross-network transactions for an individual while protecting the individual's identity. The following sections contain information on the architecture of the two providers in this deployment.

1.2.1 Identity Provider Deployment

An identity provider specializes in providing authentication services. As the administrating service for authentication, an identity provider maintains and manages identity information. It establishes trust with a service provider in order to exchange user credentials, enabling single sign-on between the providers. Authentication by an identity provider is honored by all service providers with whom the identity provider is partnered. The identity provider domain is idp-example.com. The following image illustrates the identity provider architecture in this deployment.

Figure 1–1 Identity Provider Deployment Architecture

Illustrates where the identity provider components
will be situated

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, Building the Identity Provider Environment.

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.


Sun Java System Directory Server

Two instances of Directory Server provide storage for user entries that will be created for testing this deployment. Both instances of Directory Server are masters that engage in multi-master replication, providing high availability to the OpenSSO Enterprise layer.


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.

1.2.2 Service Provider Deployment

A service provider offers web-based services to an identity. This broad category can include portals, retailers, transportation providers, financial institutions, entertainment companies, libraries, universities, governmental agencies, and other organizations that consume identity information for purposes of access. The service provider domain is sp-example.com. The following image illustrates the service provider architecture in this deployment.

Figure 1–2 Service Provider Deployment Architecture

Illustrates where the service provider components
will be situated

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, Building the Service Provider Environment.

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.


Sun Java System Directory Server

Two instances of Directory Server provide storage for user entries that will be created for testing this deployment. Both instances of Directory Server are masters that engage in multi-master replication, providing high availability to the OpenSSO Enterprise layer.


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

1.3 Sequential Component Interactions

The following image describes the interactions between the various components during the attribute mapping use case. See Chapter 14, Testing Attribute Mapping.

Figure 1–3 Process Flow

Process flow of attribute mapping

The following image describes the interactions between the various components during the single logout use case. See Chapter 12, Testing the SAML v2 Profiles.

Figure 1–4 Process Flow 2

Process flow of SAMLv2 Deployment

Chapter 2 Technical Overview

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

The following table lists the attributes of the host machines used for this deployment example.

Table 2–1 Host Machines and Operating Systems

Host Machine 

Architecture 

Operating System 

ds1.idp-example.com

x86 

Solaris 10 

ds2.idp-example.com

x86 

Solaris 10 

osso1.idp-example.com

SPARC 

Solaris 10 

osso2.idp-example.com

SPARC 

Solaris 10 

lb1.idp-example.com

SPARC 

Solaris 10 

lb2.idp-example.com

SPARC 

Solaris 10 

ds1.sp-example.com

SPARC 

Solaris 10 

ds2.sp-example.com

SPARC 

Solaris 10 

osso1.sp-example.com

SPARC 

Solaris 10 

osso2.sp-example.com

SPARC 

Solaris 10 

lb3.sp-example.com

SPARC 

Solaris 10 

lb4.sp-example.com

SPARC 

Solaris 10 

pr1.sp-example.com

SPARC 

Solaris 10 

2.2 Software

The following table lists the software used in this deployment example.

Table 2–2 Software and Download Locations

Product 

Version 

Download Location 

Sun OpenSSO Enterprise 

8.0 

http://www.sun.com/download/

Sun Java System Web Server 

7.0 Update 3 

http://www.sun.com/download/

Sun Java System Directory Server Enterprise Edition 

6.3 Update 3 

http://www.sun.com/download/

BEA Weblogic Server 

10 

http://www.bea.com

Web Policy Agent 

(for Sun Java System Web Server) 

3.0 

http://www.sun.com/download/

J2EE Policy Agent 

(for BEA Weblogic Server) 

3.0 

http://www.sun.com/download/

Java 

(for OpenSSO Enterprise and policy agents) 

1.5.0_09 

http://www.java.com/en/

BIG-IP Load Balancer 

 

http://www.f5.com

2.3 Main Service URLs

The following sections summarize the main service URLs for the components used in this deployment example. For detailed configuration information, see Part V, Appendices.

2.3.1 Identity Provider Main Service URLs

The following tables summarize the main service URLs for the identity provider components.

Table 2–3 Identity Provider Components and Main Service URLs
 

Components 

Main Service URL 

Directory Server Host Machines and Load Balancer 

 

Directory Server 1 

ds1.idp-example.com:1736 (for monitor node)

ldaps://ds1.idp-example.com:1736 (for user data)

     
 

Directory Server 2 

ds2.idp-example.com:1736 (for monitor node)

ldaps://ds2.idp-example.com:1736 (for user data)

     
 

Load Balancer 1 

ldaps://lb1.idp-example.com:489 (for Directory Server access)

     

OpenSSO Enterprise Host Machines and Load Balancer 

 

Application Server 1 

Default Domain

http://osso1.idp-example.com:4848 (for console)

http://osso1.idp-example.com:8080 (for HTTP)

https://osso1.idp-example.com:8181 (for HTTPS)

   

Non—Root User Domain

http://osso1.idp-example.com:8989 (for console)

http://osso1.idp-example.com:1080 (for HTTP)

https://osso1.idp-example.com:1081 (for HTTPS)

     
 

OpenSSO Enterprise 1 

https://osso1.idp-example.com:1081/opensso/console

     
 

Application Server 2 

Default Domain

http://osso2.idp-example.com:4848 (for console)

http://osso2.idp-example.com:8080 (for HTTP)

https://osso2.idp-example.com:8181 (for HTTPS)

   

Non—Root User Domain

http://osso2.idp-example.com:8989 (for console)

http://osso2.idp-example.com:1080 (for HTTP)

https://osso2.idp-example.com:1081 (for HTTPS)

     
 

OpenSSO Enterprise 2 

https://osso2.idp-example.com:1081/opensso/console

     
 

Load Balancer 2 

https://lb2.idp-example.com:1081/opensso (for OpenSSO Enterprise access)

http://lb2.idp-example.com:1082 (for virtual server proxy)

     

2.3.2 Service Provider Main Service URLs

The following tables summarize the main service URLs for the service provider components.

Table 2–4 Service Provider Components and Main Service URLs
 

Components 

Main Service URL 

Directory Server Host Machines and Load Balancers 

 

Directory Server 1 

ds1.sp-example.com:1736 (for monitor node)

ldaps://ds1.sp-example.com:1736 (for user data)

     
 

Directory Server 2 

ds2.sp-example.com:1736 (for monitor node)

ldaps://ds2.sp-example.com:1736 (for user data)

     
 

Load Balancer 3 

ldaps://lb3.sp-example.com:489 (for user data)

     

OpenSSO Enterprise Host Machines and Load Balancer 

 

Application Server 1 

Default Domain

http://osso1.sp-example.com:4848 (for console)

http://osso1.sp-example.com:8080 (for HTTP)

https://osso1.sp-example.com:8181 (for HTTPS)

   

Non—Root User Domain

http://osso1.sp-example.com:8989 (for console)

http://osso1.sp-example.com:1080 (for HTTP)

https://osso1.sp-example.com:1081 (for HTTPS)

     
 

OpenSSO Enterprise 1 

https://osso1.sp-example.com:1081/opensso/console

     
 

Application Server 1 

Default Domain

http://osso2.sp-example.com:4848 (for console)

http://osso2.sp-example.com:8080 (for HTTP)

https://osso2.sp-example.com:8181 (for HTTPS)

   

Non—Root User Domain

http://osso2.sp-example.com:8989 (for console)

http://osso2.sp-example.com:1080 (for HTTP)

https://osso2.sp-example.com:1081 (for HTTPS)

     
 

OpenSSO Enterprise 2 

https://osso2.sp-example.com:1081/opensso/console

     
 

Load Balancer 4 

https://lb4.sp-example.com:1081/opensso (for OpenSSO Enterprise access)

http://lb4.sp-example.com:1082 (for virtual server proxy)

     

Protected Resource 1 Host Machine Web Containers and Policy Agents 

 

Web Server 

https://pr1.sp-example.com:8989 (for Sun Java System Web Server administration console)

http://pr1.sp-example.com:1080 (for Sun Java System Web Server managed instance)

     
 

Web Policy Agent 

http://pr1.sp-example.com:1080

     
 

WebLogic Server 

http://pr1.sp-example.com:7001/console (for BEA Weblogic administration server)

http://pr1.sp-example.com:1081 (for BEA Weblogic managed server)

     
 

J2EE Policy Agent 

http://pr1.sp-example.com:1081/agentapp

     

2.4 Viewing Replicated Entries

Throughout this deployment example, we use ldapsearch to view replicated entries. An alternative would be to enable the Directory Server audit log and run tail -f. Enabling the audit log will also help to track changes and updates made during OpenSSO Enterprise configuration.

Chapter 3 Before You Begin

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

See Chapter 2, Technical Overview for a quick reference of host machines, port numbers, operating systems, naming conventions, and component names used in this deployment example. See Part V, Appendices for more detailed information.

3.2 Setting Up the Load Balancers

The load balancer hardware and software used in this deployment environment 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. This document assumes that you have already installed the required load balancers. The following identity provider sections require load-balancing hardware and software.

The following service provider sections require load-balancing hardware and software.

3.3 Obtaining Secure Socket Layer Certificates

In order to enable secure communications using the Secure Sockets Layer (SSL) protocol you need to obtain root certificates and server certificates from a certificate authority (CA). A CA root certificate proves that the particular CA issued a particular server certificate. CA root certificates are publicly available. The root certificate used in this deployment is a self-signed certificate issued by OpenSSL for testing purposes only; it is named ca.cer. You can obtain a root certificate from any commercial certificate issuer such as VeriSign, Thawte, Entrust, or GoDaddy.

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.

The following service provider sections are related to requesting, installing, and importing root and server certificates.

3.4 Resolving Host Names

There are many ways to resolve the host names used in this deployment. You may use a DNS naming service, or you can map IP addresses to host names in the local host file on all UNIX® hosts. The same entries must also be added to equivalent files on Windows hosts, and on client machines where browsers are used. For example:


1xx.xx.xx.x1		ds1 	ds1.sp-example.com
1xx.xx.xx.x2		ds2 	ds2.sp-example.com
1xx.xx.xx.x3		osso1 		osso1.idp-example.com
1xx.xx.xx.x4		osso2 		osso2.idp-example.com

3.5 Known Issues and Limitations

See Appendix G, Known Issues and Limitations for descriptions of problems you may encounter when implementing the deployment example. This list will be updated as new information becomes available.

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.