2010-08-26 21 views

Respuesta

8

Agregaste j2ee como una etiqueta, así que voy a suponer que esta es una pregunta de Java. Puede implementar el inicio de sesión único en el código por ... bueno ... código de escritura. Use la autenticación j2ee incorporada o desarrolle la suya propia.

Ver esta respuesta de posibilidades: Single sign-on in Java EE

La estrategia básica consiste en inventar algún tipo de estrategia de cookie compartida de que todos los sitios web pueden leer. Por ejemplo, si está desarrollando una solución de inicio de sesión único para xyz.company.com y abc.company.com, envíe una cookie de sesión de algún tipo con la ruta de company.com. Ambos sitios pueden acceder a esta sesión y ver "Oh, este tipo ha iniciado sesión antes".

También existen estrategias para el inicio de sesión único web cuando autentica usuarios en sitios totalmente distintos como MySiteA.com y MySiteB.com.

Para prevenir ataques de repetición, deberá llevar un almacén de sesión común de algún tipo con el que sus páginas web puedan validar esta cookie en cada solicitud de página. No etiquetó este .NET, pero en .NET esto significa que debe mover el estado de la sesión fuera del proceso de trabajo de IIS, que no es el predeterminado cuando selecciona Archivo> Nuevo proyecto ... para aplicaciones web.

Su aplicación tendrá que proteger cada solicitud web entrante porque ahora está confiando en esa cookie como un "ticket" o "comprobante de entrada". Necesitará una estrategia para desautorizar esa cookie (al cerrar sesión o tiempo de espera u otro).

La mayoría de los marcos web, incluidos J2EE, .NET o servidores de aplicaciones como WebSphere, tienen soluciones para esto. Deberá investigarlos y familiarizarse con las técnicas que necesita.

También puede comprar software de acceso de terceros como CA Siteminder. En este caso, no escribe ningún código de autenticación y acceso y deja que sus agentes web hagan guardia frente a su aplicación. También tienen soluciones de inicio de sesión único para múltiples sitios web que pueden o no compartir un dominio común de nivel superior.

No estoy recomendando explícitamente este producto. Estoy diciendo que ha hecho una pregunta muy grande y que puede usar Java para resolver su problema o comprar productos de terceros que intenten hacer lo mismo.

Este es un tema ENORME que NO he intentado cubrir en detalle. Esta no es una respuesta suficiente. El punto es que deberá seleccionar más piezas de su arquitectura antes de poder obtener ayuda y orientación más específicas.

Cuestiones relacionadas