OpenID是什么?
OpenID是一种网络身份认证系统,它的特点是用一个OpenID帐号就可登录多个不同的网站,而不用重复注册,仅仅需要这些网站支持OpenID即可。而且,OpenID可以有效防止网络钓鱼和网络欺骗。
OpenID最初是由大型社区LiveJournal的创办人Brad Fitzpatrick 在2005年6月27日开发推出的一套身份识别系统。微软已经宣布在其下一代网络身份认证系统CardSpace中支持OpenID,使得OpenID和Windows CardSpace能够互通。另外,Digg、AOL等大型网站最近都宣布将支持OpenID。
OpenID身份认证系统中采用了YADIS协议进行核心的URI验证,YADIS的含义是非集中身份验证互用系统(Yet Another Decentralized Identity Interoperability System)。
要得到一个属于自己的OpenID,仅仅需要在任一个OpenID提供商处注册即可。目前国外有MyOpenID、GetOpenID、LiveJournal等OpenID提供商,中文的提供商是OpenID.cn。
注册后可以得到一个类似chenweiyi.openid.cn这样的一个OpenID,用chenweiyi.openid.cn就可以直接登录很多网站。目前支持OpenID登录的网站有ClaimID、Zooomr、Litepost、LifeWiki、LiveJournal、NerdBank等,国内一些新兴网站也跃跃欲试,即将支持OpenID。
OpenID登录的过程
当采用chenweiyi.openid.cn类似的OpenID登录网站A的时候,网站A并不直接验证,而是把这个OpenID转发到它归属的提供商处进行认证。比如chenweiyi.openid.cn就被跳转到openid.cn网站上进行认证,用户输入当初在openid.cn注册的时候输入的密码,就可以进入到openid.cn提供的审核页面,用户自己决定是否把自己的资料发给该网站A,而且可以选择到底发送哪些资料给网站A。一旦用户选择了需要发送给网站A的资料并确认认证后,网站A得到了提供商openid.cn发来的用户资料,认证结束。
在图1中,各个过程是这样的:
(1)用户在Form中提交OpenID字符串给用户登录系统(Consumer)
(2)用户登录系统(Consumer)去访问提交上来的OpenID URI,从返回的HTML中找到OpenID提供商的信息。<LINK REL='openid.server' HREF=(the server)>
(3)用户登录系统(Consumer)和OpenID服务器进行安全通讯。
(4)用户登录系统(Consumer)把用户跳转到OpenID服务器
(5)用户在OpenID服务器端进行身份验证 ,并且询问用户是否确认验证此Consumer。
(6)服务器把用户跳转到用户登录系统(Consumer)
(7)用户登录系统(Consumer)验证来自服务器的相应,并取得返回的验证数据。
OpenID相对目前的认证协议,有哪些优势
OpenID和现在大型门户网站流行的“通行证”系统完全不同,“通行证”系统注册一个帐号就可以同时登录使用该门户网站的多项服务。但这仅仅解决了一个网站的问题,不能在多个不同的网站中使用。“通行证”系统是私有协议,不开放。
OpenID和微软Passport身份认证系统也有很大的不同,微软Passport虽然可以提供给多个不同的网站使用,但是它还是属于集中式身份认证系统,系统的掌控权还是在微软手中,这样垄断的手法使得Passport一直没有得到很大的认同。OpenID是一种分布式身份认证系统。用户完全可以自由选择自己的OpenID提供商。支持OpenID登录的网站不限定OpenID的来源,只要支持OpenID标准协议即可。
OpenID的核心思想是,用户采用一个自己拥有的URI来代表自己的身份,而OpenID提供了一种技术手段来确保用户拥有这个URI。针对chenweiyi.openid.cn这个OpenID,openid.cn这个OpenID提供商来提供对chenweiyi.openid.cn的密码验证。
chenweiyi.openid.cn的拥有者在使用这个OpenID的时候,有两种办法:
一是直接输入chenweiyi.openid.cn进行身份验证。
另外的办法是在自己拥有的域名或者blog地址中,在index.htm(或者其它的默认静态页面)中的<HEAD></HEAD>中插入以下的代码:
<linkrel="openid.server"href="http://www.openid.cn/openid.server">
<linkrel="openid.delegate"href="http://chenweiyi.openid.cn/">
这样,使用任何一个插入了以上代码的域名,都将作为和chenweiyi.openid.cn具有同等效力的OpenID。在支持OpenID的网站登录的时候,输入任何一个插入了以上代码的域名作为OpenID登录,结果都将跳转到openid.cn进行身份验证,而且用户名必须也只能是chenweiyi。
如果验证成功,用户输入的域名或者blog的地址就代表了用户的身份。由于在域名的首页中插入代码的权限属于域名的拥有者,这就确保了该域名就直接代表了用户的身份。而且,由于从OpenID提供商得到的URI可能很长,不方便记忆,而采用用户自己拥有的域名首页插入代码的方法,可以使得用户自己的OpenID很方便用户记忆。
比如用户如果拥有www.chen.com这个域名,那么插入首页代码后,使用这个域名作为OpenID显然比chenweiyi.openid.cn更有优势。
而且,还有一个重要的原因,推荐用户使用自己的域名来作为自己的OpenID。由于OpenID是一个分布式的身份验证方式,用户可以在多个OpenID提供商处注册,得到不同的OpenID。自己想使用哪个OpenID提供商提供的身份验证时,就在自己域名的首页中放置不同的验证服务器。这样即使更换OpenID提供商,自己的域名无需更改,在登录其它网站时还是使用自己的域名进行登录。这样可以有效防止OpenID崩溃或者速度缓慢,可以使自己不依赖任何一家提供商。这也是OpenID的分布式验证体系的可贵之处。
本文来源:未知 作者:佚名