所以我喜欢 OpenID 的想法。我在我的网站上支持它,并尽可能使用它(就像这里!)。但我不清楚一件事。

支持 OpenID 的网站基本上接受任何 OpenID 提供商,对吧?对于想要减少机器人注册的网站来说,这如何运作?如何阻止恶意 OpenID 提供商自动设置无限的机器人 ID?

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

有帮助吗?

解决方案

您混淆了两个不同的事物 - 身份验证和授权。仅仅因为您知道某人是谁,并不意味着您必须自动授予他们做任何事情的权限。西蒙·威利森(Simon Willison)在《 OpenID 不是帐户! 有关白名单的更多讨论可参见 使用 OpenID 的社交白名单.

其他提示

您问题的简短答案是:“不是。” OpenID故意仅提供了具有集中认证位点的机制;由您决定您个人认为可接受的 OpenID 提供商。例如,微软 最近决定仅允许少数提供商在其 Healthvault 网站上使用 OpenID. 。公司可能决定只允许从 LDAP 支持的接入点进行 OpenID 登录,政府机构可能只接受来自生物识别支持的站点的 OpenID,而博客由于严格的垃圾邮件审查可能只接受 TypePad。

OpenID 似乎存在很多混乱。它最初的目标只是提供一个标准的登录机制,以便当我需要安全登录机制时,我可以从任何或所有 OpenID 提供商中进行选择来为我处理该机制。允许任何地方的任何人设置自己可信的 OpenID 提供者 从来都不是目标。有效地做到第二点是不可能的——毕竟,即使使用加密,您也没有理由不能设置自己的提供商来安全地撒谎并说它正在对您想要的任何人进行身份验证。拥有单一、标准化的登录机制本身就已经是一个巨大的进步。

OpenId 只不过是用户在注册您的网站时选择的用户名和密码。您不依赖 OpenId 框架来清除机器人;而是依赖 OpenId 框架来清除机器人。你的注册系统应该仍然这样做。

可能的解决方案 - 您仍然可以要求新 ID 通过验证码测试。就像机器人可以使用虚假/多个电子邮件地址注册到任何网站,但也无法通过“验证”步骤。

或者我们是否必须开始维护提供商黑名单?考虑到建立一个新的提供商是多么容易,这些方法并不会真正发挥作用。

据我所知,OpenID 仅解决身份识别问题,而不解决授权问题。阻止机器人是一个授权问题。

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

您可以使用 OpenID 执行一些使用新用户的传统用户名无法执行的操作。

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

更好的是,您可以从其他地方推断出特定 OpenID 已被使用。假设您有一个 OpenID 到 Stackoverflow.com 中的信誉值的映射。当有人使用 OpenID 出现在您的网络论坛时,您可以查看他们在 Stackoverflow 上是否有良好的声誉,并跳过这些用户的验证码或试用期。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top