摘要
- OpenID Authentication 2.0 区分了用户声称持有的身份网址,与认证服务商系统内部给出的本地标识。用户控制的网址可以不变,替他验明身份的服务商可以更换。
- 接收登录的网站要从声称的网址发现服务商,核对服务商返回的断言,并以声称的网址作为本地账户索引。2007 年规范写明了这条路径;具体网站是否照做,需要它们自己的账户记录证明。
一个人换了验证密码的公司,旧网站还认不认得他?OpenID Authentication 2.0 最终规范给出的答案,从一个网址开始。用户把自己控制的网址交给要登录的网站。网站到该网址读取“该由谁认证”的指示,将浏览器引向指定服务商,随后检查返回的结果。OpenID Foundation 在 2007 年 12 月 5 日宣布规范定稿。它同时发布了属性交换规范,但身份可迁移的机关设在认证协议里:公开的名字不必和查验凭据的公司捆在一起。
规范为这两个名字另立术语。Claimed Identifier 是用户声称控制、供其他网站识别的身份标识;OP-Local Identifier 是认证服务商内部的名字,未必由用户控制。若接收登录的网站把服务商内部名字写成本地账户的主键,换服务商就可能被认作换了人。网址仍在,账户却找错柜子。OpenID 的可迁移性取决于网站始终用前一个标识记账。
发现机制可以藏在这个网址的 HTML 页面头部。rel="openid2.provider" 链接指向当前认证服务商的端点;可选的 rel="openid2.local_id" 链接说明用户在该服务商内部叫什么。网址所在的主机可以与认证服务商主机不同。控制网址的人能够改动指针,把认证工作交给新公司,而旧网站看到的身份网址仍是同一个。
这种自由需要一道严格的查验。网站收到认证服务商的肯定断言后,必须确认断言中声称的网址已经通过发现机制查过,服务商端点与本地标识也与发现结果吻合。如果之前没查过,收到断言时仍须补查。否则,任何服务商都能替别人的网址说话。网址页面公布的是授权路线;网站必须证明带回消息的人确实在这条线上。
账户该怎么存,规范也给了指引:成功认证后,应把 Claimed Identifier 用作本地用户资料的索引。兼容 OpenID 1.1 时,问题更容易露出来:旧版回应没有 openid.claimed_id。当用户声称的网址和服务商本地标识不同时,网站必须在会话等状态里留住先前发现的声称标识,才能在回应回来后打开正确账户。
OpenID 把自己描述为去中心化协议:服务商与接收网站无需经过中央机构注册批准,用户可以选择服务商并保留自己的身份网址。这是规范设计的权力分配。它没有统计有多少网站正确实现了迁移。网址的控制权、发现指针、断言核验和账户索引,四处有一处偏了,协议所画的出口就可能变成死胡同。
这段历史的赌注不是让登录按钮显得更轻巧,而是谁拥有那个可被其他网站长期识别的名字。OpenID 把名字留在用户掌握的网址上,把验证工作交给可以更换的服务商;接收网站则握着最后一本账户账簿。能否换公司而不丢身份,最终要看这本账簿按哪个名字排队。
原始文件
- OpenID Foundation,OpenID Authentication 2.0 最终规范:声称标识与服务商本地标识、HTML 发现、断言核验及账户索引。
- OpenID Foundation,2007 年 12 月 5 日定稿公告:发布时间与规范范围。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限战略圈层会员
战略圈层
所有读者均可浏览。加入并登录后可解锁档案简报。
加入战略圈层仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





