Convertir el token en una cookie

3

Me encuentro en una situación en la que necesito transferir a un usuario de una aplicación móvil a una aplicación web. La aplicación móvil utiliza WebAPI en el backend con OAUTH 2. La aplicación web, por otro lado, es MVC que utiliza cookies.

No puedo cambiar la aplicación web de manera significativa, pero tengo el requisito de no tener al usuario para iniciar sesión en el sitio web después de que ya haya iniciado sesión en la aplicación.

Entonces, mi idea es agregar una ruta de punto de entrada a MVC, que no requiera autenticación y tome como parámetros el token utilizado en la API, y la URL que el usuario desea. El controlador autenticaría el token, emitiría la cookie y redirigiría al usuario hacia donde desea ir.

Esto sería un controlador de transferencia invisible. Tiene sentido y debería ser fácil de hacer, pero me siento incómodo al iniciar sesión en el sitio sin pasar por la ruta típica.

¿Existen vulnerabilidades potenciales en este enfoque?

    
pregunta Dan Revell 25.05.2016 - 10:01
fuente

1 respuesta

1

Tuve un problema similar para resolver, pero de una URL en SMS (inicio de sesión simple, sin nombre de usuario / contraseña). Así que genero un código de tiempo para él, pero también puedes usar el token existente (necesitas conocer las claves, por supuesto, para descifrarlo o validarlo).

Puede encontrar detalles de mi enfoque aquí con una respuesta sobre qué tan seguro es ese enfoque. Por lo tanto, siempre puede generar estos tokens de una vez para el inicio de sesión que son válidos por unos 30 segundos, por lo que será muy difícil abusar en este corto tiempo que pueda ver (aunque, por supuesto, necesitará más entropía en el token). de lo que necesitaba para SMS).

De lo contrario, si puede reutilizar el mismo token en la aplicación web, entonces ni siquiera necesita validarlo en esta solicitud adicional: simplemente emita la cookie con lo que tiene como parámetro, redirija y deje que MVC se encargue del resto. .

    
respondido por el Ilya Chernomordik 25.05.2016 - 22:30
fuente

Lea otras preguntas en las etiquetas