Una solución de SSO generalmente sigue los pasos que pueden apreciar en la imagen anterior.
Un usuario intenta autenticarse en una aplicación web, alojada en un servidor de aplicaciones, y es redirigido a un servidor Single Sign On, donde se comprueba si está autenticado o no, si ya se ha autenticado antes entonces se le concede el acceso, en caso de que no esté autenticado pues se le muestra una página donde pueda introducir sus credenciales, ej: usuario y contraseña, luego de que la autenticación es exitosa es redirigido nuevamente a la aplicación web pero llevando consigo una cookie, un ticket y un id del servicio al que se ha autenticado, esto para evitar en futuras autenticaciones tener que volver a introducir el usuario y la contraseña.
La herramienta Identity Server de WSO2 en sus últimas versiones incluye un servidor de SSO y se está trabajando por parte de WSO2 en crear un agente para aplicaciones web desarrolladas en JAVA. Yo por mi parte también he implementado un agente para SSO en aplicaciones web JAVA con el objetivo de usar esta funcionalidad en la plataforma de seguridad y que la aplicaciones que desarrolle no tengan que preocuparse por implementar módulos de autenticación.
Anteriormente trabajaba con la herramienta CAS, la preferida por muchos para soluciones SSO, pero dada las funcionalidades añadidas de la plataforma de seguridad me es más útil usarla en este tipo de escenarios. Lo bueno que tiene el CAS es su comunidad mucho más grande que la de WSO2 y que tiene ya agentes creados para diversos lenguajes de programación y aplicaciones, en este último caso tenemos como ejemplo al Liferay, un portal empresarial muy usado.
Uso de la plataforma de Seguridad para soluciones de Single Sign On.