Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

419
Views
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 answers
Answer question

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 Report

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 Report

0

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

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!