This chapter introduces the process of achieving Single Sign-on by using CA severs,such as Siteminder, to validate authentication information that is passed by the the HTTP headers.

Single Sign-on is a method that provides access control for the server. It enables you to be authenticated only once and gain access to the resource of multiple software systems. In other words, a user agent that wishes to authenticate itself with a server might need to do so only once for the same security realm using Single Sign-on.

During such authentication, a CA server cross-checks the information that is appended to the HTTP headers. If the information is consistent with what the security realm defines, the identity of the client being authenticated is verified.

Applications that use the HTTP header-based authentication must configure their deployment descriptor as follows:



Working with Siteminder

A well-known CA server is Siteminder, which helps to provide information to the application by setting specific headers on the HTTP request. By default, it uses the SM_USER header to pass the user name, which is later authenticated by the GenericHttpHeaderLoginmodule class in WebSphere Application Server Community Edition.

You can configure the security realm for HTTP header-based authentication. The following TestPropsRealm.xml file is a deployment plan used to create a Properties file security realm on the application server. Applications that use this security realm can achieve Single Sign-on.

<module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
    <gbean name="TestSqlRealm" class="org.apache.geronimo.security.realm.GenericSecurityRealm" 
                 xsi:type="dep:gbeanType" xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" 
        <attribute name="realmName">TestPropsRealm</attribute>
        <reference name="ServerInfo">
        <xml-reference name="LoginModuleConfiguration">
            <log:login-config xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0">
                <log:login-module control-flag="REQUIRED" wrap-principals="false">
                    <log:option name="groupsURI">var/security/demo_groups.properties</log:option>
					<log:option name="headerNames">SM_USER</log:option>
					<log:option name="authenticationAuthority">Siteminder</log:option>


Similarly, you can configure a deployment plan for the LDAP Realm or the Database (SQL) Realm to use the Siteminder for Single Sign-on.