重新思考用户登录过程:用户/显示名称和OpenID

Lev*_*ith 8 openid authentication database-design

使用openID提出了一些我希望SO社区可以帮助我回答的问题.

OpenID和(现已过时)用户名

根据我的阅读,openID的主要目标之一是消除某人为某些网站创建另一个用户名和密码的需要,这些网站只能使用一次.虽然我认为这是一个非常棒的想法,但它确实引起了一点混淆:

用户名不仅用作身份验证设备(登录凭据),还用作将用户标识为网站上的创建内容(评论,帖子帖子等)的方法.

我的担忧

  1. 当他们浏览网站时,我用什么来识别网站上的某个人?注册我的网站时,我是否还要求他们选择用户名?
  2. 我注意到像SO这样的网站,使用了"显示名称"而不是用户名.这是一个可由用户更改的字段.
    • 当用户决定更改其显示名称时,您如何避免混淆?

限制谁可以登录到您的站点即使他们有一个有效的OpenID

想象一下以下场景:

  • 您有一个网站,您只希望您和三个朋友能够访问.
  • 在传统的用户身份验证设置中,您可以手动为三个朋友创建帐户,然后通过电子邮件向他们发送登录凭据.但是,在这种情况下,您希望它们使用openID.

我的问题

  1. 如何将openID身份验证限制为一个非常特定的人员子集?
  2. 如何使用OpenID为尚未对您的网站进行身份验证的人设置帐户?

再次感谢,SO社区为您的时间和帮助.你们真棒.

Sco*_*ord 1

Ebay 有一种方法可以通过更改名称来避免混淆/欺诈(或者几年前就这样做了)。在 30 天或类似的时间内,您的名字旁边会有一个徽章,表明您刚刚更改了名字。如果您愿意,您甚至可以提供全名历史记录。

就限制访问而言,他们仍然在您的网站上拥有由您网站的代码创建的帐户。OpenID只是提供身份验证机制。例如,您仍然可能要求所有新用户都经过管理员验证才能访问您网站的重要部分。

另一种描述方式是将身份验证和授权视为两个不同的概念。OpenID 仅涵盖身份验证。您的站点将管理经过身份验证的帐户的授权。

  • @Levi:正确。身份验证基本上意味着证明您的身份 - “您是谁”部分。正如 Scott 所说,这就是 openID 的作用。用户通过身份验证后是授权步骤 - “既然我知道你是谁,你可以访问什么?” 因此,您的应用程序仍然负责将 openID 绑定到您网站上的“帐户”,从而获取用户的显示名称、访问级别和任何其他属性。 (2认同)