Secure Global Desktop 4.40 Administration Guide > Users and Authentication > Web Server Authentication
Web server authentication (HTTP authentication is the technically correct term) is the most common application of third-party authentication. With web server authentication, the web server performs the authentication and SGD determines the user identity and user profile.
The advantage of web server authentication is that you can use any web server authentication plug-in as long as it sets the
REMOTE_USER
environment variable. If the authentication plug-in you use sets a different variable, you can configure
SGD to support it.
You can use web server authentication and system authentication together. It is best to enable at least one system authentication mechanism as a fallback. If SGD cannot find a user profile for a user, the standard SGD login page displays so that the user can authenticate using a system authentication mechanism.
This page includes the following topics:
Web server authentication works as follows:
http://server/sgd
URL.The web browser caches the user's credentials because the credentials must be sent with every request to the protected URL. The browser sends the credentials automatically. The credentials are cached as follows:
Once the web server has authenticated the user, its sets the REMOTE_USER
environment variable. This variable contains the user name of the authenticated user.
SGD takes the value of the REMOTE_USER
variable and uses it to search for the user identity and user profile. SGD supports four search methods for establishing the user identity and user profile. These are described in Third-party Authentication.
The following are the main security considerations of using web server authentication with SGD:
With web server authentication, the web browser caches the user's credentials and, in effect, their authentication to SGD. To minimize the risk of cached credentials being used by someone else, ensure that users do the following:
Use a secure (HTTPS) web server to prevent user credentials from being sent in plain text.
SGD is able to trust the web server's authentication because the SGD webtop and the SGD server have a shared secret which is the user name and password of a trusted user. The credentials of this trusted user are created by default when you install SGD. You might want to change these credentials, see Trusted Users and Third-party Authentication for details of how to do this.
To enable web server authentication, you must do the following:
You configure the web server for web server authentication by protecting the /sgd
URL on each SGD host.
How you protect the /sgd
URL depends on your web server, see your web server documentation for details.
The following procedure is an example of how you might configure the SGD Web Server for web server authentication.
For the SGD Web Server, you can protect the /sgd
URL in either the Apache or the Tomcat components.
This procedure assumes you protect the URL in Apache.
Repeat the following steps on each SGD server in the array.
Use the /opt/tarantella/webserver/apache/version/bin/htpasswd
program to create a web server password file and add entries.
/sgd
URL.
The Apache configuration file is /opt/tarantella/webserver/apache/version/conf/httpd.conf
.
SetEnvIf Request_URI "\.(jar|gif)$" sgd_noauth_ok <LocationMatch /sgd> Order Allow,Deny Allow from env=sgd_noauth_ok AuthUserFile file-path AuthName auth-domain Authtype Basic Require valid-user Satisfy any </LocationMatch>
Where file-path is the full path to the web server password file and auth-domain is the name of authorization realm that appears in the web browser's authentication dialog.
The SetEnvIf
directive allows you to protect the /sgd
URL
without affecting the operation of the Welcome Page of the SGD Web Server.
Note You must use a LocationMatch
directive rather than a
Directory
directive because the SGD Web Server delegates
the management of the /sgd
URL to Tomcat. This is configured in the
Apache configuration file and means you cannot use
an .htaccess
file to protect the /sgd
URL.
The Tomcat configuration file is
/opt/tarantella/webserver/tomcat/version/conf/server.xml
.
Add a tomcatAuthentication="false"
attribute to the the
<Connector>
element as follows:
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="0" useURIValidationHack="false" tomcatAuthentication="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
You must restart the SGD Web Server for the configuration changes to take effect.
On the Global Settings » Secure Global Desktop Authentication tab, click the Change Secure Global Desktop Authentication button.
For details on how the search methods work, see Third-Party Authentication.
If the Search LDAP Repository check box is selected, select an option for finding the LDAP user profile.
The LDAP Repository Details step only displays if an LDAP search method is selected on the Third-Party Authentication - User Identity and Profile step.
ldap://melbourne.indigo-insurance.com
.
ldaps://
URL and
install the root certificates for the LDAP directory servers.ldap://melbourne.indigo-insurance.com:5678
.ldap://melbourne.indigo-insurance.com/dc=indigo-insurance,dc=com
restricts the part of the LDAP directory used to search for the user identity.cn=sgd-user,cn=Users,dc=indigo-insurance,dc=com
.SGD web server authentication relies on the web server setting the REMOTE_USER
environment variable to identify the user. If you use an authentication plug-in for
web server authentication, it is likely that the plug-in uses a different environment
variable to identify the user. To work round this, you must configure the webtop web application
to support your variable.
In addition to the REMOTE_USER
variable, SGD includes
support for the following variables:
SSL_CLIENT_S_DN_CN
- see Using Client Certificates
for details of how to enable support for this variable.HTTP_SAFEWORD_USER
- see Using SafeWord PremierAccess
for details of how to enable support for this variable.Before you begin, consult the documentation for your authentication plug-in and make a note of the environment variable it sets to identify users.
The following procedure assumes that you have already configured your authentication plug-in for web server authentication and verified that it is working.
Repeat the following procedure on each SGD server in the array.
The file is /opt/tarantella/webserver/apache/version/conf/httpd.conf
.
JkEnvVar
directive to forward your environment variable.
Search for the existing JKEnvVar
directives and add a directive
for your own variable, as follows:
#JkEnvVar SSL_CLIENT_S_DN_CN " " #JkEnvVar HTTP_SAFEWORD_USER " " JKEnvVar YOUR_VARIABLE " "
/SGD
location.
Remove the comment marks (#) from the Location
directive as follows:
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
The directory is
/opt/tarantella/webserver/tomcat/version/webapps/sgd/resources/jsp
.
webtopsession.jsp
file and add support for your variable.
Use the code for the
HTTP_SAFEWORD_USER
and SSL_CLIENT_S_DN_CN
variables
as examples of how to do this.
SGD includes support for SafeWord PremierAccess with web server authentication. SafeWord PremierAccess uses the
HTTP_SAFEWORD_USER
environment variable instead of the REMOTE_USER
variable to identify
the user.
The following procedure assumes that you have already configured SafeWord PremierAccess for web server authentication and verified that it is working.
Repeat the following procedure on each SGD server in the array.
The file is /opt/tarantella/webserver/apache/version/conf/httpd.conf
.
JkEnvVar
directive to forward the HTTP_SAFEWORD_USER
variable.
Search for the existing JKEnvVar
directives and remove the comment mark (#)
for the HTTP_SAFEWORD_USER
variable as follows:
#JkEnvVar SSL_CLIENT_S_DN_CN " " JkEnvVar HTTP_SAFEWORD_USER " "
HTTP_SAFEWORD_USER
variable available in the /SGD
location.
Remove the comment marks (#) from the Location
directive as follows:
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
You can strengthen the security of web server authentication by authenticating users if they have valid Public Key Infrastructure (PKI) certificate installed on the client device.
SGD web server authentication relies on the web server setting the REMOTE_USER
variable to identify
the user. However, when users are authenticated using client certificates generally another environment variable is used to identify the user.
For Apache web servers (including the SGD Web Server) the SSL_CLIENT_S_DN_CN
variable is used.
The following procedure enables support for the SSL_CLIENT_S_DN_CN
variable. If your web server sets a different variable when using client certificates, follow these instructions.
The following procedure assumes that you have already configured the web server so that to access the /sgd
URL
you need a client certificate and verified it is working. The SGD Web Server includes the Apache
mod_ssl
module which you can use to set up up PKI client certificates.
Repeat the following procedure on each SGD server in the array.
The file is /opt/tarantella/webserver/apache/version/conf/httpd.conf
.
JkEnvVar
directive to forward the SSL_CLIENT_S_DN_CN
variable.
Search for the existing JKEnvVar
directives and remove the comment mark (#)
for the SSL_CLIENT_S_DN_CN
variable as follows:
JkEnvVar SSL_CLIENT_S_DN_CN " " #JkEnvVar HTTP_SAFEWORD_USER " "
SSL_CLIENT_S_DN_CN
variable available in the /SGD
location.
Remove the comment marks (#) from the Location
directive as follows:
<Location "/sgd"> SSLOptions +StdEnvVars +ExportCertData </Location>
Copyright © 1997-2007 Sun Microsystems, Inc. All rights reserved.