Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

421
Vistas
Autenticación entre dominios ASP.net MVC

Tengo dos aplicaciones web diferentes creadas con ASP.net MVC. Es posible que estas dos aplicaciones no se estén ejecutando en el mismo servidor ni en el mismo dominio.

Me gustaría que si un usuario inicia sesión en uno de ellos, automáticamente debería iniciar sesión en el otro. Lo mismo debería funcionar con el cierre de sesión.

¿Cuál crees que es la mejor solución? ¿Conoces algún código de ejemplo?

¡Gracias!

--- EDITADO CON MAS INFO ---

Escenario de caso de uso:

El usuario tiene la aplicación web A abierta en una pestaña, y en algún punto de la aplicación hay un enlace que redirige al usuario a la aplicación web B. Si ha iniciado sesión en A , me gustaría mostrarle la página completa y, si no lo está, redirigirlo al formulario de inicio de sesión.

Por qué necesito hacerlo:

Las aplicaciones A y B ya están construidas. Aparentemente, la única forma de acceder a B es haciendo clic en el enlace ubicado en A , que solo se muestra si ha iniciado sesión previamente. El problema es que si conoces la URL de alguna página de B (son largas y complejas, pero aún así) puedes escribirla en el navegador y acceder a B , lo que significa un problema de seguridad.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Mi respuesta puede no ser la mejor, sin embargo, puede usar algún mecanismo complicado como

  1. cada vez que vaya a otra aplicación, debe pasar un token de la aplicación A a la B.
  2. Valide este token en el sitio B.
  3. y autorizó a ese usuario en función del token. (Me refiero a aplicar inicio de sesión silencioso o de puerta trasera)
over 4 years ago · Santiago Trujillo Denunciar

0

Supongo que no puede comunicarse entre las aplicaciones A y B utilizando ninguna tienda compartida. (Esto podría permitir alguna implementación de sesión compartida).

La forma más estándar de la industria (OpenID Connect) de hacerlo es como algunas de las otras respuestas han insinuado. Trataré de dar más detalles para llevarlo por el camino correcto.

Tanto la aplicación A como la B deben transmitir el proceso de autenticación a un tercero de confianza (que podría estar alojado en A, B o en una aplicación diferente por completo). Llamémoslo C

Cuando el usuario llega a A o B (sin importar que B tenga URL extrañas y complicadas, siempre puede marcarlas como favoritas), su solicitud debe contener un token de autorización. Si no es así, no está autenticada y sería redirigida a C y se le presentaría algún mecanismo de inicio de sesión, por ejemplo, formulario de usuario/contraseña.

Después de un inicio de sesión exitoso, se la redirige de nuevo a A/B (dependiendo de su procedencia) para completar lo que estaba haciendo con el token de autenticación. Ahora, con el token de autenticación presente, está autenticada.

Si se autentica con A y luego se redirige a B, esta redirección también debe contener el token, B sabría cómo confiar en ese token.

Ahora, si él simplemente abre una nueva pestaña, B no vería ningún token, por lo que sería redirigida a C, solo para ser redirigida de regreso (ella ya está autenticada, ¿recuerdas?) a B con el token, y ahora todo es bueno.

Lo que describí es un flujo común usando OpenID connect, y si usa .net, realmente sugiero usar IdentityServer de Thinktecture para hacer el trabajo duro por usted y ser su "C".

Otra opción es pagar por dicha "C" alojada como una aplicación SaaS: consulte Auth0

over 4 years ago · Santiago Trujillo Denunciar

0

Puede implementar OAuth en un proyecto. Puede obtener más ayuda aquí: http://www.openauthentication.org/about

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda