4

考虑这种情况。我有自己的网站,用作我的标识符,但我使用第三方 OpenID 提供程序(在我的情况下为 yahoo),如此所述,登录依赖方 (RP) 网站,例如 stackoverflow 和 sourceforge。

这似乎是一个明智的举动:

  • 我没有被 OpenID 提供商锁定,因为如果/当 yahoo 不再提供该服务,或者开始收费,或者我不再信任他们,我可以轻松切换提供商
  • 我没有在我的服务器上安装和维护 OpenID 提供程序的经济、管理和安全负担

问题

RP应该如何工作?我的理解是它应该使用 提供的标识符,并且仅将提供者(雅虎)用于身份验证(而不是用于识别)。那是对的吗?最近有什么变化吗?为了清楚起见,我的意思是我的身份应该是

http://www.mysite.com/myPreferredUrl

并不是

https://me.yahoo.com/myYahooId(这是我的网站“重定向”身份验证的地方,如上述网站中所述)

边注

我问这个问题也是因为现在事情似乎坏了(几个月前还好)。如果我尝试登录 stackoverflow,我会写 mysite.com URL,我会正确地“重定向”到我登录的雅虎网站,它会询问我是否要“继续使用 stackoverflow”,我说是的,它“重定向”并且在 stackoverflow 网站上我看到“这是我们以前从未见过的 OpenID”,它显示了我的雅虎 ID,我实际上被锁定了!

这是一个错误,还是我错过了什么?

PS:如果你想知道我是如何写这个问题的,这是因为在我使用的许多机器中的一台上,浏览器仍然有一个有效的 cookie....

编辑:Andrew Arnott 在下面的回答提出了一种解决我的问题的方法(即切换到不同的提供商)。但我仍然对一些细节感兴趣:从 OpenID 1.1 到 2.0,关于委托有什么变化?为什么在规范中选择让提供者“破坏”委托?你解释得越多,你的答案被接受的机会就越大。

4

2 回答 2

6

我不认为雅虎支持 OpenID 委托。也就是说,StackOverflow 和其他 RP 可能会对您自己的标识符执行发现并正确设置委托身份验证请求,但 Yahoo 可能会选择(可能与规范相反)为他们自己的标识符发送身份断言,而不是由RP。

规格没有从 OpenID 1.1 更改为 2.0。规范不建议或认可 Yahoo! 的行为,只有 Yahoo 可以对其推理进行权威评论。

StackOverflow 委托仍然有效。雅虎似乎毁了你。我建议您通过更改您将身份验证委托给谁来利用委托给您购买的东西。例如 www.myopenid.com 支持委托。如果您将自己的标识符更改为指向该标识符,您应该能够再次以旧身份回到 StackOverflow。:)

于 2009-05-05T21:40:26.427 回答
4

我相信安德鲁的回答是相当准确的。我唯一能补充的是关于 v2.0 规范是如何以它的方式结束的,允许提供者选择不使用委托。我认为其中一个动机是服务器导向的身份选择,其中用户只需提供“yahoo.com”(或单击 Yahoo 按钮),然后他们选择的 ID 在 id_res 响应中从服务器返回。这也允许服务器做一些事情,比如选择发送哪个 ID(如 Yahoo 所做的)或向每个 RP 发送一个唯一标识符(如 Google 所做的)。

这也意味着所有必要的信息都在id_res响应中,这意味着 RP 不需要存储其checkid请求的状态来处理响应。事实上,提供者可以id_res直接向 RP 发送响应,而 RP 根本不需要用checkid请求来启动它。

v1.x 提供者完全不知道委托何时发生。这种设计甚至阻止了提供者选择不支持委托,但也造成了一些 UI 问题;当您实际使用委派的“joesmith.org”ID 时,它会询问您是否想提供“joe.coolprovider.com”ID。

So, there's the tradeoff. Delegation is still possible, so the hope was that users who really want delegation (which, let's face it, is going to be dwarfed by the number of users from these big sites) can choose providers that offer the features they need. (In other words, let the market fight it out.)

于 2009-05-20T19:33:51.260 回答