REST API autenticación sin estado usando inicio de sesión social

4

Estoy implementando una API REST para nuestras aplicaciones móviles en las que el usuario iniciará sesión utilizando los SDK de varias redes sociales. Actualmente, la estrategia de inicio de sesión es la siguiente:

  • Los tokens (access_token en el caso de Facebook, access_token y refresh_token en el caso de Google+) que genera el SDK se envían al punto final de inicio de sesión del servidor API.
  • Tras la verificación del token (utilizando el punto final respectivo de la aplicación social), se genera un token web JSON firmado por una cadena aleatoria y se devuelve a la aplicación móvil, que luego la conserva en un almacén seguro de valor-clave. Este token se mantendrá como encabezado de autorización para cualquier otra solicitud.
  • La presencia del token significa que el usuario ha iniciado sesión. Cuando el usuario cierra la sesión (o la sesión de redes sociales caduca), el token se elimina.

Tengo las siguientes preguntas sobre esta estrategia:

  1. La carga útil del token consta de la identificación del usuario y de una fecha de emisión. Actualmente, no hay un mecanismo de expiración implementado. ¿Se requiere esto en este caso?
  2. ¿Esta estrategia es segura? ¿Puedes ver algún defecto / laguna en él?
  3. ¿Qué estrategia se debe utilizar para asegurar el punto final de inicio de sesión?
pregunta ZeMoon 24.01.2015 - 14:52
fuente

1 respuesta

2

La caducidad del token puede tener lugar en el lado del servidor, lo que hace que el cliente vuelva a ejecutarse después de x tiempo.

Si está buscando hacer inicios de sesión sociales, este método debería estar bien siempre y cuando esté transmitiendo los datos a través de SSL y no guarde las credenciales (Combos U / P) en sus sistemas. El punto final de inicio de sesión debe ejecutarse en HTTPS (de nuevo, leer, seguro) y debe conectarse al punto final de terceros, de forma segura.

Si está buscando una buena solución (gratuita), Firebase.com (principalmente una base de datos relacional en la nube) tiene una excelente sección para incluir la autenticación de terceros, es mi sistema preferido, pero también uso mucho su base de datos.

Saludos HTH

    
respondido por el Ajaxasaur 31.03.2015 - 20:45
fuente

Lea otras preguntas en las etiquetas