Supporting external single sign-on providers  Chapter 11: Using the JAAS API

Chapter 10: Creating and Using Custom Security Components

Netegrity SiteMinder Integration

EAServer supports integration with Netegrity SiteMinder security software. Netegrity SiteMinder provides single sign-on and centralized management of Web, database, and software resources in enterprise applications. For more information, see the Netegrity Web site.

The following configurations are supported:

EAServer integration with SiteMinder is provided by Java Authentication and Authorization Service (JAAS) modules installed in EAServer, along with custom role service and caller principal service components. These components use the Netegrity Agent API to connect to the Netegrity Policy Server to verify user credentials, login status, and role membership.

When using Netegrity, EAServer authorization is based on the EAServer roles that are associated with components and Web resources, with role membership evaluated by the Netegrity Policy Server. The required roles for resource access are determined based on the component or Web application properties, as set in EAServer Manager or jagtool. When a resource requires role membership for access, EAServer calls the Netegrity role service, which determines whether the user is a member of the required role based on settings maintained in the Netegrity Policy Server.

These JAAS login modules are provided for Netegrity/EAServer integration:


Configuring your security scenario

The Netegrity integration login modules are defined in the Netegrity JAAS configuration file, netegrity_jaas.cfg. On Windows, this file is installed in the ini subdirectory of your EAServer installation. On UNIX platforms, the file is installed in the config directory. You must configure the security scenario that you want to use by modifying the attributes of each login module in this file. The attributes for each scenario are listed below:


Configuring the SiteMinder Policy Server

The following configuration can be performed in the Netegrity Policy Server User Interface Console. For detailed instructions, see the Netegrity documentation. These settings are required for all scenarios.

StepsPolicy Server setup

  1. Create a Web agent named easagent, configured with the Policy Server host name and password.

  2. Create a user directory with all the user names to be authenticated. Also, add a user “Anonymous” with password “Anonymous”. The anonymous user is required to allow IIOP login without user credentials, such as for a client accessing a message-driven bean.

  3. If you use client certificates in your application, enter the common name of each certificate in the user directory.

  4. Configure an authentication scheme to match your Netegrity configuration scenario, as described in “Authentication methods for EAServer and SiteMinder”.

  5. Configure a domain named Sybase that uses the user directory. Create a realm named “EAS” with these properties:

    1. Agent is “easagent”.

    2. Resource Filter is “/EAS”.

    3. Default Resource Protection is “Unprotected”.

    4. Authentication Scheme matches the scheme you configured previously.

  6. For the EAS realm, create a rule named “DummyResource” with resource “/DummyResource”. This rule must be enabled with the “Allow Access” option selected. This rule is the default resource for authentication.

  7. For the EAS realm, create additional rules for each EAServer role with the following properties:

    1. Set the resource to:

      /ROLE/role-name
      

      Where role-name is the EAServer role name, as displayed in EAServer Manager. For example, “Admin Role” in EAServer requires the resource /Role/Admin Role.

    2. Set Web Agent Actions to “Get, Post, Put.”

    3. Enable the rule and select the “Allow Access” option.

  8. Create a new policy, for example, Policy01. For each role used in your application, create mappings for the client user names and certificate common names that belong to the role. These mappings are used for role-based authorization of resource access.

  9. If you use client certificates in your application, configure the certificate mapping properties. Create a mapping for each issuing certificate, that is, the distinguished name of each root certificate that corresponds to a certificate authority used by your application. Map this distinguished name to the user directory type that matches the user directory that you created earlier. For each mapping, select the Single Attribute mapping option, and select the Common Name (CN) as the attribute to map.

  10. To ensure the changes you have made take effect, flush the Policy Server cache.


Configuring reverse-proxy access to EAServer

To support Netegrity single sign-on in your application, you must configure a compatible reverse-proxy server. EAServer has been tested with the Apache Web server running as a reverse-proxy with the Netegrity Web Agent installed. See the Netegrity SiteMinder Web Agent Installation Guide and Web Agent Guide for instructions on configuring Apache to run with the Netegrity Web Agent installed.

Reverse-proxy access requires the additional Policy Server settings described below.

StepsPolicy Server configuration for reverse-proxy server access

Use the Netegrity Policy Server User Interface Console to perform this configuration. For detailed instructions on each step, see the Netegrity documentation:

  1. Create a new Web agent to represent the proxy server, for example, ApacheAgent.

  2. Create an Agent Conf object for the proxy server agent. Highlight the ApacheDefaultSettings object, then create a new object from it. Set the DefaultAgentName parameter to match the name of the Web agent created in step 1, for example, “ApacheAgent.”

  3. Create a Host Conf object for the proxy server. Highlight the DefaultHostSettings object, then create a new object from it. Configure the Policy Server IP address and listener ports to match your installation.

  4. Configure authentication schemes to match your Netegrity configuration scenario. For user name/password access, configure a scheme that uses BASIC or FORM authentication. For client certificate authentication, configure a scheme that uses X.509 template authentication. For FORM and X.509 schemes, configure the proxy server itself as the Server name setting.

  5. Create a new realm for the Web agent that represents the proxy server with these settings:

    1. For Agent, select the name of the Web agent, for example, “ApacheAgent”.

    2. Add “/” to the resource filter.

    3. For Default Resource Protection, select Unprotected.

    4. Select an appropriate authentication scheme.

  6. Create a rule named “All” in the realm with these settings:

    1. Set the resource to “*”.

    2. Select “Get, Post, Put” for the Web agent actions.

    3. Select Allow Access.

    4. Select Enabled.

  7. In the policy configuration, set up mappings for the All rule to include the client user names and certificate common names that are used in your application.

  8. To ensure the changes you have made take effect, flush the Policy Server cache.


Enabling Policy Server logging

To troubleshoot problems, enable debug logging in the Policy Service Management Console. Select “Log to File” and “Append” options. Do not select “Log to Console”.


Configuring EAServer for SiteMinder security

StepsConfiguring EAServer to use SiteMinder security

  1. Install the Netegrity JAAS configuration file into your server. The file is netegrity_jaas.cfg, located in the EAServer ini subdirectory on Windows platforms and config subdirectory on UNIX platforms. Install the JAAS module as follows:

    1. Using EAServer Manager, display the Server Properties dialog box. On the Security tab, set the JAAS Configuration File to the full path to the netegrity_jaas.cfg file.

    2. If you are running a server other than the preconfigured Jaguar server, display the Advanced tab. Set the com.sybase.jaguar.server.jaas.section property to Jaguar. If this property is not present, add it.

  2. Follow the instructions for your platform below to copy necessary files from the Netegrity SDK installation to the JDK installation that you use to run EAServer.

    On UNIX platforms, verify the JDK location by checking the values of the JAGUAR_JDK13 or JAGUAR_JDK14 variables in the EAServer bin/setenv.sh file. Copy these files from the Netegrity SDK installation to the JDK jre/lib/sparc subdirectory:

    On Windows platforms, verify the JDK location by checking the values of the JAGUAR_JDK13 or JAGUAR_JDK14 variables in the EAServer bin\setenv.bat file. Copy these files from the Netegrity SDK installation to the JDK jre\bin subdirectory:

  3. Copy the following JAR files from the Netegrity SDK to the java/lib subdirectory of your EAServer installation:

  4. On the Advanced tab in the Server Properties dialog box, set the property com.sybase.jaguar.server.callerprincipalservice to:

    pseudo://java/com.sybase.jaguar.security.netegrity/CtsSecurity/NetegrityCallerPrincipal
    
  5. On the Advanced tab in the Server Properties dialog box, set the property com.sybase.jaguar.server.roleservice to:

    pseudo://java/com.sybase.jaguar.security.netegrity/CtsSecurity/NetegrityRoleService
    
  6. Also on the Advanced tab, set the properties listed in the table below:

    Property

    Value

    com.sybase.jaguar.server.http.sso

    If you have configured single sign-on support using a reverse-proxy server, set to true to enable external single sign-on support in EAServer. If your configuration allows direct client connections to EAServer, set to false.

    com.sybase.jaguar.server.smAgentName

    The agent name used in the SiteMinder Policy Server, for example, “easagent”.

    com.sybase.jaguar.server.smAgentPassword.e

    The agent password used to connect to the SiteMinder Policy Server. The password is stored in encrypted form in the EAServer repository.

    com.sybase.jaguar.server.smServerAddress

    The host name of the SiteMinder Policy Server.

    com.sybase.jaguar.server.smAgentDebug (optional)

    Optionally set to true to enable debug message logging from the Netegrity integration components installed in EAServer.

    com.sybase.jaguar.server.smAuthorizationPort (optional)

    Authorization port for the SiteMinder Policy Server. If not set, the default is 44443.

    com.sybase.jaguar.server.smAuthenticationPort (optional)

    Authentication port for the SiteMinder Policy Server. If not set, the default is 44442.

    com.sybase.jaguar.server.smAccountingPort (optional)

    Accounting port for the SiteMinder Policy Server. If not set, the default is 44441.

    com.sybase.jaguar.server.server.smTimeout (optional)

    The SiteMinder cache lifetime limitation in seconds. If not set, the default is two times of EAServer Authorization cache timeout, specified by the server property com.sybase.jaguar.server.authorization.permcachetimeout

    com.sybase.jaguar.server.smSize (optional)

    The SiteMinder cache size. If not set, the default is 600.

  7. For each EAServer Web application, display the Web Application Properties in EAServer Manager. Configure the authentication method as described in “Authentication methods for EAServer and SiteMinder”.

Authentication methods for EAServer and SiteMinder

You must configure the Netegrity and EAServer authentication methods differently depending on whether you allow direct log in to EAServer. If you allow direct login to EAServer, configure the EAServer and SiteMinder authentication methods to match according to Table 10-1. If you use FORM authentication, the login and error page must be set and deployed in EAServer. Do not mix certificate based authentication with user name/password based authentication. In other words, all EAServer Web applications must use FORM or BASIC, or all must use CLIENT-CERT.

Table 10-1: Authentication methods for scenarios that allow direct EAServer login

EAServer authentication method

SiteMinder authentication scheme type

FORM

BASIC

BASIC

BASIC

CLIENT-CERT

X.509

If you use a reverse-proxy server to support Netegrity single sign-on, use BASIC in EAServer. In SiteMinder, use BASIC, FORM, or X.509 as required by the application. In this case, authentication is performed within the reverse-proxy server and the Netegrity setting supersedes the EAServer setting.





Copyright © 2005. Sybase Inc. All rights reserved. Chapter 11: Using the JAAS API