4

从这个问题开始:OpenID。你如何注销

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

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

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

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

当我退出 stackoverflow 时,我仍然使用 gmail(OpenID Provider)。

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

解决此问题的一个技巧是让注销流程同时将我从 gmail 注销,但如上一篇文章所述,如果我从 stackoverflow 注销,如果我在家,我不一定要注销 gmail。

所以真正的问题是:
有没有一种方法可以在不登录的情况下向这些 OpenID 提供者进行身份验证。

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

4

4 回答 4

3

如果协议不支持它(并且它不支持),那么您在这里无能为力,除了在完成后删除所有 cookie,这将清除将您登录到您的提供商的 cookie 和那些让您登录服务。

顺便说一句,OpenID 提供商不必为您提供持久性 cookie,甚至不必为您提供让您登录 OpenID 帐户的会话 cookie,它可以为您自己验证一次,然后继续发送验证令牌。如果您担心在使用 OpenID 时登录到 Gmail,请选择其他 OpenID 提供商。

但这是一个问题吗?

于 2009-09-06T17:20:58.637 回答
2

人们显然看不到您的问题中的问题,因此为了清楚起见,我在这里重复一遍(并带有问号)

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

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

于 2009-09-06T17:24:19.003 回答
0

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

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

OpenID处理身份验证。会话支持(以及登录或注销等相关概念)超出了 OpenID 规范。

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

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

由于 OpenID 的第 3 方方面设计良好,因此在实践中很容易避免登录,方法是选择一个合理的提供者,或者更好的是,使用 HTML 页面作为您声明的身份,它委托给一个提供者,您可以如果您决定切换,请更改。

于 2009-09-15T23:03:34.877 回答
-2

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

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

于 2009-09-06T17:33:38.640 回答