OpenID注销。我只需要身份验证而不登录OpenID Provider

时间:2009-09-06 17:04:22

标签: php authentication openid logout

从这个问题开始:OpenID. How do you logout

行。所以OpenID没有单一注销 我可以看到用途,但有些情况让我担心:

单点登录非常适合移动设备和个人计算机 您登录一次,可能永远不需要再次注销(只需在新网站上进行身份验证)。

但如果我在公共电脑(机场,甚至是工作电脑),这是一个问题。

当我使用openID登录网站时,我正在登录两个不同的地方,这并不明显。我登录网站(例如使用gmail帐户进行stackoverflow),但同时我刚刚登录了gmail(OpenID提供商)。

当我退出stackoverflow时,我仍然被烧成gmail(OpenID Provider)。

当我使用gmail进行身份验证时,我不想登录gmail,我只想进行身份验证。

解决这个问题的方法是让注销流程同时将我从gmail中注销,但正如上一篇文章中所述,如果我退出stackoverflow,我不一定要注销gmail如果我是在家里。

所以问题确实是:
有没有办法在不登录的情况下对这些OpenID提供程序进行身份验证。

因为即使像堆栈溢出的网站,当您注销经过身份验证的OpenID提供程序时,它们也不会将您注销。如果您有Gmail帐户,我可以整天登录和退出,而不会影响是否已登录stackoverflow。

4 个答案:

答案 0 :(得分:3)

如果协议不支持它(并且没有),那么除了在完成后删除所有cookie之外,你无法在这里做任何事情,这将清除将你登录到提供商的cookie。那些记录你服务的人。

除此之外,OpenID提供商不必为您提供持久性cookie,甚至不必为您提供登录OpenID帐户的会话cookie,它可以为您自己验证一次,然后向前发送身份验证令牌。如果您担心在使用OpenID时登录Gmail,请选择其他OpenID提供商。

但这是一个什么问题?

答案 1 :(得分:2)

人们显然没有在你的问题中看到这个问题,所以我在这里重复一遍只是为了清晰(并带有问号)

  

有没有办法在不登录的情况下对这些OpenID提供商进行身份验证?

我相信这个问题的答案是“不”(正如吹风机所阐述的那样)。

答案 2 :(得分:0)

简短的回答是肯定的,实际上,选择合理的OpenID提供商。

答案很长,这是关于您的OpenID提供商的问题,而不是OpenID本身。

仅限OpenID 处理身份验证。会话支持(以及相关概念,如登录或注销)不在OpenID规范中。

您的OpenID提供商可能会为您保留一个会话(可能使用浏览器cookie)。除非您指明(“登录stackoverflow.com时记住我”),否则任何合理的提供者都不会这样做。

OpenID使用者(例如StackOverflow)也可以为您保留会话。您无能为力,但对于任何身份验证方案(无论是第三方还是直接方式)都是如此。

因为OpenID的第三方方面设计得很好,所以很容易通过选择合理的提供商来避免登录,或者更好的方法是使用HTML页面作为您声明的身份,该委托给提供者如果您决定转换,可以更改。

答案 3 :(得分:-2)

OpenID没有指定提供者是否应该为自己创建登录会话,但几乎所有人都这样做。因此,没有选项可以在不在OP中留下会话的情况下对RP进行身份验证。

如果您真的想在不离开会话的情况下进行身份验证,则可以使用其他协议进行身份验证。几乎每个OP都提供了使用用户名/密码登录的专有协议。例如,Google有ClientAuth和AOL有directLogin。这就是所谓的密码反模式。它会产生一些隐私问题,因为您在自己的网站上收集了Google密码。无论如何我不推荐它。