OPENID互信机制及实现方案

来源:互联网 发布:伯明翰大学 知乎 编辑:程序博客网 时间:2024/06/11 17:51

OPENID互信机制及实现方案

1.OpenID服务

系统通过 OpenID,可以声明一个标识符,然后在采用 OpenID 协议的任意系统上使用它。

 

1.1使用OpenID服务的方案

身份验证的目的是要用户证明其身份。这样做可以保护Web资源,使其免受恶意访问者的攻击。各业务系统在进行业务操作前需要调用基于OpenID协议的服务组件进行身份验证。该组件提供了调用OpenID提供者(OP)服务的基础服务,包括OpenID标识符的获取服务和认证服务等。

下面是一些基本步骤:

1)        获取用户提供的标识符:RP 获得用户的OpenID。

2)        发现:RP 规范化用户提供的标识符,以决定联系哪个 OP 进行身份验证,如何与其联系。

3)        关联:RP和OP建立一个安全通信渠道。

4)        身份验证请求:RP 要求 OP 对用户进行身份验证

5)        验证:RP向OP请求用户名验证,并确保通信没有受到干扰。

6)        转到应用程序:身份验证之后,RP为用户指向其先前请求的资源。

下面以门户为例,来描述一下OpenID的使用方式:


注:门户登陆后,在门户中访问业务系统链接,无需再次登陆,实现了SSO。

1.2OpenID互信的机制和实现方案

1)OpenID 规范的每个组成部分及其作用

OpenID标识符

最终用户用以标识其身份的URLXRI。OpenID的核心部分当然是OpenID标识符。OpenID标识符(或简称 “标识符”)是惟一标识用户的可读字符串。没有两个用户拥有相同的 OpenID。通过遵循 OpenID验证规范2.0的规定,OpenID依赖方能够解码(或 “规范化”)标识符以弄清如何验证用户身份。

Discover

可使用声明的标识符通过一个名为discovery 的进程定位OP,之后OP验证该用户身份。

OpenID 依赖方(RP,Relying Party)

想要对最终用户的标识进行验证的站点。

RP 通常由用户提供的标识符呈现,该标识符被规范化为声明的标识符。用户的浏览器(“用户代理”)将被重定向到 OP,这样用户便可以提供其密码并得到身份验证。

RP不知道也不关心声明的标识符是如何获得验证的;它只想知道 OP 是否成功地验证了用户身份。如果验证成功,用户代理(也可能是用户的浏览器)会被转发到用户正试图访问的安全资源中。如果用户得不到验证,RP会拒绝任何访问。

Open ID提供者(OP

提供OpenID URL或XRI注册和验证服务的服务提供者。

OP(OpenID 提供者)负责发出标识符并执行用户身份验证。OP 还提供基于Web的OpenID管理。OP 收集并保留每个用户的以下基本信息:

·        电子邮箱

·        全名

·        出生日期

·        邮编

·        国家

·        第一语言

当要求OP验证声明的标识符时,用户的浏览器直接转到登录页面,用户在该页面输入其密码。此时的控制权在于OP。如果用户成功得到身份验证,OP会将浏览器转到RP指定的位置(在一个特殊的 “return-to” URL 中)。如果用户不能进行身份验证,他可能会收到来自OP的消息,指出身份验证失败.

2) OpenID互信机制及流程

下面的图表展示了OpenID2.0草案的基本工作流程。它展示了在终端用户、外部系统(RP)和OpenID验证服务器(OP)之间的交互过程。


用户访问外部站点资源的过程主要分为以下几个步骤:

(1)用户访问外部系统,并提供一个身份地址(URL格式)给外部系统

(2)RP发现OP

RP 采用用户提供的标识符,并将其转化为一种格式,可用于确定两个内容:OpenID 提供者(OP)是谁,以及如何联系 OP。RP 使用发现过程来确定如何向 OP 发出请求,而关键便是用户提供的标识符。标识符主要为以下两种形式:

l  XRI:可扩展资源标识符

l  URL:统一资源定位符

在将用户提供的标识符用于发现之前,首先必须将其规范化。

在获取规范化后的标识符后,外部系统将用户的身份地址标准化后通过执行OP发现机制,对OP的端点URL执行发现,并将OP与RP进行关联。

(3)RP请求验证用户身份

RP 发现OP的位置后,请求 OP 确认是否可以验证用户的身份。首先,RP 通过端点 URL 联系 OP。OP 负责处理身份验证机制,进行身份验证。

(4)OP进行身份验证

在上一步中,身份验证请求已经到达了 OP 的端点 URL。接下来,OP 分解请求以决定后续操作。OP 打开请求,获取它的模式,模式可能是关联或身份验证。如果是关联模式,则发送关联响应请求给RP,建立关联。RP 确认已经建立关联之后,RP 向 OP 发送另一个调用。OP 再次分解并处理请求。OP首先判断用户是否已经正确登陆了,如果用户已经登录了,它返回一个成功的身份验证消息。如果用户还没有登录,可以呈现一个表单给终端用户,用户输入用户名,密码和验证码等凭证信息进行身份验证,如果用户成功地验证身份,就发送回一个成功的响应并把一些信息,存储在 Session 中。可以基于做为实现单点登陆功能的底层机制。

(5)RP授予访问权

如果用户成功地登录,OP 会发送回一个成功的 AuthResponse 消息。现在,由 RP 授予用户访问权。如果用户通过了 OP 的身份验证,示例应用程序会自动地授予访问权。

 


0 0
原创粉丝点击