快速业务通道

面向Java Web应用程序的OpenID,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
id4java 为 Java Web 应用程序注册系统编写依赖方。在本文中,我们按相似的过程编写 OpenID 提供者。openid4java 确保 OpenID 提供者符合 OpenID 身份验证规范,因为所有 OpenID 基础设施已经编写好了。

关于示例应用程序

示例应用程序的目的是演示 OpenID RP 和 OP 如何协作以防止未授权的资源访问。示例应用程序的流程非常明确:

用户试图访问受保护的资源。

RP 请求 OP 验证用户的身份。

如果用户还没有登录的话,OP 验证用户的身份。

RP 判断登录的用户是否有权访问受保护的资源。

示例应用程序包含 RP 和 OP 的代码,这样您可以看到它们的协作方式。在真实的场景中,不会把这两个组件部署在同一个应用程序中 — 完全没有理由这么做! — 但是把它们放在一起有助于研究它们的交互方式。

示例应用程序中的代码清单

本节中的代码清单演示 OP(和 RP)如何通过调用 openid4java API 使用 OpenID。您可能会注意到示例应用程序实际上需要的代码非常少。openid4java 确实大大简化了开发。RP 使用的代码基本上与在 第 1 部分 中看到的代码差不多,关于 RP 内部原理的更多信息参见第 1 部分。我会指出几处差异(主要与第 1 部分中没有讨论的 AX 相关)。

与为第 1 部分编写的应用程序一样,这个应用程序也使用 Wicket 作为 UI。为了减少示例应用程序中 Wicket 的内存占用量,我把 OP 用来调用 openid4java 的代码隔离在它自己的 Java 类 OpenIdProviderService 中(在 com.makotogroup.sample.model 中)。

OpenIdProviderService.java 包含几个方法,它们与 openid4java API 的使用方法对应:

getServerManager() 配置并返回 openid4java ServerManager 类的引用。

getOpEndpointUrl() 返回 OP 从 RP 接收请求的位置的端点 URL。

processAssociationRequest() 应 RP 的请求使用 openid4java 关联 OP。

sendDiscoveryResponse() 把发现响应发送给 RP。

createAuthResponse() 创建在处理身份验证请求之后发送给 RP 的 openid4java AuthResponse 消息。

buildAuthResponse() 是处理 OpenID Simple Registration 和 Attribute Exchange 请求的核心方法。

启动示例应用程序的方法是,运行 Ant [REF] 并构建 WAR 目标,然后把它复制到 Tomcat webapps 目录并启动 Tomcat。

面向Java Web应用程序的OpenID,第2部分(3)

时间:2011-12-08 ibm J Steven Perry

OpenID 身份验证:步骤

当用户试图访问依赖方 (RP) 的受保护资源时,RP 要确认用户的身份是真实的(身份验证),然后决定是否授予用户访问权(授权)。本文的重点是身份验证,所以如果 OpenID 提供者 (OP) 验证了用户的身份,示例应用程序就会授予对受保护资源的访问权。在真实的场景中,RP 还会执行某种授权。

在运行示例应用程序时,会看到一个包含受保护资源的屏幕。这个过程中会发生以下事件,下面几节详细讨论这些事件:

请求访问受保护资源:用户试图访问 RP 网站上的受保护资源。

RP 执行发现:RP 向 OP 发送发现请求以建立连接和执行关联。

OP 响应发现请求:OP 通过 SReg、Attribute Exchange (AX) 或 OpenID Provider Authentication Policy (AP) 扩展发送回一个 XRDS (eXtensible Resource Descriptor Sequence),以此响应发现请求。XRDS 确认这个 OP 是用户的 OpenID 服务提供者。

RP 请求验证用户的身份:RP 向 OP 询问是否可以验证用户的身份。如果登录成功,RP 使用 SReg 和/或 AX 扩展请求某些用户信息。

OP 验证用户的身份:如果用户没有登录或者用户会话无效,就要求用户提供登录凭证。如果身份验证成功,OP 就通知 RP 并发送通过 SReg 和/或 AX 请求的数据。

RP 授予访问权:授予用户对受保护资源的访问权。在真实的场景中,大多数 RP 会

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号