J2EE 摸索者: 用JAAS和JSSE实现Java安全性[Java编程]
本文“J2EE 摸索者: 用JAAS和JSSE实现Java安全性[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
从早期所谓的 Java 沙箱到 JDK 1.4 引入的结实的、全功效的安全部系构造,安全性一向是 Java 平台的基本组件.从当时到目前,Java 语言的计划者收到了来自集体的大量关于安全的 Java 利用程序(大概企业环境)可以做什么和不做什么的看法,他们自己也增添了若干本领.
可以说随着 J2EE Web 利用程序安全部系构造的引入,我们不断从近 10 年的反复试验有所收获,事实也表明了这一点.J2EE 安全框架由三个 API 构成:Java 认证和受权服务(JAAS)、Java 安全套接字扩大(JSSE)和 Java 加密扩大(Java Cryptography Extension,JCE).固然 JCE 是一个有意思和重要的 API,但是它与我们所关注的安全 Web 利用程序开辟的“三大项”――认证、受权和传输――并不分外相关.所以在本月的专栏中我们将集合报告 JAAS 和 JSSE.
JAAS 和 JSSE 概述
JAAS 供应了一种机动的、阐明性的机制,用于对用户举行认证并考证他们拜候安全资源的本领.JSSE 定义了通过安全套接字层(SSL)举行安全 Web 通信的一种全 Java 的机制.通过结合这两种技术,可以使我们的利用程序:
考证用户就是他大概她所声称的那个人(认证).
保证答应他大概她拜候所要求的资源(受权).
通过安全网络衔接举行完好的信息交换(传输).
目前,我们来看每一个底子的功效组件.
用 JAAS 举行认证
JAAS 成立在一种称为可插入的认证模块(Pluggable Authentication Module,PAM)的安全部系构造之上.PAM 的体系构造是 模块化的,这意味着它计划为可以通过交换模块,支持从一个安全协议组件无缝地转换到另一个协议组件.这个框架中定义杰出的接口使得无需改变大概干扰任何现有的登录服务便可以加入多种认证技术和受权机制.PAM 体系构造可以集成范围遍及的认证技术,包含 RSA、DCE、Kerberos 以及 S/Key,因而 JAAS 也可以集成这些技术.此外,这个框架与基于智能卡的认证系统和 LDAP 认证兼容.
就像很多 Java 2 平台技术一样,JAAS API 定义了利用程序代码与将要履行业务逻辑的物理实现之间干净的抽象.这个抽象层不用重新编译现有的利用程序代码便可以作为登录模块的运行时替换.分外是,利用程序写到 LoginContext API,而认证技术供应程序则写到 LoginModule 接口.在运行时, LoginContext 将读取配置文件以肯定应利用哪一个(一些)登录模块对拜候特定利用程序的用户举行认证.
JAAS 所利用的认证筹划以两种非常重要的实体为底子:principal 和 subject.实际被认证的人大概服务称为 subject.principal是一个惟一的实体,比方个人大概组的名字、帐号、社会安全号大概近似的惟一标识.为了惟一标识一个 subject(这是认证的关键部份),一个大概多个 principal 必须与这个 subject 相关联.最后,一个 subject 大概拥有安全相关的属性,称为 凭证(credential).凭证可以是从简单的密码到复杂的加密密钥的任何东西.
利用程序通过实例化一个 LoginContext 对象开始认证历程.LoginContext 查询一个配置文件以肯定举行认证所利用的一种(大概多种)认证技术以及呼应的一个(大概多个) LoginModule .一个非常简单的 LoginModule 大概会提醒输入用户名和密码并对它们举行考证.高级一点的大概会利用现有的操作系统登录身份举行身份考证.理论上,乃至可以将一个 JAAS LoginModule 构建成与指纹辨认器大概虹膜扫描仪交互.
以上是“J2EE 摸索者: 用JAAS和JSSE实现Java安全性[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |