¿Es seguro confiar en la dirección de correo electrónico del proveedor de identidad de terceros?

3

Suponiendo que un proveedor de identidad de terceros es confiable (por ejemplo, Facebook, Google, WindowsLive), ¿es seguro usar una dirección de correo electrónico (según lo proporciona el servicio) para conectar a un usuario que ingresa con diferentes proveedores a la misma cuenta?

Por ejemplo, digamos que tengo una tabla que se parece a esto:

.-------------------------------------------------------------------.
| user_id | fullname | email        | facebook_ident | google_ident |
|---------+----------+--------------+----------------+--------------|
| 1       | John Doe | [email protected] | 4362           | null         |
'-------------------------------------------------------------------'

Si un usuario inicia sesión a través de Google mediante el correo electrónico "[email protected]", ¿puedo conectarlo de manera confiable con user_id 1 (por ejemplo, establecer google_ident = "new_ident" e iniciar sesión como tal)?

Algunos escenarios de preocupación:

  • Si de alguna manera el proveedor deja de verificar la dirección de correo electrónico del usuario, alguien puede registrarse en el servicio con un correo electrónico que no le pertenece y secuestrar al usuario correspondiente en mi sistema.
  • Si, por mi parte, el usuario cambia el correo electrónico a uno que no posee, él "pasará" su cuenta a un usuario que ingrese con ese correo electrónico más adelante (y secuestre su cuenta como bien).

Una posible solución que puedo ver:

  1. No permitir que los usuarios creen cuentas cuando su dirección de correo electrónico ya esté en uso
  2. Permitir la conexión de cuentas solo cuando el usuario ya ha iniciado sesión
pregunta Christian 30.06.2016 - 20:24
fuente

1 respuesta

2

Tienes razón en que confiar en un tercero para la autenticación de tu sistema puede tener ciertos inconvenientes.

Es difícil comprender cómo podría considerar permitir que un extraño (usuario no autenticado) vincule una cuenta existente con otro proveedor. Eso sin duda representaría un gran defecto en su diseño.

Normalmente, cuando utiliza la autenticación de terceros, le permite a un usuario crear una cuenta en su sitio a través del identificador de terceros y también iniciar sesión con ese mismo método. Debe tener a ese usuario ya identificado para cualquier cambio que realice en su cuenta, especialmente cuando se trata de detalles de autenticación.

Si bien no es una mala práctica vincular a más de un proveedor a una cuenta, disminuye su seguridad, ya que esa cuenta única puede ser vulnerable a fallas de más de un sistema.

    
respondido por el Julie Pelletier 30.06.2016 - 20:45
fuente

Lea otras preguntas en las etiquetas