Autenticación Oauth sin parámetro de estado

1

Tengo algunas preocupaciones de seguridad sobre el primer paso de la autenticación de la cuenta en mi aplicación.

La autenticación pasa por un proveedor de OpenID . Si la respuesta de dicho proveedor muestra que el usuario ya está registrado, lo autentico, le envío un auth token que se almacenará en una cookie y se enviará como encabezado de portador . El token se firma con JWT y la sesión se mantiene en Mongo . Si es la primera vez que se autentica, creo la cuenta y hago el mismo proceso.

Me parece inseguro porque no uso el parámetro de estado de OpenID porque no puedo generar algo basado en un usuario que tal vez aún no exista.

He visto varias veces que se recomendó el uso de este parámetro, pero también respuestas como esta diciendo que esto era inútil.

También tendrá que autenticarse en otro Oauth provider después de eso, pero como esta operación estará disponible solo para usuarios registrados, puedo generar y enviar fácilmente el parámetro de estado al proveedor que usa algún tipo de cifrado con el ID de usuario para ayudarme a recuperarlo, y nadie puede engañar a la sesión.

También veo que no es una buena práctica verificar el URL de referencia del Oauth callback , pero me parece bastante seguro, ya que lo niega ataques al cliente.

Tenga en cuenta que la aplicación utilizará SSL , por lo que no habrá dudas sobre MITM .

Sé que puedo crear un usuario local utilizando la asociación clásica de correo electrónico y contraseña y luego autenticar con los proveedores de OpenID , pero me gustaría omitir un proceso tan aburrido, ¿es eso posible?

    
pregunta Aperçu 12.04.2015 - 23:13
fuente

0 respuestas

Lea otras preguntas en las etiquetas