Sun Java Solaris Communities My SDN Account Join SDN

Article

Delegating XML Gateway Runtime Authorization to OpenSSO

By Francois Lascelles, with contributions from Rick Palkovic, August 2009  

XML gateways are dedicated applications that enable a centralized approach to security and identity enforcement. They insert an abstraction layer between web service requesters and web service endpoints in order to govern and secure their transactions. They establish transit points across service-oriented architectures (SOA), Web 2.0, and cloud security zones.

One such XML gateway is SecureSpan Networking Gateway, from Layer 7 Technologies. SecureSpan acts as a policy enforcement point and provides edge security for SOA, Web 2.0 and cloud-based web services. This article describes how access control rules defined in OpenSSO can be enforced at runtime by SecureSpan XML Gateway through its native OpenSSO integration agent.

Contents

Enforcing Access Control Rules in Web Services

Although XML gateways typically enforce edge security for web services including authentication and access control, they are often part of the same architecture as an Identity and Access Management (IAM) solution such as OpenSSO. In these cases, it is usually preferable to manage access control rules at the IAM layer rather than in the policy enforcement point. These access control rules can then be enforced at runtime by the XML gateways acting as the edge policy enforcement points. The principal goal of such integration is typically not to provide a single sign-on (SSO) experience to the web service requester, which often is not even a human being, but rather to establish a single point of management for access control rules across web applications and web services for a specific environment.

Business-to-business (B2B) web service interactions typically cross security boundaries. In situations where threat protection and security in general is highly sensitive, direct access to the IAM layer is not possible. One such IAM layer is OpenSSO Enterprise, formerly Sun Java System Access Manager.

An XML gateway appliance, in contrast, is a secured and hardened device that is appropriate for deployment in a demilitiarized zone (DMZ). Using this pattern of separation between the enforcement and management of access control rules, the XML gateway cannot redirect requesters to OpenSSO for authentication. Because the requester does not interact directly with OpenSSO, the XML gateway intermediary instead negotiates sessions with OpenSSO on behalf of the requesters.

XML Gateway Applicance Intermediary

Figure 1: XML Gateway Appliance Intermediary

Configuring SecureSpan-OpenSSO Integration

In general, configuring the integration between SecureSpan and OpenSSO requires two steps. First, a policy agent profile is needed in order for SecureSpan to communicate with OpenSSO. This policy agent profile must be defined in OpenSSO. Briefly, you define the policy agent profile as follows:

  1. In the OpenSSO Console, navigate to Access Control –> select a realm –> Subjects –> Agent –> New.
  2. Provide name and password.

Second, you must configure the SecureSpan Gateway to integrate with the OpenSSO instance. For this configuration, you must install the OpenSSO Custom Assertion. The installation is through an RPM package manager file, which you must transfer to the gateway and install. After installation, you must edit the properties file /opt/SecureSpan/Gateway/node/default/etc/conf/sun-jsam-client.properties. The following table lists the properties for this module.

Table 1: OpenSSO Custom Assertion Properties Descriptions

Property name

Description

com.sun.identity.agents.app.username

Name of policy agent profile created on the OpenSSO server.

com.iplanet.am.service.password

Plain text password of the policy agent profile.

If an encrypted password is used instead, enter it in the com.iplanet.am.service.secret property.

com.iplanet.am.service.secret

The encrypted password of the policy agent profile. If a plain text password is used instead, enter it in the com.iplanet.am.service.password property.

am.encryption.pwd

If an encrypted password is used, then this value must match AMConfig.properties.

com.iplanet.am.naming.url

This value must match AMConfig.properties.

com.iplanet.am.notification.url

This value must match AMConfig.properties.

com.iplanet.am.server.protocol

This value must match AMConfig.properties.

com.iplanet.am.server.host

The fully qualified host name of the OpenSSO server. This value must match AMConfig.properties.

com.iplanet.am.server.port

This value must match AMConfig.properties.

com.iplanet.services.debug.level

Controls the OpenSSO Client SDK internal logging. Enter the minimum severity level to be logged:
off (logging disabled) error warning message

com.iplanet.services.debug.directory

The directory in which to store the OpenSSO Client SDK internal log files.

When this process is completed, the OpenSSO Protected Resource assertion appears in the SecureSpan Gateway Manager, under the Access Control category. The next section describes how to use this assertion.

Using the SecureSpan OpenSSO Custom Assertion

Like any other assertion in the SecureSpan Gateway Manager palette, you can add the OpenSSO Custom Assertion to any policy with drag-and-drop.

Each instance of this custom assertion has its own set of properties. At runtime, the custom assertion uses those properties to construct its query to OpenSSO. These properties are Realm, Resource and Action. The values for these properties can use context variables. For example, instead of hard-coding the Resource being accessed, it is typically constructed using the incoming URL, as illustrated in Figure 2.

Setting OpenSSO Custom Assertion Properties

Figure 2: Setting OpenSSO Custom Assertion Properties

When the policy is executed at runtime, the custom assertion achieves two goals. It will

  • Manage the OpenSSO session on behalf of the requester
  • Ask OpenSSO if access to the resource is authorized

The flow chart shown in Figure 3 describes the runtime behavior of an OpenSSO Custom Assertion instance.

OpenSSO Custom Assertion Flow Chart

Figure 3: OpenSSO Custom Assertion Flow Chart

The OpenSSO Custom Assertion instance is part of a policy and does not in itself implement the entire access control decision delegation. Rather, the custom assertion instance interacts with other assertions in the policy by reading from and writing to the transaction context. The following section provides guidelines for such policies including the OpenSSO custom assertion.

SecureSpan Policy Structure Guidelines

As illustrated in Figure 3, the OpenSSO Custom Assertion requires a number of conditions to function properly. Either an OpenSSO cookie is present and is associated with an OpenSSO session, or credentials must be provided in order for a new session to be established. In the policy being enforced, this choice is generally represented in a logical OR branch: at least one assertion must evaluate to true, where credential assertions and cookie test assertions are tested in a specific order. This logic is illustrated in Figure 4.

SecureSpan Policy Including OpenSSO Custom Assertion

Figure 4: SecureSpan Policy Including OpenSSO Custom Assertion

The credential assertions each in turn test the presence of the credential. If the test is successful for a credential, it is loaded into the transaction context, where the OpenSSO Custom Assertion can read it. If a test fails, the next assertion in the logical OR tree structure attempts to find credentials using its own mechanism.

Resources
Rate This Article
 
Comments
Do you have comments about this article? We welcome your participation in our community. Please keep your comments civil and on point. You may optionally provide your email address to be notified of replies - your information is not used for any other purpose. By submitting a comment, you agree to these Terms of Use.
Francois LascellesFrancois Lascelles is the Technical Director, Europe for Layer 7 Technologies, a leading provider of SOA and web services security solutions. Francois advises Fortune 1000 corporations and governments in planning and implementing secure SOA and cloud-based systems. He is co-author of the upcoming book SOA Security, published by Prentice Hall. He has published on topics relating to WS security performance, identity federation, and loose coupling.
 
Rick PalkovicRick Palkovic is a staff writer for Sun Developer Network. He has written about the Solaris OS and Java technologies for longer than he likes to admit, composing everything from man pages to technical white papers.