Con OpenID, ¿debería actualizar / volver a autenticar?

0

Estoy usando Google OAuth 2.0 para proporcionar inicios de sesión a mi sitio (una herramienta interna de rinkydink para el uso de otros desarrolladores en mi empresa, por lo que la seguridad no es de suma importancia, pero hay algunas restricciones de acceso) Sin embargo, una vez que haya iniciado sesión , No necesito acceder a ningún recurso de Google adicional: solo recibo el correo electrónico del usuario y considero que el usuario ha iniciado sesión. ¿Cómo se hace normalmente? Las opciones que veo son ...

A. Guarde este inicio de sesión en una cookie y nunca vuelva a contactar a Google (al menos hasta que la cookie se agote o el usuario cierre la sesión manualmente)

B. Tenga una cookie a largo plazo que almacene una clave (el servidor almacena el código OAuth) y vuelva a autenticarse cuando el usuario quiera realizar una acción confidencial.

C. Tenga una cookie a largo plazo que almacene una clave (el servidor almacena el código OAuth) y una cookie de sesión a corto plazo que caduca cuando cierran su navegador. Cada vez que acceden a la página, vuelvo a autenticarme una vez y les doy esta cookie de sesión.

    
pregunta Robert Fraser 25.08.2016 - 07:56
fuente

2 respuestas

1

Normalmente, con la autenticación basada en token tiene dos tipos de tokens:

Tokens de acceso

Estos son los tokens que se pasan para solicitar acceso a los recursos. Son de corta duración.

Actualizar tokens

Estos son tokens utilizados para obtener un token de acceso nuevo una vez que caduque. Estos tienen tiempos de caducidad prolongados y se almacenan de forma segura en un sistema.

La idea detrás de esto, es que los Tokens de acceso se utilizarán para otorgarle acceso a los recursos. Caducan en poco tiempo, por lo que, si se ven comprometidos, el acceso al sistema es limitado. Los tokens de actualización solo se deben usar cuando se necesita un token de acceso nuevo, por lo que no debe viajar constantemente por el cable. El énfasis en almacenar Refresh Tokens de forma segura.

Gestión de sesiones

Hay dos métodos que se pueden usar para almacenar Tokens, almacenamiento web y cookies. De los dos, mi preferencia actual es con Cookies con las banderas HttpOnly y Secure set.

    
respondido por el Shane Andrie 25.08.2016 - 16:21
fuente
1

Recomendaría adoptar el mismo enfoque que tomaría si no estuviera utilizando un tercero para la autenticación: una vez que caduque la sesión, vuelva a autenticarse.

Una vez que se autentica al usuario, realmente no hay razón para contactar a Google nuevamente. Ni siquiera necesita almacenar el access_token después de usarlo para acceder a los recursos que necesita para la autenticación.

De esta manera, el único parámetro del que debe preocuparse es cuánto tiempo debe durar la sesión. Dependerá de sus requisitos de seguridad.

    
respondido por el GnP 25.08.2016 - 20:09
fuente

Lea otras preguntas en las etiquetas