全部博文(315)
分类:
2008-02-29 16:35:06
介绍:
Zend_OpenId是一个Zend Framework组件,它提供一个简单API来构建启用OpenId的站点和提供身份标识。
什么是OpenId
OpenId是一组对用户进行数字标识的协议。这些协议使用一个标识提供者创建一个在线标识。该标识可以在任何支持OpenID的地方使用。在启用OpenId的站点,网络用户不必记住诸如用户名和密码的传统认证口令。所有启用OpenId的站点接受一个OpenId标识。该标识是一个典型的URL。它也许是用户的个人主页,博客或者其他关于用户信息的URL。不需要许多用户名和密码-一个标识应用所有互联网服务。它是一种开放的,分散的和自由的用户集中解决方案.用户可以选择使用哪个OpenId提供者,或者甚至创建他们自己的个人标识服务器。通过或注册启用OpenID站点或标识提供者是不需要集中授权的。
下图是流程图例
2、 OpenId Consumer对用户申请标识符进行标准化处理,并找到它。最后,它得到:一个需求标识符,The OpenID Provider的URL和一个OPENID协议版本。
3、 The OpenID client使用Diffie-Hellman密钥建立了一个与服务器的随机连接。然后,两边都会得到一个公共的‘共享密钥’用来为后面的信息作签名和认证。
4、 The OpenID consumer 使用一个OPENID认证请求把User_Agent重指向The OpenID Provider的URL
5、 The OpenID Provider检查是否User-Agent已经被认证过,如果需要再做认证。
6、 终端用户输入所需密码
7、 The OpenID Provider将用户标识传递给指定Consumer检查是否允许,如果需要再向用户要求
8、 终端用户允许或不被允许通过他的标识
9、 The OpenID Provider用一个‘认证通过’或‘失败’的请求重新将User-Agent指向the OpenID consumer
10、The OpenID consumer通过使用‘共享密码’来确认The OpenID Provider返回的信息。重做第三步,或通过发送另外的直接请求给The OpenID Provider
Zend_OpenId结构
Zend_OpenId由两个子包组成。第一个是Zend_OpenId_Consumer 来开发启用OPENID的站点。第二个Zend_OpenId_Provider是用来开发OpenId服务器。他们是完全独立的组件,也可以单独使用。
这些子包的唯一共同的部分就是由Zend_OpenId_Extension_Sreg类实现OpenId的简单注册和Zend_OpenId类实现一组功能函数
支持的标准
Zend_OpenId组件遵循下列标准:
· OpenID Authentication protocol version 1.1
· OpenID Authentication protocol version 2.0 draft 11
· OpenID Simple Registration Extension version 1.0
· OpenID Simple Registration Extension version 1.1 draft 1