Configure Single Sign-On |
|
| Release 9.3.1 |
|
Single sign-on allows users to login once to a software application and gain access to multiple software systems without being prompted to login again. If you configure single sign-on for your Content Management System (CMS) or any other pages you add, users of your Geoportal will only need to login one time to access all the single sign-on enabled applications.
Note: The instructions provided below are suggestions according to how SSO was configured during testing. Your organization may require a different procedure depending on your servlet container software, other applications using SSO, security policies and other considerations.
This single sign-on configuration is tested against Tomcat 5.5.17, and assumes that you have already configured users through LDAP, as per the Geoportal extension 9.3.1 installation guide.
If you have set up LDAP, then proceed with the following steps to enable single sign-on. You will need to make changes to both your Tomcat server.xml file and your Geoportal web application configuration file.
<Realm
className="org.apache.catalina.realm.JNDIRealm"
connectionName="uid=admin,ou=system"
connectionPassword="password"
connectionURL="ldap://myServer:10389"
debug="99"
roleBase="ou=groups,ou=system"
roleName="cn"
roleSearch="(uniquemember={0})"
userPattern="cn={0},ou=users,ou=system"/>
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<singleSignOn active="true" ...
<security-constraint>
<web-resource-collection>
<web-resource-name>login</web-resource-name>
<description>login</description>
<url-pattern>/catalog/identity/login.page</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>These are the roles who have access</description>
<role-name>gpt_administrators</role-name>
<role-name>gpt_publishers</role-name>
<role-name>gpt_registeredUsers</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Restricted content</realm-name>
<form-login-config>
<form-login-page>/catalog/identity/loginJsc.page</form-login-page>
<form-error-page>/catalog/identity/loginJsc.page?error=true</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>gpt_administrators</role-name>
</security-role>
<security-role>
<role-name>gpt_publishers</role-name>
</security-role>
<security-role>
<role-name>gpt_registeredUsers</role-name>
</security-role>
This single sign-on configuration is tested against Weblogic 10.3.1, and assumes that you have already configured users through LDAP, as per the Geoportal extension 9.3.1 installation guide. This example also assumes that your LDAP is configured with Apache Directory Server. Directions below may need adjustment for other Directory Server vendors.
If you have set up LDAP, then proceed with the following steps to enable single sign-on. You will need to make changes from within the Weblogic Administration Console to the security realm. For more detailed information on security realms visit Weblogic Website.
Once you have completed these steps you will now have to edit the new provider information to match your current LDAP configuration.
You will need to update certain fields with information from your LDAP. Fields not mentioned below should be left as their default values. The example shows typical settings for Apache Directory Server:
Weblogic has its own security provider that protects weblogic resources, that provider os called DefaultAuthenticator. You will need to adjust the Control Flag setting of the DefaultAuthenticator.
<singleSignOn active="true" ...
<security-constraint>
<web-resource-collection>
<web-resource-name>login</web-resource-name>
<description>login</description>
<url-pattern>/catalog/identity/login.page</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>These are the roles who have access</description>
<role-name>gpt_administrators</role-name>
<role-name>gpt_publishers</role-name>
<role-name>gpt_registeredUsers</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myRealm</realm-name>
<form-login-config>
<form-login-page>/catalog/identity/loginJsc.page</form-login-page>
<form-error-page>/catalog/identity/loginJsc.page?error=true</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>gpt_administrators</role-name>
</security-role>
<security-role>
<role-name>gpt_publishers</role-name>
</security-role>
<security-role>
<role-name>gpt_registeredUsers</role-name>
</security-role>