7

Tenemos un servidor con, digamos, 5-10 aplicaciones ASP.NET (MVC) internas que se ejecutan en grupos de aplicaciones separadas como sitios web separados (en diferentes puertos y/o subdominios). No sé nada sobre el marco de autenticación ASP.NET incorporado, así que me preguntaba si alguien podría enviarme un puntero rápido en la dirección correcta ...Autenticación ASP.NET - Un sistema de inicio de sesión para múltiples aplicaciones

Quiero asegurar todas las aplicaciones internas a través de un mecanismo de inicio de sesión (admite 3-5 roles diferentes, nada complejo). Este sistema de inicio de sesión sería otra aplicación/sitio web que se ejecuta en el servidor, y para obtener acceso a cualquier otra aplicación, uno debe haberse autenticado a través del sistema de inicio de sesión único y la aplicación de destino debe poder ver el rol del usuario. Las aplicaciones internas se modificarán a nivel de código para conectarse a este nuevo sistema de inicio de sesión (en otras palabras, modificaremos las aplicaciones actuales para que sean compatibles con la autenticación).

El objetivo de todo esto es que no quiero que cada aplicación tenga su propio mecanismo de inicio de sesión/autenticación, sino que utilice un sistema de autenticación más "global" (todo en el mismo servidor). No busco nada complejo (solo una compañía de 15 a 25 empleados, 3-5 departamentos: cada usuario debe estar asociado con un departamento (función) en función de su inicio de sesión) y cada aplicación se ajustará para mostrarle al usuario el datos basados ​​en su rol).

La pregunta es: ¿cómo hago para que el estado de autenticación de un usuario sea visible en todas las diferentes aplicaciones (en diferentes ensamblajes y ejecutándose por separado)?

¿Debo utilizar la autenticación Forms? ¿O algo en Spring.NET?

Respuesta

4

El inicio de sesión único es relativamente fácil de lograr dentro de un subdominio o dominio de segundo nivel. La Autenticación de formularios de ASP.NET es un sistema basado en tickets donde el ticket se almacena encriptado en una cookie. Lo que debe lograr es permitir que sus aplicaciones web compartan una cookie.

Para un escenario subdominio (por ejemplo mysite.com/app1, mysite.com/app2), acaba de establecer las claves encryption/decryption a ser el mismo en machinekey puesta en web.config archivos.

Para un escenario de dominio de segundo nivel (por ejemplo, app1.mysite.com, app2.mysite.com), además de lo anterior, debe hacer algunos cambios de código para obligar a todas las cookies de autenticación a utilizar el mismo nivel superior dominio (por ejemplo, mysite.com).

+0

Seguí sus instrucciones. No funcionó. Cuando hago clic en el enlace para navegar a app2.mydomain.com desde app1.mydomain.com, lo redirecciono para iniciar sesión. – uikrosoft

+0

En mi local, funciona perfectamente bien incluso sin que tengan las mismas teclas. – uikrosoft

1

Si su empresa se ejecuta en Windows y tiene una configuración de Active Directory internamente (Servicios de dominio de Active Directory), puede configurar todos sus sitios ASP.NET para utilizar la Autenticación de Windows integrada. Esto es extremadamente fácil de configurar y muy común para sitios de intranet. Los usuarios que acceden a sus sitios internos se autentican automáticamente con su identidad de Windows, lo que significa que no necesitan un nombre de usuario & formulario de inicio de sesión con contraseña. Lea todo al respecto aquí: http://www.asp.net/mvc/tutorials/authenticating-users-with-windows-authentication-cs

Cuestiones relacionadas