2009-09-06 34 views
13

En un sitio web, he implementado el inicio de sesión usando OpenID (basado en StackOverflow).OpenID. Cómo cerrar sesión

Pero parece que no puedo cerrar la sesión.
En mi host, puedo cerrar la sesión, pero cuando el usuario intenta volver a iniciar sesión (especialmente con google), la autenticación se realiza sin que el usuario escriba su nombre y contraseña.

¿Cómo puedo indicar al proveedor de OpenID que un usuario ya no está conectado al sitio?

+0

Depende del proveedor de OpenID. Si se desconectó de Google, estoy seguro de que se le preguntará nuevamente. – derobert

+6

Para quien marcó esto como perteneciente a SuperUser, te equivocas: es claramente una pregunta de programación sobre la implementación de OpenID en una aplicación web. – Amber

+4

@Dav: Lo siento, lo leí demasiado rápido, pero desafortunadamente no hay forma de deshacer una votación cerrada. Afortunadamente, no importa mientras otras cuatro personas no cometan el mismo error. – derobert

Respuesta

14

OpenID autentica a los usuarios de su sitio, cuando luego inicia una sesión en su sitio. Usted destruye o invalida la sesión de su sitio por separado de la sesión del usuario con su proveedor de OpenID.

Visitas de usuario joewidgets.com> El usuario inicia sesión con OpenID (con una sesión de proveedor nueva o existente)> ... El usuario hace clic en cerrar sesión> joewidgets.com destruye/invalida la sesión.

Si el usuario tiene su proveedor de OpenID, manténgalo conectado, y su sistema verifica automáticamente, luego se creará una nueva sesión local. (Des) afortunadamente, usted no/no puede preocuparse por lo que el usuario hace o no hace en su proveedor, que es un pro/con de OpenID.

Existe un argumento en Social Lipstick que requiere "Cierre de sesión único", pero OpenID actualmente no proporciona esta función.

4

Generalmente, es algo manejado por el proveedor de OpenID; por ejemplo, si el usuario permanece conectado a su cuenta de Google y marca la casilla para "recordar" la autorización de OpenID para su sitio en particular, el proveedor los registrará y redirigirlos hacia atrás sin mostrar el prompt de inicio de sesión.

6

Esto se llama Single Logout o Single Sign-Out, que OpenID no admite. En mi opinión, SSO sin cerrar sesión es un gran agujero de seguridad. Cerrar sesión en un solo sitio no significa mucho si otros pueden simplemente ingresar con unos pocos clics.

Por ahora, debemos recordar al proveedor. Si se trata de alguien que conocemos, activamos el proceso de cierre de sesión para ellos. Para Google, la URL es,

https://www.google.com/accounts/Logout

El flujo de cierre de sesión es feo, pero hace el trabajo.

+3

¡eso es simplemente malo! La razón por la que me gusta OpenID es que tengo el control, no el sitio en el que estoy. Cierra la sesión de mi gmail y nunca volveré a visitar tu sitio. – JasonWoof

+1

Debería solicitar cerrar la sesión en lugar de simplemente cerrar la sesión. ¿Es eso posible? – Alfred

+0

¡Guau! No tenía idea de que Google permite cerrar la sesión con una solicitud GET simple. Esto es prácticamente un ataque DoS a la espera de que ocurra (por ejemplo, iframe con esa dirección cerrará sesión el lector del sitio de google!) –

0

"No es una característica de un error"

El proveedor de id puede optar por mantener el usuario autorizado para el proveedor a través de cookies y, además, puede optar por no volver a Solicitar al usuario acerca de compartir la misma información que fue compartida previamente (con un aviso). Entonces, cuando el usuario en el Sitio A, solicitó ser autorizado a través del Sitio B y fue redirigido, el Sitio B primero le solicitó al usuario que se autenticara a sí mismo. Luego, el Sitio B le preguntó si debería compartir cualquier información (ya veces qué información) con el Sitio A. En este punto, también le preguntará habitualmente si desea compartir automáticamente esta misma información en el futuro. Algunos proveedores supondrán que sí, otros no, algunos no preguntarán. El sitio B a continuación, vuelve a dirigir al sitio y comparte la información, que está ahora conectado.

Si hace del sitio un segundo cambio de dirección para el sitio B para solicitar un inicio de sesión, el sitio B podría 1) ¿Ya tiene una cookie que autentifica el usuario actual del Sitio B. 2) Ya tengo un registro de qué información es aceptable compartir con el Sitio B. 3) Comparta esta información automáticamente a través de un redireccionamiento sin detenerse para avisar al usuario.

Esta es una característica que se centra en la comodidad.

Cuestiones relacionadas