This article describes how to use OpenSSO to enable single sign-on and enforce access policies for SGD users.
In this article, Sun OpenSSO Enterprise 8.0 is integrated with SGD 4.50 at the web server authentication level. This involves installing a plug-in, called a web agent, on the SGD web server. The web agent communicates with the OpenSSO Enterprise server, enabling authentication and authorization of SGD users to be carried out by OpenSSO.
For advanced users, a section describing how to to configure a basic SGD Gateway deployment for OpenSSO is included.
Configuring SGD to use OpenSSO involves the following steps:
Before You Begin
This article assumes that you have completed the following tasks:
- Deployed and configured OpenSSO on a supported application server. In this article, Sun OpenSSO Enterprise 8.0 was deployed on a Sun GlassFish 2.1 Application Server. For documentation on installing and deploying OpenSSO, see the Sun OpenSSO Enterprise documentation.
- Configured an SGD 4.50 server to use secure connections. For details of how to do this, see the SGD 4.50 Administration Guide.
The following server names are used in this article:
- sgd-server.example.com – The SGD server
- opensso-server.example.com – The OpenSSO Enterprise server
- gateway-server.example.com – The SGD Gateway
Enable Third-Party Authentication for SGD
To use OpenSSO authentication for SGD logins, you must configure SGD to use third-party authentication. This involves the following steps:
- Configure Tomcat to Trust OpenSSO Authentication
- Enable Third-Party Authentication for SGD
- (Optional) Allow Administrators to Log In Using Third-Party Authentication
Configure Tomcat to Trust OpenSSO Authentication
- Edit the server.xml file.
On the SGD host, edit the /opt/tarantella/webserver/tomcat/{version}/conf/server.xml file. Add a tomcatAuthentication="false" attribute to the <Connector> element in this file, as follows:<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" />
- Restart the SGD web server.
# tarantella restart webserver
Enable Third-Party Authentication for SGD
- In the SGD Administration Console, display the Secure Global Desktop Authentication Configuration Wizard. Go to the Global Settings -> Secure Global Desktop Authentication tab and click the Change Secure Global Desktop Authentication button.
- On the Third-Party/System Authentication step, select the Third-Party Authentication check box.
- On the Third-Party Authentication - User Identity and Profile step, select the check box for one or more search methods for finding the user identity.
- On the Review Selections step, check the authentication configuration and click Finish.
See Enabling Third-party Authentication for SGD 4.50 for for more details about configuring SGD to use third-party authentication.
(Optional) Allow Administrators to Log In Using Third-Party Authentication
By default, for security reasons, SGD Administrators are not allowed to log in using third-party authentication. The SGD login page is always shown for these users, even if they have been authenticated by the SGD web server. To allow SGD Administrators to log in using third-party authentication, run the following command:
# tarantella config edit --tarantella-config-login-thirdparty-allowadmins 1
This means that SGD Administrators are not prompted for a second username and password combination when they log in to SGD.
Install the Web Agent
Installing the web agent involves the following steps:
Obtain the Web Agent
- Download the latest version of the web agent software.
SGD 4.50 uses an Apache version 2.2 web server. Web agents for this version of the Apache web server are available for download from the OpenSSO web site.
Note
Ensure that you download version 3.0 or later of the Apache web agent. - Extract the web agent software into a temporary directory on the SGD host.
$ cp apache_v22_Linux_agent_3.zip /tempdir
$ cd /tempdir
$ unzip apache_v22_Linux_agent_3.zipA folder called web_agents/ is created.
Create an Agent Profile
The web agent uses an agent profile to communicate with the OpenSSO Enterprise server. You use the OpenSSO Enterprise Administration Console to create an agent profile, as follows:
- Log in to the OpenSSO Enterprise Administration Console as the OpenSSO administrator.
The default OpenSSO administrator user is amadmin. - Display the Web Agents page.
Choose Access Control -> realm-name -> Agents -> Web. - Create a new agent profile.
- In the Agent table, click the New button.
The New Agent page is displayed. - In the Name field, type the name for the new agent profile.
For example, SGDagent. - Type and confirm the password for the agent profile.
- In the Configuration field, select the Centralized option.
This means that configuration settings are stored in the OpenSSO Enterprise server central configuration data repository. - In the Server URL field, type the URL for the OpenSSO Enterprise server.
- In the Agent URL, type the URL for the SGD web server.
- Click Create to create the new agent profile.
The Agent table is redisplayed, showing the name of the new web agent.
The following screen capture shows some example settings for an agent profile.
- In the Agent table, click the New button.
- Configure the agent.
Click on the agent name and configure the following settings for the agent:- Not Enforced URLs. Display the Application tab and add the following URL to the Not Enforced URLs list:
https://sgd-server.example.com:443/axis*
This setting enables access to the SGD web services.
- UserID. Display the Open SSO Services tab and ensure that the User ID Parameter setting is set to the default value of UserToken.
This setting ensures that OpenSSO passes the REMOTE_USER variable for authenticated users. By default, SGD is configured to use the REMOTE_USER variable for third-party authentication. - (Optional) Profile Attribute Fetch Mode. Display the Application tab and select the HTTP_HEADER option for the Profile Attribute Fetch Mode setting.
This setting means that LDAP user profile attributes, such as cn or mail can be included in the headers of HTTP requests by the agent. The attributes to include are specified in the Profile Attribute Map table. - (Optional) Agent log level. Display the Global tab for the agent profile and set the Agent Debug Level to All. The agent logs are written to the /tempdir/web_agents/apache22_agent/Agent_001/logs/debug/amAgent text file on the SGD host.
This setting is useful when diagnosing problems with the operation and configuration of the agent.
- Not Enforced URLs. Display the Application tab and add the following URL to the Not Enforced URLs list:
Install the Web Agent on the SGD Web Server
- Create a password file.
On the SGD host, create a text file with a one line entry that contains the password for the agent profile, specified in Create an Agent Profile. The agent profile password is a shared secret used by the OpenSSO server and the web agent. For example:$ cd /tempdir
$ echo "letmein" > password.txt - Stop the SGD web server.
# tarantella stop webserver
- On the SGD host, run the web agent installation program.
# cd /tempdir/web_agents/apache22_agent/bin
# ./agentadmin --installFollow the on-screen prompts to install the web agent.
You need to duplicate some of the details you typed when you created the agent profile, such as the agent name and the URLs for the OpenSSO server and the SGD web server. - Start the SGD web server.
# tarantella start webserver
Configure an Access Policy
To integrate OpenSSO with the SGD log in process, you must configure an access policy that protects the SGD login page. This means that SGD users must be authenticated by the OpenSSO Enterprise server before being allowed to access the SGD login page. The URL of the login page is https://sgd-server.example.com/sgd.
- Log in to the OpenSSO Enterprise Administration Console as the OpenSSO administrator.
The default OpenSSO administrator user is amadmin. - Display the Web Agents page.
Choose Access Control -> realm-name -> Policies - Create a new access policy.
- Click the New Policy button and create a new policy called SGD_access, for example.
- Click the Rules button and add the following URL Policy Agent rules for the policy:
Rule1: https://sgd-server.example.com:443/sgd* Rule2: https://sgd-server.example.com:443/sgd*?*
- Click the Subjects button and allocate the policy to All authenticated users.
- Click OK to save the access policy.
The following screen capture shows an example access policy.
Log In to SGD Using OpenSSO Authentication
Check that SGD users can log in using OpenSSO, as follows:
- Restart your browser.
- Log in to SGD.
Go to the SGD login page at the following URL: https://sgd-server.example.com/sgd.
Because this URL is protected, the OpenSSO login screen is shown, enabling users to be authenticated by OpenSSO.
- Enter your OpenSSO credentials and click OK.
If authentication against the OpenSSO server is successful, you are logged in to SGD and the SGD webtop is displayed. The SGD login page is not shown.
(Optional) Customize the OpenSSO Deployment
To customise the OpenSSO deployment, you can do one or more of the following configuration tasks:
- Enable Unauthenticated Access to the SGD Administration Console
- Enable Unauthenticated Access to the SGD Welcome Page
- Enable Automatic Log Outs From OpenSSO
Enable Unauthenticated Access to the SGD Administration Console
You might want to enable unauthenticated access to the SGD Administration Console, so that SGD Administrators can configure SGD without having to be authenticated by OpenSSO. The SGD Administration Console is at https://sgd-server.example.com/sgdadmin.
To enable unauthenticated access to the SGD Administration Console, add the following URL to the Not Enforced URLs list for the web agent.
https://sgd-server.example.com:443/sgdadmin*
Enable Unauthenticated Access to the SGD Welcome Page
You might want to enable unauthenticated access to the SGD Welcome Page. This means that users can view the SGD documentation and download software, such as the SGD Client and SGD Gateway, without having to be authenticated by OpenSSO. The SGD Welcome Page is at https://sgd-server.example.com.
To enable unauthenticated access to the SGD Welcome Page, add the following URLs to the Not Enforced URLs list for the web agent.
https://sgd-server.example.com:443/ https://sgd-server.example.com:443/*.css https://sgd-server.example.com:443/*.html https://sgd-server.example.com:443/*.gif https://sgd-server.example.com:443/*.ico https://sgd-server.example.com:443/*.pdf https://sgd-server.example.com:443/tarantella*
Enable Automatic Log Outs From OpenSSO
By default, when a user logs out of SGD, their OpenSSO user session is not ended automically. You can configure SGD to log users out of OpenSSO automatically as follows.
- Edit the SGD logout page.
The SGD logout page is at /opt/tarantella/webserver/tomcat/{version}/webapps/sgd/webtops/standard/webtop/logged-out.jsp on the SGD host.
Go to line 128 of the logged-out.jsp file and add the response.sendRedirect statement as shown in the following code fragment.{ %> <td><img src="<%= getWebtopGif("loggedout_login.gif") %>" name="login" width="560" height="21" border="0"></td> <% } // Redirect to OpenSSO login page response.sendRedirect(response.encodeRedirectURL("https://opensso-server.example.com:8181/opensso/UI/Logout?goto=https://sgd-server.example.com/sgd")); %> </tr> <tr> <td colspan="3"><img src="<%= getWebtopGif("loggedout_bottom.gif") %>" width="560" height="47"></td> </tr> </table> </td> </tr> </table> </body> </html> - Restart the SGD web server.
# tarantella restart webserver
When users next log out of SGD, their OpenSSO user session is ended automatically and the OpenSSO login screen is displayed. The SGD logout screen is not shown.
(Optional) Using OpenSSO With the SGD Gateway
This section describes how to integrate OpenSSO into an SGD Gateway deployment. A basic deployment consisting of an SGD Gateway gateway-server.example.com, used with a single SGD server sgd-server.example.com and an OpenSSO server opensso-server.example.com is considered.
This section assumes that you have completed the following tasks:
- Installed and configured a web agent on the SGD server. How to do this is described in the Install the Web Agent section of this article.
- Installed and configured the SGD Gateway. This is described in the SGD 4.50 Gateway Administration Guide.
To configure an SGD Gateway deployment for OpenSSO, do the following:
- Install a Web Agent on the SGD Gateway
- Reconfigure the Web Agent on the SGD server
- Log In to SGD Through the SGD Gateway
Install a Web Agent on the SGD Gateway
The SGD Gateway includes an Apache web server. This means that the steps for installing a web agent are very similar to those for an SGD server, as described in Install the Web Agent.
- Obtain the web agent software.
This is described in Obtain the Web Agent. - Create a new agent profile.
The procedure is identical to that described in Step 3 of Create an Agent Profile, except that for the Agent URL setting you must specify the URL of the SGD Gateway server.
The following screen capture shows some example settings for the agent profile used by the SGD Gateway.
- Configure the agent.
Click on the agent name and configure the following settings for the agent:- SSO Only Mode. Display the Global tab and enable the SSO Only Mode setting.
This setting means that access policies are not applied. - Not Enforced URLs. Do not add any URLs to the Not Enforced URLs list. Ensure that the list is empty.
- UserID. Display the Open SSO Services tab and ensure that the UserID setting is set to the default value of UserToken.
This setting ensures that OpenSSO passes the REMOTE_USER variable for authenticated users.
- SSO Only Mode. Display the Global tab and enable the SSO Only Mode setting.
- Create a password file.
On the SGD Gateway, create a text file with a one line entry that contains the password for the agent profile. For example:$ cd /tempdir
$ echo "gatewaypass" > password.txt - Stop the SGD Gateway.
# /opt/SUNWsgdg/bin/gateway stop
- On the SGD Gateway host, run the web agent installation program.
# cd /tempdir/web_agents/apache22_agent/bin
# ./agentadmin --installFollow the on-screen prompts to install the web agent.
- Start the SGD Gateway.
# /opt/SUNWsgdg/bin/gateway start
Reconfigure the Web Agent on the SGD Server
Because the SGD server is being used in an SGD Gateway deployment, you must make the following configuration changes for the web agent on the SGD server.
- Log in to the OpenSSO Enterprise Administration Console as the OpenSSO administrator.
The default OpenSSO administrator user is amadmin. - Display the Web Agents page.
In the OpenSSO Enterprise Administration Console, choose Access Control -> realm-name -> Agents -> Web. - Configure the web agent.
Click on the agent name and configure the following settings:- SSO Only Mode. On the Global tab, select SSO Only Mode.
This setting means that access policies are not applied. - Fully Qualified Domain Name (FQDN) Mapping. On the Application tab, set up the FQDN Virtual Host Map as follows:
[sgd-server.example.com]=gateway-server.example.com
This setting ensures that the SGD server URL is not shown during login.
- SSO Only Mode. On the Global tab, select SSO Only Mode.
- Restart the SGD web server.
# tarantella restart webserver
Log In to SGD Through the SGD Gateway
- Restart your browser.
- Log in to SGD through the SGD Gateway.
- Go to https://gateway-server.example.com/sgd.
The OpenSSO login screen is shown. - Enter your OpenSSO credentials and click OK.
If authentication against the OpenSSO server is successful, you are logged in to the SGD server sgd-server.example.com and the SGD webtop is displayed. The SGD login page is not shown.
- Go to https://gateway-server.example.com/sgd.