Previous Topic: New Claim in Trusted Identity Provider Returns Empty User List in People PickerNext Topic: Upgrade Your CA SiteMinder Agent for SharePoint


SessionLinker Reference

This section contains the following topics:

How the SessionLinker Works

Working with Cookies

Troubleshooting

How the SessionLinker Works

The SessionLinker synchronizes a SiteMinder session with a third-party application session for better security. If a user logs out of SiteMinder, the SessionLinker invalidates the related session of the third-party application.

When a user authenticates, SiteMinder assigns a unique session identifier to that user session. The session identifier, called the SiteMinder Session ID, remains constant for that user for the life of the user session. If the user logs out of SiteMinder through the Logout URL, SiteMinder deletes the SMSESSION cookie that SiteMinder uses to track the SiteMinder Session ID.

The SessionLinker module takes application session cookies and associates them, one by one, with a SiteMinder session. Once associated, the application cookie (referred to here as the foreign cookie) can only be used in conjunction with that particular SiteMinder session. The SessionLinker prevents attempts by other SiteMinder sessions to use the same foreign session.

To understand the SessionLinker operation, associate the SiteMinder session and corresponding foreign cookies that SiteMinder tracks together in a table, as shown in the following example:

SiteMinder Session ID

Foreign Cookie

ONE

ABCD

TWO

LMNO

THREE

PQRST

FOUR

VWXY

The SessionLinker uses the following process:

  1. The SessionLinker receives a request from a web server.
  2. The SessionLinker extracts the SiteMinder Session ID from the HTTP headers and the Foreign Cookie from all the incoming HTTP cookies.
  3. The SessionLinker compares the values that are presented from the web server against the contents of the table to determine whether the request must be allowed, as shown in the following examples:
    1. If the Session ID is FIVE and the Foreign Cookie is RSTU, SessionLinker inserts these values into the table.
    2. If the Session ID is SIX and the Foreign Cookie is ABCD, SessionLinker blocks the request because the Foreign Cookie ABCD is already associated with Session ONE.
    3. If the Session ID is ONE and the Foreign Cookie is HIJK, the old session is orphaned and SessionLinker updates the table to associate Session ID ONE with HIJK. When a session is orphaned, the Foreign Cookie can no longer be presented by anyone. This feature allows the SessionLinker to support applications that update the cookie during the user session.

The entire process is repeated for each Foreign Cookie. The resulting table may appear as follows:

SiteMinder Session ID

Foreign Cookie

***Orphaned***

ABCD

ONE

HIJK

TWO

LMNO

THREE

PQRST

FOUR

VWXY

FIVE

RSTU

What the SessionLinker Does Not Support

The SessionLinker does not do any of the following tasks:

SessionLinker accomplishes the linking by preventing the user from presenting an invalid Foreign Session cookie.

Working with Cookies

Single Session Cookie Enforcement

In most cases, an application has a specific name that is always used for an associated session cookie. In other cases, the name of the cookie begins with a known string, such as ASPSESSIONID or MYAPPSESSION, and ends with a random or unpredictable suffix. In such cases, the SessionLinker prevents users from presenting more than one of these cookies and enforces the expected session linking.

If the SessionLinker detects multiple potential session cookies, it performs the following steps:

  1. Blocks access to sessions
  2. Destroys all the cookies
  3. Redirects the user to a URL that you specify. If you do not specify a URL, the internal server error is displayed.

Enable Wildcard Cookie Names

You can add the following parameters of the ACO configured on the Policy Server to the configuration settings already selected:

COOKIE

Specifies that a cookies beginning with the specified name must be considered as a potential foreign session cookie. The cookie value may end in an asterisk (*). If you specify a cookie value other than a wildcard syntax, you must specify COOKIEPATH and COOKIEDOMAIN values that determine how to destroy the incoming cookies.

COOKIEPATH

Specifies the cookie path. If you specified a wildcard syntax for the COOKIE parameter, do not specify this parameter. The COOKIEPATH value depends on the session cookie, and has the following format:

COOKIEPATH=<Path for outbound cookies or cookies>

Default Value: /

Example: COOKIEPATH=/

COOKIEDOMAIN

Specifies the cookie domain. If you specified a wildcard syntax for the COOKIE parameter, you can specify this value in the following format:

COOKIEDOMAIN=<domain name for outbound cookie or cookies>

Default Value: Blank

Example: COOKIEDOMAIN=.ca.com

Maintain Links to Multiple Cookies

Some web applications use more than one cookie simultaneously within the same area of the site. You can configure the SessionLinker to maintain links from a single CA SiteMinder session to a number of cookies. A maximum of ten foreign session cookies can be linked to a single CA SiteMinder session.

Follow these steps:

  1. Determine the correct configuration string for each cookie.

    Note: Each configuration string requires at least a COOKIE directive, but any of the directives can be combined.

  2. Assign an integer from 0 through 9 to each cookie.
  3. Append the selected number to the directive name.

    Note: You can use any number for each set of directives but the settings for a single cookie require the same number.

  4. Concatenate the separate configuration strings into a single string.

Troubleshooting

If an error occurs, consider the following possibilities to troubleshoot the error: