1.基于概念浏览器
OpenId是一个以用户为中心的数字身份识别框架,它具备开放、分散、自由等特性。OpenId的建立是基于这样一个概念:咱们能够经过URI(或者URL网址)来识别一个网站。一样,咱们也能够经过这样的方式来识别一个用户的身份。OpenId系统的身份认证就是经过URI来认证用户身份。目前绝大部分网站都是经过用户名与密码来登陆认证用户身份,这就要求你们在每一个你要使用的网站上注册一个账号。若是使用OpenId,你能够在一个提供OpenId的网站上注册一个OpenId,之后你可使用这个OpenId去登陆支持OpenId的网站。这正是一处注册,处处使用的体现。安全
登陆一个支持 OpenID 的网站很是简单(即使你是第一次访问这个网站也是同样)。只须要输入你注册好的 OpenID 用户名,而后你登陆的网站会跳转到你的 OpenID 服务网站,在你的 OpenID 服务网站输入密码(或者其它须要填写的信息)验证经过后,你会回到登陆的网站而且已经成功登陆。 OpenID 系统能够应用于全部须要身份验证的地方,既能够应用于单点登陆系统,也能够用于共享敏感数据时的身份认证。 框架
除了一处注册处处通行之外,OpenID 给全部支持 OpenID 的网站带来了价值--共享用户资源。用户能够清楚的控制哪些信息能够被共享,例如姓名、地址、电话号码等。今天,OpenID 做为以用户为中心的身份验证系统已经为数百万的用户提供了服务。ide
2.OpenID相关术语网站
End User:终端用户,使用OP与RP的服务blog
Relying Party依赖方:简称RP,服务提供者,须要OP鉴权终端用户的身份dns
OpenID Provider:OpenID提供者,简称OP,对用户身份鉴权ip
Identifier标识符:标识符能够是一个HTTP、HTTPS或者XRI(可扩展的资源标识)资源
User-Agent:实现了HTTP1.1协议的用户浏览器字符串
OP Endpoint URL:OP鉴权的URL,提供给RP使用
OP Identifier:OP提供给终端用户的一个URI或者XRI,RP根据OP Identifier来解析出OP Endpoint URL与OP Version
User-Supplied Identifier:终端用户使用的ID,多是OP提供的OpenID,也能够是在RP注册的ID。RP能够根据User-Supplied Identifier来解析出OP Endpoint URL、OP Version与OP_Local Identifer
Claimed Identifier:终端用户声明本身身份的一个标志,能够是一个URI或者XRI
OP-Local Identifier:OP提供的局部ID
3、OpenID验证流程
终端用户请求登陆RP网站,用户选择了以OpenID方式来登陆
RP将OpenId的登陆界面返回给终端用户
终端用户以OpenID登录RP网站
RP网站对用户的OpenID进行标准化,此过程很是负责。因为OpenID多是URI,也多是XRI,因此标准化方式各不相同。具体标准化过程是:若是OpenID以xri://、xri://$ip或者xri://$dns开头,先去掉这些符号;而后对以下的字符串进行判断,若是第一个字符是=、@、+、$、!,则视为标准的XRI,不然视为HTTP URL(若没有http,为其增长http://)。
RP发现OP,若是OpenId是XRI,就采用XRI解析,若是是URL,则用Yadis协议解析,若Yadis解析失败,则用Http发现。
RP跟OP创建一个关联。二者之间能够创建一个安全通道,用于传输信息并下降交互次数。
OP处理RP的关联请求
RP请求OP对用户身份进行鉴权
OP对用户鉴权,请求用户进行登陆认证
用户登陆OP
OP将鉴权结果返回给RP
RP对OP的结果进行分析