OpenID委派如何在依赖方上工作?最近的规格有变化吗?

时间:2009-05-05 17:24:25

标签: openid specifications

考虑这种情况。 我有自己的网站,我用作我的标识符,但我使用第三方OpenID提供商(在我的情况下是雅虎),如here所述,登录依赖方(RP)网站,如stackoverflow和sourceforge

这似乎是明智之举:

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

问题

RP如何运作?我的理解是它应该使用标识符 I 提供,并且仅使用提供程序(yahoo)进行身份验证(而不是用于标识)。那是对的吗?最近发生了什么变化? 为了清楚起见,我的意思是我的识别应该是

http://www.mysite.com/myPreferredUrl

而不是

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

旁注

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

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

PS:如果你想知道我是怎么写这个问题的,那是因为在我使用的众多机器之一上,浏览器仍然有一个有效的cookie ....

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

2 个答案:

答案 0 :(得分:6)

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

规范没有从OpenID 1.1更改为2.0。这些规范并没有暗示或支持雅虎的行为,只有雅虎可以权威地评论他们的推理。

StackOverflow委派仍然有效。看来,雅虎打破了你。我建议您通过更改委派身份验证的人来利用委托给您的内容。例如,www.myopenid.com支持授权。如果您将自己的标识符更改为指向该标识符,则应该能够再次作为旧自己返回到StackOverflow。 :)

答案 1 :(得分:4)

我相信安德鲁的答案非常准确。我可以添加的唯一内容是关于v2.0规范如何以它的方式结束,允许提供者选择不使用委托。我认为其中一个激励因素是服务器导向的身份选择,其中用户只提供“yahoo.com”(或点击Yahoo按钮),然后他们选择的ID在id_res响应中从服务器返回。这也允许服务器做一些事情,比如提供选择要发送的ID(如雅虎那样)或向每个RP发送唯一标识符(如谷歌那样)。

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

v1.x提供商在代表团晚上发生时完全没有意识到。这种设计阻止了提供商甚至选择不支持委派,但也使一些UI问题;当您实际使用您委托的“joesmith.org”ID时,它会询问您是否要提供“joe.coolprovider.com”ID。

所以,有权衡。授权仍然是可能的,所以希望真正想要授权的用户(让我们面对它,将会被这些大型网站的用户数量相形见绌)可以选择提供所需功能的提供商。 (换句话说,让市场反击。)