Single Sign On

Buen día Comunidad

Tengo un desafío personal en el que me gustaría recibir su guía.

Tengo publicadas N aplicaciones web, cada una tiene un pantalla de autenticación de usuario. Cuando ingreso establezco una sesión con valores que son propios del usuario.

Lo que me gustaría realizar es utilizar una sola pantalla de autenticación, que esa pantalla me lleve a otra página donde pueda ver solo alguna aplicaciones web(dependiendo el usuario), cuando seleccione alguna de las aplicaciones quisiera que me llevara a la aplicacion sin tener que pasar por otra autenticación y con la variable de sesión de usuario.

¿Algún tip?

He leido acerca de JOSSO y CAS pero me parecen algo complejos

De antemano gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Re: SSO

 

¿Qué servidor de aplicaciones estás utilizando?

GlassFish 4

GlassFish 4

Imagen de CybJer

Suponiendo que todas están en

Suponiendo que todas están en el mismo servidor de aplicaciones:

JNDI, probablemente puedas meter los valores de usuario ahi desde la nueva pantalla central que pretendes y recuperar la información en cada aplicacionn.

Y una mas viable creo yo:
Creas una nueva aplicacion solo con la pantalla de login, aqui haras la validacion de Usr y pass en la o las BD correspondientes. Y si es valido mandas un redirect a la aplicacion correspondiente con los datos de usr y pass pero al servlet de login (no a la pagina de login)

Se lee enredado pero en resumen es que una nueva aplicacion genere la URL de logeo como si se tratara de la pantalla de login de cada una de las aplicaciones.

Ejemplo :
App1 entras a la pantalla de login llenas tus datos presionas el boton entrar y te genera una llamada mas o menos asi:

http://127.0.0.1:8080/App1/loginServlet?usr=123456&pass=1f3870be274f6c49...

Esta es la url que deberias generar con la nueva aplicacion y y a la que debes redirigir automaticamente para simular el ingreso del usuario

PD: Obviamente puse un ejemplo de una peticion get (no me imagino como ilustrar una post)

Imagen de alucard1

Usar sistema de roles

¿Porque no integrar tus aplicaciones web en un mismo servidor (tal vez cada una como un microservicio) y definir un rol para cada una de ellas, por ejemplo con JAAS? Esto supondría un mejor control y una mejor seguridad entre muchas mejoras.

Saludos