Saltar al contenido

Cómo implementar SSO en una aplicación web Tomcat existente

Recabamos en el mundo on line para así mostrarte la solución para tu inquietud, si continúas con dudas puedes dejarnos la pregunta y te responderemos sin falta.

Solución:

Actualización: Es 2018 y la siguiente información está desactualizada. Si está iniciando una nueva aplicación, use un protocolo de identidad federado como Open ID Connect y obtendrá SSO gratis.

Hay algunos enfoques que podría tomar:

  1. Puede usar Tomcat para la autenticación y usar las capacidades de inicio de sesión único de Tomcat. Si actualmente está utilizando Spring para autenticar al usuario, es posible que deba cambiar algunas cosas. Además, dependiendo de cómo realice la autenticación, es posible que la autenticación de Tomcat no sea lo suficientemente configurable.
  2. Puede configurar un tercero, CAS, servlet (o algo similar), contra el cual se autentican ambas aplicaciones web.
  3. Puede configurar esto usted mismo usando Spring y filtros autenticados previamente. Básicamente, tendría que escribir su propio filtro preautenticado que verificó alguna ubicación a la que ambos servlets tenían acceso (¿base de datos?, ¿contexto compartido?) para las credenciales existentes antes de recurrir a los métodos de autenticación antiguos. Deberá asegurarse de borrar esta autenticación en un filtro en algún lugar para que la próxima solicitud no herede automáticamente las credenciales de las solicitudes anteriores.

Puede implementar SSO de muchas maneras diferentes:

  1. Oauth 2 – http://oauth.net/2/
  2. SAML 2: https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security

SAML 2.0 tiene muchas implementaciones para roles de proveedor de servicios/identidad.

Para obtener una lista de implementaciones de IDP, puedo indicarle esta publicación de stackoverflow: https://stackoverflow.com/a/761774/126414

Si planea implementar un proveedor de servicios, hay una buena extensión de primavera: http://static.springsource.org/spring-security/site/extensions/saml/index.html

He logrado esto con el Tomcat Válvula SSO:

  1. Coloque la válvula SSO dentro del elemento Host (localhost) de server.xml Archivo:

  2. Agregue usuarios y roles (p. ej., en tomcat_users.xml):

  3. En web-app elemento de tu aplicación web.xml archivo, agregue restricciones de seguridad:

    App name /* employee FORM file /login.jsp /error.jsp employee

  4. Eso es. Ahora, inicie sesión en una de sus aplicaciones y debería iniciar sesión en otras aplicaciones.

Por supuesto, no debe usar una contraseña de texto sin formato en la producción, este es solo un ejemplo rápido. Debe considerar la autenticación Digest, así como configurar SSL en Tomcat.

¡Espero que esto ayude a alguien!

PS si almacena usuarios en el base de datos SQL, por favor revise mi comentario debajo de esta respuesta.

Te mostramos reseñas y calificaciones

Si para ti ha sido útil nuestro artículo, sería de mucha ayuda si lo compartes con más seniors y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 3.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *