2.10 Troubleshooting Secure Global Desktop Authentication

Use the information in this section to troubleshoot problems when users log in to SGD.

2.10.1 Setting Log Filters for Authentication Problems

To help diagnose problems with Secure Global Desktop authentication, use one or more of the log filters shown in the following table to obtain more information.

Log Filter

Purpose

server/directoryservices/*

Information about authentication mechanisms that use directory services.

Applies to Active Directory, LDAP, and third-party authentication.

server/login/*

Information about what happens when users attempt to log in.

Applies to all authentication mechanisms.

server/securid/*

Information about connections to RSA Authentication Manager.

Applies to SecurID authentication.

For information about setting log filters, see Section 7.4.3, “Using Log Filters to Troubleshoot Problems With an SGD Server”.

2.10.2 Denying Users Access to SGD After Failed Login Attempts

SGD Administrators can enable a login failure handler so that users are denied access to SGD after three failed login attempts. See Section 2.10.2.1, “Enabling the Login Failure Handler”. This additional security measure only works if users have their own user profile objects in the local repository. It does not work for the default profile objects in the System Objects organization.

The number of login attempts is configurable, see Section 2.10.2.2, “Changing the Number of Login Attempts”. By default users get three attempts. The number of login attempts is local to each SGD server and is not copied across the array. Only when the login limit is reached on a server, is the user denied access across the array.

For example, a user could try to log in on each SGD server two times, but only when they fail for the third time on a server are they denied access to the other members of the array.

If a user is denied access, they are only denied access to SGD. They are not denied access to the host on which SGD is installed

When a user is denied access, SGD deselects the Login check box on the General tab (--enabled false) for the user profile object in the Administration Console. To give a user access again, you must select the check box (--enabled true).

For security reasons, users are not given any indication that their account is disabled. They see the same message as if they had entered an incorrect password.

2.10.2.1 Enabling the Login Failure Handler

You can only enable the login failure handler from the command line.

Use the following command:

$ tarantella config edit \
--tarantella-config-components-loginfailurehandler 1 \
--tarantella-config-components-loginfailurefilter 1

2.10.2.2 Changing the Number of Login Attempts

Ensure that no users are logged in to the SGD servers in the array and that there are no running application sessions, including suspended application sessions.

  1. Log in to the primary SGD server as superuser (root).

  2. Stop the primary SGD server.

  3. Set the number of login attempts.

    Use the following command:

    # tarantella config edit \
    --com.sco.tta.server.login.LoginFailureHandler.properties-attemptsallowed num
    
  4. Start the primary SGD server.

  5. Do a warm restart of all secondary SGD servers.

    Use the following command:

    # tarantella restart sgd --warm
    

2.10.3 Troubleshooting Web Authentication

This section includes troubleshooting information for some common problems that users experience when they log in to SGD using web authentication.

2.10.3.1 Web Authentication Fails

If a user fails to authenticate to the web server, they may see a message such as “401 Authorization Required”. This indicates that either there is a problem with the user name and password, or there is a problem with the web server configuration.

Check the following:

  • Does the user have an entry in the web server password file?

  • Is the web server configured to use the correct password file?

  • If you are using the SGD web server, is the password file accessible by the ttaserv user? If this user cannot read the password file, web authentication fails.

2.10.3.2 Users See the Standard SGD Login Page

If web authentication is not set up correctly or it fails for any reason, SGD displays the standard login page. Use the following checklist to resolve the problem.

Questions

Questions and Answers

2.10.3.2.1: Is the right SGD URL protected?

For the workspace, you must set up your web server to protect the /sgd URL.

2.10.3.2.2: Is Tomcat configured to trust the web authentication?

The Tomcat component of the SGD web server has to be configured to trust Apache web server authentication.

On each array member, edit the /opt/tarantella/webserver/tomcat/tomcat-version/conf/server.xml file. Add the tomcatAuthentication="false" attribute to the <Connector> element for the AJP 1.3 Connector.

2.10.3.2.3: Does the user have a user profile in the local repository?

If your configuration of SGD relies on users having user profile objects in the local repository and you have not enabled one of the fallback profile objects, users may not be able to log in. If this happens and you have enabled logging, search the log file for messages that indicate that SGD could not find a match for the authenticated user.

Either create a user profile for the user or enable one of the fallback profile objects. See Section 2.6.1, “How Third-Party Authentication Works” for more details.

2.10.3.2.4: Is the user an SGD Administrator?

By default, SGD Administrators cannot access SGD if they have been authenticated by a web server. To change this behavior, see Section 2.6.8, “SGD Administrators and Third-Party Authentication” for details.

2.10.3.2.5: Have you changed the trusted user?

If you have changed the user name and password of the trusted user, have you verified that the new user works? See Section 2.6.9, “Trusted Users and Third-Party Authentication” for details.

2.10.3.3 Users Get the Wrong Workspace

With web authentication, SGD performs a search to establish the user identity and login profile. The first matching user profile found is used.

Search the SGD log files for messages that indicate an ambiguous user. This indicates that more than one user identity matched the user.

To resolve the situation, you can do either of the following:

  • Accept the first match

  • Attempt to manually resolve the ambiguity, for example by creating or amending user profiles

2.10.4 Users Cannot Log In to Any SGD Server

If all users, including the UNIX system root user, cannot log in to any SGD server, this may be caused by either of the following:

  • All authentication mechanisms are disabled

  • User logins to all SGD servers are disabled

To check whether all authentication mechanisms are disabled, use the following command:

$ tarantella config list | grep login

If all authentication mechanisms are disabled, enable the UNIX system authentication mechanism from the command line, as follows:

$ tarantella config edit --login-ens 1

Once the UNIX system authentication mechanism is enabled, you can log in to the Administration Console with the user name Administrator and the UNIX system root user's password. You can then reconfigure authentication.

To check whether user logins are disabled for an SGD server, use the following command:

$ tarantella config list --server serv... --server-login

If user logins to all SGD servers are disabled, use the following command to enable user logins:

$ tarantella config edit --array --server-login 1

2.10.5 Using Shared Accounts for Guest Users

SGD enables more than one user to log in using the same user name and password, for example to share an account for guest users.

Note

Anonymous users are always treated as using a shared account, see Section 2.3, “Anonymous User Authentication”.

Users that share a user profile object share the same application server passwords. Guest users cannot add or change entries in the password cache. This means that, unless an SGD Administrator has cached application server passwords for them, guest users are prompted for a password every time they start an application. Use the Administration Console or the tarantella passcache command to manage application server passwords for guest users.

2.10.5.1 Sharing a User Profile Between Users

  1. In the Administration Console, go to the User Profiles tab.

  2. Select the user profile that is to be shared.

    The General tab is displayed.

  3. For Login, select the Multiple check box.

  4. Click Save.

2.10.6 An Ambiguous User Name Dialog Box Is Displayed When a User Tries to Log in

The Ambiguous User Name dialog box is displayed only for users who share person object attributes and also have the same password.

For example, there are two users with the name John Smith (cn=John Smith) and they have chosen the same password. Their email addresses and user names are different. If they log in with the name John Smith, SGD displays the Ambiguous User Name dialog box which asks them to provide either an email address or a user name. The dialog box displays because the credentials they supply match more than one user. If they log in using an email address or a user name, they are logged in.

The Ambiguous User Name dialog box is displayed only if you are using LDAP authentication or UNIX system authentication that searches for the user ID in the local repository.

The solution is to ensure that users have unique passwords. Alternatively, configure the user profiles to have unique attributes. SGD uses the Name (--name), Login Name (--user) and Email Address (--email) to identify and disambiguate users.

2.10.7 Troubleshooting SecurID Authentication

The following topics may help you to diagnose and fix issues with SecurID authentication.

2.10.7.1 Relocating the SecurID Properties File

The rsa_api.properties properties file defines the location of the RSA Authentication Manager configuration file sdconf.rec on the SGD host. By default, the rsa_api.properties file is located in the /opt/tarantella/var/rsa directory.

If your SGD deployment requires that the properties file is located elsewhere, use the following command on each SGD server to set the path to the properties file:

# tarantella config edit --tarantella-config-server-securidpropdir props-dir

where props-dir is the directory path for the rsa_api.properties properties file.

Ensure that the properties file is readable by SGD. For example:

# chmod 444 rsa_api.properties

2.10.7.2 Configuring the SecurID Authentication Timeout

The SecurID authentication timeout controls how long SGD waits for a successful authentication.

If you see log messages about login timeouts, use the following command to increase the SecurID timeout value for the array:

# tarantella config edit --tarantella-config-array-securidtimeout secs

The default timeout value is 3000 seconds (5 minutes).

2.10.8 Troubleshooting Single Sign-On Authentication

This section includes some troubleshooting and advanced configuration topics for single sign-on authentication.

2.10.8.1 Assigning Workspace Content for Single Sign-On Authentication Users

Single sign-on users are automatically given the workspace associated with the default third-party user profile object, System Objects/Third Party Profile. Additional workspace content, such as application objects, can be assigned to all single sign-on users by direct assignment to the default third-party user profile.

To assign an application to a specific user or group, use the LDAP Search (--ldapsearch) attribute for the application object. This is an LDAP search filter which can be compared to the data returned from Oracle Access Manager in the string OAM_DATA.

For example, if OAM_DATA is configured to return group data in the form group=group-name, a search filter of "(group=marketing)" assigns the application object to all users in the Oracle Access Manager group, marketing.

2.10.8.2 Oracle Access Manager Session Timeouts

The Oracle Access Manager session always terminates automatically when a user logs out of SGD. This applies whether the user authenticated using single sign-on before or after logging in to SGD.

Oracle Access Manager sessions automatically timeout if they are idle for 15 minutes. Single sign-on users may need to resubmit credentials in this case.

See the Oracle Access Manager documentation for more information on session timeouts for Oracle Access Manager.

2.10.8.3 Provisioning Application Server Users

Automatic provisioning (autoprovisioning) enables all single sign-on users to authenticate to an application server using a common user account, called a base user. This removes the need to map single sign-on accounts on Oracle Access Manager to application server accounts and means that users are not prompted for credentials when they start an application.

Autoprovisioning of application server users is available for X applications running on a UNIX or Linux platform application server. The application must use the Firefox browser.

The Firefox browser runs as the base user and uses a temporary Firefox profile, which is deleted when the application is closed. Credentials for the base user are added automatically to the SGD application server password cache, so that users are not prompted for credentials when they run the application.

Autoprovisioning for Windows application servers is not available.

To use autoprovisioning, do the following:

  • In the Administration Console, go to the Launch page for the application object and select the Enabled with Auto Provisioning option for the Single Sign-On attribute.

  • Select the Application Server that hosts the application.

  • Enter credentials for the base user. The base user must have an account on the application server and must have the required permissions to run the application.

You can also use the following command line to enable autoprovisioning for an X application object:

$ tarantella object edit --name obj --ssoauth 2

Use the tarantella passcache command to add base credentials for the application, as follows:

$ tarantella passcache new \
--person "SSO" \
--type "SSO" \
--resource ".../_ens/o=applications/cn=app&.../_ens/o=appservers/cn=appserv" \
--resuser base-user 

where app is the name of the application, appserv is the name of the application server, and base-user is the base user for the application server.