PingAM 8.0.0

Client-side sessions

For client-side sessions, AM returns the session state to the client after each request and requires the session state to be passed in with the subsequent request.

For security reasons, you should configure AM to sign and/or encrypt client-side journey and authenticated sessions. Decrypting and verifying the session can be an expensive operation to perform on each request. AM therefore caches the decrypt sequence in memory to improve performance.

Find information about configuring AM with sticky load balancing in Load balancing.

Find information about configuring client-side security in Client-side session security.

Advantages of client-side sessions

Unlimited horizontal scalability for session infrastructure

Client-side sessions provide unlimited horizontal scalability by storing the session state on the client as a signed and encrypted JWT.

Overall performance on hosts using client-side sessions can be easily improved by adding more hosts to the AM deployment.

Replication-free deployments

Global deployments may struggle to keep their CTS token stores synchronized when distances are long and updates are frequent.

Client-side sessions aren’t constrained by the replication speed of the CTS token store. Therefore, client-side sessions are usually more suitable for deployments where a session can be serviced at any time by any server.

Limitations of client-side sessions

The following features aren’t supported or have limited support for client-side journey sessions and authenticated sessions:

Functionality Details

Session quotas

Not supported

Session idle timeout

Not supported

Cross-domain single sign-on with restricted tokens

Not supported for web and Java agents

Session signing and encryption

Not supported for web and Java agents

Uncompressed sessions

Not supported for web and Java agents

SAML v2.0 single logout using the SOAP binding

Not supported for journey sessions.

Supported for authenticated sessions.

Session management using the AM admin UI

Not supported

Session notification

Limited support

Client-side journey sessions

Client-side journey sessions are configured by default in new installations.

While progressing through the authentication tree, the journey session state is returned to the client after each call to the authenticate endpoint and stored in the authId object of the JSON response.

If the realm the user authenticated to is configured for server-side authenticated sessions, AM creates the authenticated session in the CTS token store when the journey completes.

Storing journey sessions on the client allows any AM server to handle the journey at any point in time without load balancing requirements.

Journey session allowlisting is an optional feature that maintains a list of in-progress journey sessions and their progress in the journey to protect against replay attacks. Learn more in Journey session allowlisting.

Client-side authenticated sessions

For browser-based clients, AM sets a cookie in the browser that contains the session state. When the browser transmits the cookie back to AM, AM decodes the session state from the cookie. For REST-based clients, AM sends the cookie in a header. Find more information about session cookies in Session cookies and session security.

Session denylisting is an optional feature that maintains a list of logged out client-side authenticated sessions in the CTS token store. Find more information about session termination and session denylisting in Session termination.

A user is granted a client-side journey session while they are completing the authentication tree. If session denylisting is enabled, this journey session is "logged out" when the tree is completed, to prevent replay attacks. This "logging out" adds the journey session to the session denylist for client-side sessions. In the CTS store, this takes the form of a SESSION_BLACKLIST token that exists for the life of the journey session.