JAAS - 机动的Java安全机制[Java编程]
本文“JAAS - 机动的Java安全机制[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 - 机动的Java安全机制[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |