OpenID作为单点登录选项?

25

我只是在寻找不同的意见。 您认为OpenID是一个好的“单点登录”解决方案吗?

它的工作原理对于平均用户来说似乎有些困惑,并且可能存在“把所有鸡蛋放在同一个篮子里”的问题。

无论如何,有人尝试在Intranet的上下文中实现自己的OpenId解决方案吗,在那里有许多不同的应用程序(Wordpress、Elgg、Media Wiki等)??

我认为这可能是解决“数字身份”问题的好方法,但我不知道它是否可以解决“一次登录,浏览Intranet”的问题。

有什么看法?

14个回答

7
此外,单点登录(SSO)通常意味着我只需要登录一次(可能是我的工作站),然后从那里开始,我就不需要在任何地方再次登录。
当然,OpenID并不能解决这个问题。例如,如果我使用OpenID登录StackOverflow,这并不意味着我不需要再次使用相同的OpenID登录另一个网站。

你可能需要向第二个网站提供你的OpenID,但是OpenID提供者是否可以在第二次不要求密码的情况下对你进行身份验证呢? - tpower
2
如果您的浏览器启用了cookie,并且您已经“允许”OpenID提供程序自动验证您。那么看起来您将“自动”登录...因为提供程序会捕获cookie并将您重定向回来。 - null

5
我必须说我完全同意这些关于OpenID对于“普通”互联网用户来说过于困难的陈述。虽然最初的提议可以追溯到2005年,但我认为OpenID仍然可以被视为“新的”。越来越多的高流量网站将其作为创建账户的选项,而不是要求用户必须拥有OpenID。
在我看来,只要与OpenID一起提供正常的用户名/密码账户创建方式,普通互联网用户自然会开始尝试并最终坚持使用OpenID。
身份验证问题同样适用于OpenID和在任何网站上注册。您用密码信任网站(假设您不使用密码存储程序),因此不应该反对OpenID。
除此之外,帐户创建的标准化对于Web开发人员来说绝对是好事。我只想放心地使用OpenID库并将其引用到数据库中,而无需担心正常的创建过程。

4
可以简要解释单点登录吗?我想使用OpenID作为SSO的最佳答案很好地解释了OpenID和SSO的不同之处:
单点登录是指在一个地方登录并自动在其他位置进行身份验证。OpenID是将身份验证委托给OpenID提供者,以便您可以使用一组凭据有效地登录多个站点。
同一篇文章还对原问题给出了一个很好的答案:
您可以使用OpenID作为SSO的身份验证方案,但这只是附带的。

4
我花了一些时间才理解OpenID(提供者太多了!),但我真的很喜欢这个概念。将其与Gravatar结合起来,重写您的个人资料就更加轻松了-也许只需要一个或两个字段。
唯一的问题是您必须信任您的OpenID提供者-但这不是我所说的问题,更像是常识。
编辑:遇到OpenID提供者问题的人应该考虑设置一个新的提供者。我的提供者是myopenid.com,我没有遇到任何问题。您可以设置多个角色(例如个人资料),因此我有一个用于博客评论,一个用于像这样的技术网站。
至于拥有新的SO个人资料,Jeff说未来可以更改您的OpenID而不会丢失您的个人资料统计数据。

4

OpenID有一个小问题。

使用OpenID进行无缝登录需要在域之间自动(未经验证的)重定向。

这使得OpenID服务器成为第三方。如果您关闭第三方cookie并且浏览器严格遵循RFC2965中3.3.6的不可验证事务规则,则可能会导致OpenID服务器的cookie被拒绝。

Opera就是一个例子。如果您关闭第三方cookie(通过将全局设置为“仅接受我访问的站点的cookie”),则无法使用OpenID登录,因为您提交的服务器脚本会自动(无需您的交互批准)将您重定向到OpenID服务器,而OpenID服务器也会执行相同的操作以让您返回。

但是,在Firefox、IE和Safari中,它们违反了RFC2965的多种情况下阻止第三方cookie,所以您很幸运。

在这种情况下使用OpenID对于更符合规范的客户端来说是不公平的。

作为解决方法,在Opera中,除了接受所有cookie外,您还可以转到“工具” ->“首选项” ->“高级” ->“网络”,然后关闭自动重定向。然后,您将能够验证并单击每个重定向到的链接,并且不会拒绝cookie,因为事务是经过验证的。

如果保持自动重定向并且两个服务器生成一个包含链接的页面,让您单击以验证交易,则也应该可以使用。但是,任何地方都不能有自动重定向。

在这种情况下,仅使用用户名和密码进行登录,只涉及第一方cookie,会更好。

尽管OpenID很酷,但我想Opera只需要一个选项,允许SO和您的OpenID服务器之间的不可验证事务,以便您可以在此处使用“仅接受我访问的站点的cookie”。


我的主要浏览器是在OSX上的Opera,我的想法是,我会成为黑客攻击的较小目标。但我被“迫”(读作“不便”)使用Firefox并进行复制和粘贴(RSS链接将转到Opera).. 我会尝试建议的路线。 - lexu
我刚刚登录时禁用了“自动重定向”..我必须点击3-4个链接,从SO到我的OpenID登录页面再返回。在我看来,“重定向”是作为过程/方法调用使用的,非常不方便。直接登录SO会更容易! - lexu
我知道这已经像三千年后的事了,但无论如何。重定向是一组重定向的过程方法调用。它必须通过您作为一个端点,因此很烦人和不方便。只是为了更好地帮助未来的读者。 - jcolebrand

3
我对OpenID持有矛盾态度。一方面,它解决了“身份提供者发现问题”(即依赖方网站如何找到发送用户进行身份验证的位置)。另一方面,对于普通用户来说,URL地址非常笨拙。
我认为,目前的OpenID对于Web身份解决方案来说是一个有用的中间步骤,但肯定不是最终目的地。
具体针对您的企业内部网络问题,OpenID可能不是正确的答案。正如我上面提到的,OpenID可以让您找到身份提供者的位置,但需要在每个依赖方输入该URL。如果您将在某个内部身份提供者处对所有用户进行身份验证,并仅接受来自该身份提供者的用户,则OpenID实际上并没有多大帮助。

我建议使用CASOpenSSO这样的系统,可以将用户重定向到登录页面,无需输入URL。我最近写了一篇关于一家公司如何在短短4个月内为3000名用户的40个Intranet应用程序部署了OpenSSO,并在IIS 6.0、Apache、JBoss和Tomcat上运行。


谁说使用 OpenID 只能在单个站点上使用必须让用户输入 URL?相反,让他们点击登录链接,自动重定向到 OpenID 登录页面。同样简单,并且不需要用户输入 URL。 - X-Istence

1

我认为OpenID对于任何用户来说都太过混乱和笨重,而且我甚至不确定它是否解决了真正的问题。在每个我使用的网站上注册从未让我感到是一个主要问题,特别是因为它并没有特别解决这个问题;当我将我的OpenID链接到StackOverflow时,我仍然需要填写额外的细节。无论如何,它可能与常规注册流程没有什么区别。


1

嗯...我本来想要一个简单的登录密码组合(我可以通过Passwordmaker.org轻松完成)。

然而,作为一名开发人员,我可以理解他们不想再次重新发明登录轮子......

OpenID:

我输入我的博客网址 => Google登录 => 我进入了。

这是一个额外的层面...但没关系。


0

OpenID的实现需要大量的努力和思考才能成功,即使如此,您也可能会被糟糕的身份提供者(例如Yahoo)挫败。如果您已经解决了用户体验问题,OpenID可以非常好地工作,但是对于大多数用户来说,糟糕的实现只会让他们感到难以置信的困难。在我看来,OpenID最大的问题是人们试图通过用户意识来解决问题。如果他们简单地提供一个OpenID提供者列表,并让用户点击他们想要使用的那个,那么效果会更好。这有时需要了解提供者如何实现OpenID,如果他们不支持规范的2.0版本,但对最终用户来说,这将提供更好的整体体验。


0

实际上,在StackOverflow的情况下,一个单独的账户会为我节省很多麻烦。我决定使用我的WordPress.com OpenID,因为那是我托管博客的地方,但事实证明,WordPress.com的OpenID服务存在严重问题,大部分时间我都无法登录到StackOverflow。当然,我可以使用不同的OpenID提供商进行登录,但这样一来,我在该网站上就会有不同的身份。

我想你可以说这是WordPress.com的错,但问题仍然存在。通过使用OpenID,您依赖于另一个站点的服务来运行。第三方网站上的任何问题实际上也会禁用您的网站。

作为替代方案,我尝试使用我的Yahoo OpenID登录,但是我得到了一些随机字符串作为用户名,正如DrPizza已经指出的那样,我无论如何都必须编辑我的个人详细信息。

OpenID是一个不错的想法,但在当前情况下,它仍然不是我要依赖的东西。


1
StackOverflow现在允许您为同一帐户使用多个OpenID登录提供程序。至于填写帐户信息的整个过程,这已经通过OpenID简单注册扩展得到解决,该扩展可以允许用户选择共享他的昵称、真实姓名、出生日期、性别、电子邮件和其他几个关键信息。不再需要在每个使用OpenID登录的页面上填写个人资料了。 - X-Istence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接