Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1288464
  • 博文数量: 315
  • 博客积分: 10397
  • 博客等级: 上将
  • 技术积分: 3731
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-07 21:21
文章分类

全部博文(315)

文章存档

2015年(10)

2014年(3)

2013年(2)

2012年(8)

2011年(8)

2010年(29)

2009年(59)

2008年(77)

2007年(119)

分类:

2008-02-29 16:35:06

介绍:

Zend_OpenId是一个Zend Framework组件,它提供一个简单API来构建启用OpenId的站点和提供身份标识。

 

什么是OpenId

OpenId是一组对用户进行数字标识的协议。这些协议使用一个标识提供者创建一个在线标识。该标识可以在任何支持OpenID的地方使用。在启用OpenId的站点,网络用户不必记住诸如用户名和密码的传统认证口令。所有启用OpenId的站点接受一个OpenId标识。该标识是一个典型的URL。它也许是用户的个人主页,博客或者其他关于用户信息的URL。不需要许多用户名和密码-一个标识应用所有互联网服务。它是一种开放的,分散的和自由的用户集中解决方案.用户可以选择使用哪个OpenId提供者,或者甚至创建他们自己的个人标识服务器。通过或注册启用OpenID站点或标识提供者是不需要集中授权的。

 

下图是流程图例

1、  终端用户通过User-AgentOpenId标识传给OpenId Consumer发起认证。

2、  OpenId Consumer对用户申请标识符进行标准化处理,并找到它。最后,它得到:一个需求标识符,The OpenID ProviderURL和一个OPENID协议版本。

3、  The OpenID client使用Diffie-Hellman密钥建立了一个与服务器的随机连接。然后,两边都会得到一个公共的‘共享密钥’用来为后面的信息作签名和认证。

4、  The OpenID consumer 使用一个OPENID认证请求把User_Agent重指向The OpenID ProviderURL

5、  The OpenID Provider检查是否User-Agent已经被认证过,如果需要再做认证。

6、  终端用户输入所需密码

7、  The OpenID Provider将用户标识传递给指定Consumer检查是否允许,如果需要再向用户要求

8、  终端用户允许或不被允许通过他的标识

9、  The OpenID Provider用一个‘认证通过’或‘失败’的请求重新将User-Agent指向the OpenID consumer

10The 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

 

阅读(1077) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~