Autenticar usuario simplemente haciendo clic en un enlace en un sitio web externo

4

Me pidieron que permitiera que los usuarios de un socio se autentiquen en nuestro backoffice simplemente haciendo clic en un enlace en su backoffice. La única información común que tenemos es el correo de estos usuarios.

No veo cómo puedo implementar esto de forma segura. ¿Alguna idea?

Parece que OAuth2 es el camino a seguir. Después de un poco de lectura, supongo que el flujo debe ser como

  1. dar un token de acceso al backoffice del socio a través de credenciales de cliente subvención
  2. haga que utilicen este token llamando a un punto final que devolverá un enlace dado el correo del usuario como parámetro

El enlace contendrá un token de uso único que se utilizará para autenticar al usuario.

Teniendo en cuenta que todas las llamadas usan HTTPS, creo que esto sería seguro?

    
pregunta MatTheCat 17.02.2017 - 12:20
fuente

2 respuestas

1

Puede implementar algo como OAuth 2.0 ( ejemplo ). Básicamente, tiene una aplicación, un servidor de autenticación y un servidor de recursos. La aplicación desea acceder a su recurso a través de un servidor de autenticación / autorización. Una serie de intercambios de tokens de una manera particular hace que esto sea posible de manera segura.

    
respondido por el Lie Ryan 17.02.2017 - 13:55
fuente
0

Tendría mucho cuidado con esto. Probablemente la primera pregunta sea: ¿Dónde quieren crear el enlace?

¿Será un enlace estático para cada usuario? - BAD IDEA

¿O habrá un botón en su portal con una lógica de back-end (conectada a su back-end) que creará un enlace de una vez limitado con una caducidad muy corta (segundos) y se redirigirá automáticamente? - ESTO PODRÍA TRABAJAR.

EDIT:

Sí, OAuth es una solución. Yo usaría algo como esto:

  1. Proporcionará una clave secreta para PBO.
  2. Digamos que PBO usa el sitio web partner-backoffice.org, hay un botón "Ir a YBO".
  3. El usuario hace clic en el botón y va a partner-backoffice.org/ybo-oauth (aún el sitio de PBO)
  4. El script / ybo-oauth realiza una solicitud de CURSO a YBO (your-backoffice.org/oauth-endpoint), y envía el correo electrónico del usuario y otros datos relevantes, incluida la clave secreta
  5. YBO valida la clave secreta y otros datos (sería bueno agregar direcciones IP de PBO a la lista blanca) y devuelve el token de acceso con una caducidad muy breve (segundos)
  6. El script / ybo-oauth redirige al usuario a su sitio web your-backoffice.org/?access_token = ...
  7. YBO valida el token de acceso (y comprueba la caducidad) e inicia la sesión de usuario (o lo que sea que usas generalmente)

Esto debería funcionar. Si va a utilizar HTTPS y la lista blanca de IP, podría ser suficiente para sus propósitos.

Abbrs:

  • PBO - backoffice del socio
  • YBO - tu backoffice
respondido por el Zdeněk 17.02.2017 - 13:08
fuente

Lea otras preguntas en las etiquetas