没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
25页
Java Authentication Authorization Service(JAAS,Java 验证和授权API)提供了灵活和可伸缩的机制来保证客户端或服务器端的Java 程序。Java 早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击。JAAS 强调的是通过验证谁在运行代码以及他/她的权限来保护系统面受用户的攻击。它让你能够将一些标准的安全机制,例如 Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos等通过一种通用的,可配置的方式集成到系统中。本文首先向你介绍JAAS 验证中的一些核心部分,然后通过例子向你展示如何开发登录模块。
资源推荐
资源详情
资源评论
JAAS:灵活的Java 安全机制
Java Authentication Authorization Service(JAAS,Java 验证
和授权API)提供了灵活和可伸缩的机制来保证客户端或服务器端
的 Java 程序。Java 早期的安全框架强调的是通过验证代码的来源
和作者,保护用户避免受到下载下来的代码的攻击。JAAS 强调的
是通过验证谁在运行代码以及他/她的权限来保护系统面受用户
的攻击。它让你能够将一些标准的安全机制,例如 Solaris NIS(网
络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos
等通过一种通用的,可配置的方式集成到系统中。本文首先向你介
绍 JAAS 验证中的一些核心部分,然后通过例子向你展示如何开发
登录模块。
你是否曾经需要为一个应用程序实现登录模块呢?如果你是
一个比较有经验的程序员,相信你这样的工作做过很多次,而且每
次都不完全一样。你有可能把你的登录模块建立在 Oracle 数据库
的基础上,也有可能使用的是 NT 的用户验证,或者使用的是 LDAP
目录。如果有一种方法可以在不改变应用程序级的代码的基础上支
持上面提到的所有这一些安全机制,对于程序员来说一定是一件幸
运的事。
现在你可以使用JAAS 实现上面的目标。JAAS 是一个比较新
的 的 Java API。在 J2SE 1.3 中,它是一个扩展包;在J2SE 1.4
中变成了一个核心包。在本文中,我们将介绍 JAAS 的一些核心概
念,然后通过例子说明如何将 JAAS 应用到实际的程序中。本文的
例子是根据我们一个基于Web 的 Java 应用程序进行改编的,在
这个例子中,我们使用了关系数据库保存用户的登录信息。由于使
用了JAAS,我们实现了一个健壮而灵活的登录和身份验证模块。
Java验证和授权:概论
在JAAS 出现以前,Java 的安全模型是为了满足跨平台的网
络应用程序的需要而设计的。在 Java 早期版本中,Java 通常是作
为远程代码被使用,例如 Applet,。因此最初的安全模型把注意力
放在通过验证代码的来源来保护用户上。早期的Java 安全机制中
包含的概念,如 SercurityManager,沙箱概念,代码签名,策略
文件,多是为了保护用户。
JAAS的出现反映了Java 的演变。传统的服务器/客户端程
序需要实现登录和存取控制,JAAS 通过对运行程序的用户的进行
验证,从而达到保护系统的目的。虽然 JAAS 同时具有验证和授权
的能力,在这篇文章中,我们主要介绍验证功能。
通过在应用程序和底层的验证和授权机制之间加入一个抽象
层,JAAS 可以简化涉及到Java Security 包的程序开发。抽象层
独立于平台的特性使开发人员可以使用各种不同的安全机制,而且
不用修改应用程序级的代码。和其他Java Security API 相似,JAAS
通过一个可扩展的框架:服务提供者接口(Service Provider
Interface,SPI)来保证程序独立于安全机制。服务提供者接口是
由一组抽象类和接口组成的。图一中给出了 JAAS 程序的整体框架
图。应用程序级的代码主要处理 LoginContext。在 LoginContext
下面是一组动态配置的 LoginModules。LoginModule 使用正确的
安全机制进行验证。
图一给出了JAAS 的概览。应用程序层的代码只需要和
LoginContext 打交道。在 LoginContext 之下是一组动态配置的
LoginModule 对象,这些对象使用相关的安全基础结构进行验证操
作。
图一 JAAS 概览
JAAS 提供 了 一些 LoginModule 的 参 考 实 现 代 码 , 比 如
JndiLoginModule。开发人员也可以自己实现 LoginModule 接口,
就象在我们例子中的 RdbmsLonginModule。同时我们还会告诉你
如何使用一个简单的配置文件来安装应用程序。
为了满足可插接性,JAAS 是可堆叠的。在单一登录的情况下,
一组安全模块可以堆叠在一起,然后被其他的安全机制按照堆叠的顺
序被调用。
JAAS 的实现者根据现在一些流行的安全结构模式和框架将
JASS 模型化。例如可堆叠的特性同 Unix
下的可堆叠验证模块
(PAM,Pluggable Authentication Module)框架就非常相似。从
事务的角度看,JAAS 类似于双步提交(Two-Phase Commit,2PC)
协议的行为。JAAS 中安全配置的概念(包括策略文件(Police File)
和许可(Permission))来自于 J2SE 1.2。JAAS 还从其他成熟的
安全框架中借鉴了许多思想。
客户端和服务器端的 JAAS
开发人员可以将JAAS 应用到客户端和服务器端。在客户端使
用 JAAS 很简单。在服务器端使用 JAAS 时情况要复杂一些。目前
在应用服务器市场中的JAAS 产品还不是很一致,使用JAAS 的
J2EE 应用服务器有一些细微的差别。例如 JBossSx 使用自己的结
构,将JAAS 集成到了一个更大的安全框架中;而虽然WebLogic
6.x 也使用了JAAS,安全框架却完全不一样。
现在你能够理解为什么我们需要从客户端和服务器端的角度
来 看 JAAS 了。我们将在后面列出两种情况下的例子。为了使服务
器端的例子程序更加简单,我们使用了 Resin 应用服务器。
核心JAAS 类
在使用JAAS 之前,你首先需要安装JAAS。在 J2SE 1.4 中
剩余24页未读,继续阅读
资源评论
小小哭包
- 粉丝: 1899
- 资源: 3854
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功