如何使用多个OpenID?
我尝试了许多OpenID,因此我拥有多个OpenID。当人们使用OpenID时,可能会出现不同的供应商,因此我可能希望切换提供者。由于所有ID都是我,并且都针对同一个电子邮件地址进行了身份验证,因此我是否应该能够使用其中的任何一个登录到堆栈溢出并能够访问同一帐户?
解决方案
回答
我认为每个实施OpenID的站点都必须构建其软件,以允许多个条目输入OpenID凭据。但是,仅仅因为一个站点不允许我们创建多个条目并不意味着我们不能换掉OpenID供应商。
如何将博客变成一个OpenID
步骤1:获取OpenID。我们可以使用许多服务器和服务。我使用http://www.myopenid.com
步骤2:在模板顶部的<HEAD> </ HEAD>标签之间,将这两行添加到博客的主模板中。大多数博客引擎都支持编辑模板,因此这是一件容易且非常可能的事情。
例子:
<link rel="openid.server" href="http://www.myopenid.com/server" /> <link rel="openid.delegate" href=http://YOURUSERNAME.myopenid.com/ />
这样我们就可以将域/博客用作OpenID。
这些简单的说明归功于Scott Hanselman和Simon Simon。
切换供应商
现在OpenID指向博客,我们可以更新链接rel href以指向新的供应商,并且我们与博客的OpenID绑定的所有位置都将使用新的供应商。
回答
@prakesh As long as you associate all of them to the same email address, i would think it would lead you to same account. But whats your experience?
当我尝试时,我得到了一个全新的帐户,该帐户具有0个代表,并且没有steenkin徽章。因此,目前,SO不允许将多个OpenID与一个帐户关联
回答
使用多个开放ID提供程序不会破坏开放ID的意义吗?
回答
Doesn't using multiple open-id providers sort of undermine the point of open id?
否。假设我们使用的是Yahoo OpenID,但我们决定改用Google。每个帐户有多个OpenID,可让我们将帐户与Google OpenID关联,然后取消对Yahoo OpenID的授权。
回答
除了Otto的meta标签示例外,我们还应该知道提供商是否支持OpenID 2.0(有很多改进)。如果确实使用元标记,则如下所示:
<link rel="openid2.provider" href="http://www.loginbuzz.com/provider.axd" /> <link rel="openid2.local_id" href="http://example.loginbuzz.com/" /> <link rel="openid.server" href="http://www.loginbuzz.com/provider.axd" /> <link rel="openid.delegate" href="http://example.loginbuzz.com/" />
一个好主意也是使用安全链接,但这可能会限制某些依赖方登录。但是,可以通过提供XRDS文档来解决。
关于XRDS的真正好处是,我们可以在本文档中指定多个提供程序。假设我们有许多不同的帐户,并且所有帐户都具有支持不同扩展名的不同提供商。然后,依赖方可以自己选择最佳匹配。
在XRDS文档中,我们还可以为每个服务指定多个URL,以便在适当的时候使用https。
我还建议我们购买一个i-名称,因为它在设计上更安全(即使i-名称过期,与i-名称相关联的i-编号也属于规范ID)。
回答
这里的关键是永远不要更改身份。
更改提供者,但不更改身份。 (这就像现实生活一样)
因此,使用OpenID的新用户应该首先考虑他们的身份。
已经拥有某种网站的用户应选择此URL,而没有网站的用户则具有以下选项:
- 获取类似博客的内容以获取URL
- 购买一个i-名称(或者域名)
- 或者使用身份提供商提供的网址
对于身份提供者提供的URL,用户需要注意,如果将来他们选择以某种方式委派或者更改身份,则其本质上是一个新的身份,并且对RP(和OP)的多重身份支持受到限制(通常需要将RP站点上的本地帐户重新关联到其他OpenID身份)。