Chapter 17. Single Sign On (SSO)
17.1. About Single Sign On (SSO) for Web Applications
Overview
Single Sign On (SSO) allows authentication to one resource to implicitly authorize access to other resources.
Clustered and Non-Clustered SSO
Non-clustered SSO limits the sharing of authorization information to applications on the same virtual host. In addition, there is no resiliency in the event of a host failure. Clustered SSO data can be shared between applications in multiple virtual hosts, and is resilient to failover. In addition, clustered SSO is able to receive requests from a load balancer.
How SSO Works
If a resource is unprotected, a user is not challenged to authenticate at all. If a user accesses a protected resource, the user is required to authenticate.
Upon successful authentication, the roles associated with the user are stored and used for authorization of all other associated resources.
If the user logs out of an application, or an application invalidates the session programmatically, all persisted authorization data is removed, and the process starts over.
A session timeout does not invalidate the SSO session if other sessions are still valid.
Limitations of SSO
- No propagation across third-party boundaries.
- SSO can only be used between applications deployed within JBoss EAP 6 containers.
- Container-managed authentication only.
- You must use container-managed authentication elements such as
<login-config>
in your application'sweb.xml
. - Requires cookies.
- SSO is maintained via browser cookies and URL rewriting is not supported.
- Realm and security-domain limitations
- Unless the
requireReauthentication
parameter is set totrue
, all web applications configured for the same SSO valve must share the same Realm configuration inweb.xml
and the same security domain.You can nest the Realm element inside the Host element or the surrounding Engine element, but not inside a context.xml element for one of the involved web applications.The<security-domain>
configured in thejboss-web.xml
must be consistent across all web applications.All security integrations must accept the same credentials (for instance, username and password).