2008-09-17 117 views
16

所以我喜欢OpenID的想法。我在我的网站上支持它,并在任何可能的地方使用它(如这里!)。但我不清楚一件事。OpenID提供商 - 什么阻止恶意提供商?

支持OpenID的网站基本上接受任何OpenID提供商,对吗?这与那些想要减少bot签名的网站有什么关系?什么是阻止恶意OpenID提供者自动设置无限的bot ID?

我有一些想法,并将它们作为可能的答案发布,但我想知道是否有人可以看到明显的我已经错过的东西?

回答

13

你混淆了两个不同的东西 - 识别和授权。仅仅因为你知道谁是谁,并不意味着你必须自动授予他们做任何事情的权限。 Simon Willison在An OpenID is not an account!中对此进行了很好的介绍。有关白名单的更多讨论可参见Social whitelisting with OpenID

+11

识别和认证是一回事。我认为你的意思是认证和授权的区别。 – skaffman 2009-06-25 18:19:44

2

可能的解决方案 - 您仍然可以要求新ID通过CAPTCHA测试。就像机器人可以向任何网站注册虚假/多个电子邮件地址一样,但是也不能通过“验证”步骤。或者我们将不得不开始维护提供商黑名单?考虑到建立一个新的提供商非常简单,这些工作并不会很好。

3

OpenId并不比用户在注册您的网站时选择的用户名和密码多得多。你不依赖于OpenId框架来清除机器人;您的注册系统仍应该这样做。

2

据我所知,OpenID只处理标识,而不处理授权。停止机器人是一个授权问题。

9

你的问题的简短答案是,“它不。” OpenID故意仅提供一种具有集中认证站点的机制;您需要决定您认为哪些OpenID提供商可以接受。例如,微软recently decided to allow OpenID on its Healthvault site only from a select few providers。一家公司可能决定只允许来自其支持LDAP的接入点的OpenID登录,政府机构可能只接受来自生物识别技术支持网站的OpenID,而博客可能只接受TypePad,因为他们对垃圾邮件进行了严格审查。

在OpenID上似乎存在很多混淆。它的最初目标仅仅是提供一个标准的登录机制,以便在需要安全的登录机制时,我可以从任何或所有OpenID提供商中为我选择。允许任何人在任何地方建立自己的可信OpenID 供应商从未成为目标。毕竟做第二件事情是不可能的,毕竟即使有加密,也没有理由不能设置你自己的提供商来安全地撒谎,并且说它正在认证你想要的任何人。拥有单一的标准化登录机制本身已经是一大进步。

2

注意,与传统的“每站点”登录不同,OpenID为您提供了一种可能超越单个站点的身份。更好的是,这个标识甚至是一个URI,因此它非常适合与RDF一起使用来交换或查询关于标识的任意元数据。

你可以用OpenID做一些你不能用新用户的传统用户名来做的事情。

首先,您可以执行一些简单的白名单操作。如果* .bigcorp.example是来自Big Corp员工的OpenID,并且您知道Big Corp不是垃圾邮件发送者,那么您可以将这些OpenID列入白名单。对于半封闭的网站来说,这应该效果不错,或许它是现在和过去员工的社交网站。

尽管如此,您可以使用特定OpenID的其他地方进行推理。假设你有一个来自Stackoverflow.com的声誉值的OpenID映射。当有人在你的网络论坛上用OpenID出现时,你可以看到他们是否在Stackoverflow有良好的声誉,并跳过这些用户的CAPTCHA或试用期。