¿Mi método de autenticación es seguro?

3

He construido una herramienta orientada a la web que es principalmente para uso interno, pero algunos de nuestros clientes también la utilizarán. Al crear las partes de registro / inicio de sesión, pensé en quién lo usaría y cómo lo harían.

A menudo, habrá una cuenta que es propiedad de un cliente, y la cuenta tendrá muchos usuarios, que tendrán diferentes niveles de acceso para hacer cosas.

Cuando se necesita agregar un nuevo usuario a una cuenta existente, hay un problema. Veo una situación común en muchas otras herramientas en las que un administrador que ya está autenticado (conectado) tendrá acceso a la sección "Crear nuevo usuario" donde puede configurar un nuevo usuario, elegir una contraseña, etc. y pasar las nuevas credenciales. en el nuevo usuario. Esto abre más problemas de los que me gustaría mencionar, pero estoy seguro de que cualquiera que lea esto puede pensar en muchos.

Pensé en las siguientes alternativas

  • El administrador crea la nueva cuenta de usuario y se envía un correo electrónico al nuevo usuario, quien debe usar un enlace en el correo electrónico para establecer una contraseña antes de poder usar la cuenta. Me gusta esta idea, pero un error tipográfico en la dirección de correo electrónico podría dar acceso a otra persona, lo que no es deseable.

  • El administrador crea una clave única de tiempo limitado que puede proporcionar a un nuevo usuario. El nuevo usuario luego ingresa sus detalles en un formulario de registro junto con el OTK, que autentica a ese usuario como miembro del cliente / cuenta deseado.

La segunda opción parece mucho mejor, lo único que se transmite de manera insegura es la clave, que es de uso único y tiempo limitado, y el administrador puede redimirla si es necesario, pero no he visto este método en uso en ninguna parte y me pregunto. por qué.

¿Hay algún defecto con este método que haya pasado por alto?

¿Qué otras opciones no he pensado?

    
pregunta Darren H 05.03.2018 - 18:07
fuente

1 respuesta

2

Podrías hacerlo de la siguiente manera:

En lugar de que el administrador cree la cuenta y se ponga en contacto con el usuario, pídale al usuario que solicite acceso a través de un formulario web. El usuario puede establecer una contraseña inicial allí mismo, y también da su dirección de correo electrónico.

Luego, el administrador recibe una notificación de que hay una nueva solicitud de registro de usuario que debe aprobar.

El administrador entonces necesita autenticar al usuario antes de aprobarlo; Esto lo puede hacer el sistema verificando automáticamente su dirección de correo electrónico (dependiendo de si usted confía automáticamente en todos los usuarios de un dominio de correo determinado; recomendaría que no lo haga) o entregando tokens de acceso único a personas específicas de antemano. para ingresar como parte del formulario de registro (mucho más seguro).

Básicamente, esta es tu solución, solo con el contacto inicial invertido.

Esta anulación tiene una ventaja (leve): si realiza la verificación automáticamente por correo electrónico, ahora ha resuelto el problema de correo electrónico mal escrito. Considere la posibilidad de que Alan Turing solicite el acceso y escriba incorrectamente su dirección de correo electrónico para que la solicitud de autenticación vaya a Alai Turing. Alai puede pretender ser Alan, pero no podrá iniciar sesión, ya que no conoce la contraseña de Alan. Deberá asegurarse de que las contraseñas no se puedan restablecer hasta después del primer inicio de sesión exitoso (básicamente, una cuenta solo se considera autenticada y activa cuando se ha producido un inicio de sesión y una verificación por correo electrónico)

Tenga en cuenta que la verificación automática de correo electrónico que describí solo protege contra errores ortográficos accidental de la dirección de correo electrónico. Si Alai se registra con la intención de hacerse pasar por Alan, esto no lo protegerá.

    
respondido por el Pascal 06.03.2018 - 00:11
fuente

Lea otras preguntas en las etiquetas