OpenID协议
最后更新于
终端用户 End User
想要向某个网站表明身份的人。
OpenID提供者 OpenID Provider, OP
对用户身份鉴权
标识 Identifier
终端用户用以标识身份的URL或XRI
身份提供者
提供OpenID URL或XRI注册和验证服务
依赖方
希望对终端用户的标识进行验证的网站
OpenID认证提供了一种方式,可以让用户证明自己对某个实体拥有控制权。它不需要依赖方访问用户的凭证(如密码)或其他的敏感信息(如电子邮件地址)等。
OpenID是分散的,不需要官方机构批准,或者在依赖方网站或OpenID提供者处注册。终端用户可以自由地选择使用哪个OpenID提供者,并能在其更换OpenID提供者时维护自己的标识。尽管协议中没有提出要求使用JavaScript或先进的浏览器,但认证方案能很好地使用“AJAX”样式的设置。这就意味着用户可以不离开当前网页就能向依赖方证明他的身份。
OpenID认证仅使用标准的HTTP请求和响应,因此它不需要User-Agent具有特殊能力或其他客户端软件。OpenID不和Cookie、依赖方的任何具体机制、OpenID提供者的会话管理挂钩。虽然使用该协议没有必要扩展User-Agent,但可以简化用户操作。
用户信息或其他信息的交换不包括在该协议中,在此协议上附加协议形成一个框架可解决此问题。 OpenID认证的目的是提供一个基础服务,使它能在自由和分散的方式下携带用户数字标识。
依赖方网站对终端用户的OpenID进行标准化,此过程非常复杂。由于OpenID可能是URL,也可能是XRI,所以标准化方式各不相同。具体标准化过程是:如果OpenID以xri://、xri://$ip或xri://$dns开头,先去掉这些符号;然后对如下的字符串进行判断,如果第一个字符是=、@、+、$、!,则视为标准的XRI,否则视为HTTP URL(若没有http,为其增加http://)。
依赖方发现OpenID提供者,如果OpenID是XRI,就采用XRI解析,如果是URL,则用Yadis协议解析,若Yadis解析失败,则用HTTP发现。