论J2EE过滤器技术框架下的统一身份认证与访问控制技术

(整期优先)网络出版时间:2009-02-12
/ 2

论J2EE过滤器技术框架下的统一身份认证与访问控制技术

田粒学

关键词:J2EEServlet过滤器;身份认证;访问控制;JSP/Servlet

1引言

随着信息化的深入发展,企业信息化逐渐从传统单机系统、客户/服务器转向基于Internet应用、支持互联网的多层应用和瘦客户端的浏览器/服务器结构的信息系统。同时,企业级信息系统的安全性也已成为信息化建设过程中至关重要的环节。

J2EEServlet是分布式企业架构J2EE的Web组件,从Servlet2.3规范开始新增了一种过滤器功能,称为ServletFilter,主要作用是拦截、操纵来自客户端的请求,在资源还未发送到客户端前截取响应,并处理这些响应。本文主要针对基于J2EEServlet过滤器技术实现企业信息系统用户的统一身份认证和资源的访问控制进行讨论。

2用户身份认证与访问控制技术分析

2.1用户身份认证

信息化应用系统的用户认证是指只有合法用户才能进入系统和使用系统提供的各种功能。基于Internet的多层B/S结构的应用系统,用户认证可通过以下三种方式实现:1)WebServer服务器实现,利用Web服务器本身的用户身份功能实现;2)通过应用服务器实现,如J2EE应用服务器,它提供了基于J2EE安全基础框架的用户身份认证;3)信息化应用系统实现,或软件开发者在应用系统中结合前两种方法在系统内实现。这三种方式各有其特点:前两种必须与WebServer和J2EE应用服务器相结合并利用其各自的特点进行配置实现,其灵活性较差,不能根据应用系统的需要进行定制;第三种方式,结合应用系统自身特点在应用系统内部实现。具体采用哪种认证方式要根据应用系统的需求来决定,本文讨论第三种方式。

2.2访问控制模型

对信息化应用系统而言,目前尚无统一的方法处理访问控制问题,必须应用系统自身访问控制及权限逻辑来设计访问控制模型,用以协调系统中主体、客体及授权之间的关系。在设计访问控制模型前,必须决定访问控制策略和访问控制机制。访问控制策略是指在系统安全策略级上表示授权策略,是对访问如何控制及如何做出访问决定的高层指南;访问控制机制,是访问控制策略的软硬件低层实现。访问控制机制与策略独立,可允许安全机制的重用。安全策略和机制可根据应用系统环境的需要灵活使用。

客体:规定需要保护的资源,又称作目标。

主体:规定可访问该资源的实体(通常指用户或代表用户执行的程序),又称为发起者,是一个主动的实体。

授权:规定可对该资源执行的动作(例如:读、写、执行或拒绝访问等)。

一个主体为了完成任务,可创建另外的主体,这些子主体可在网络上不同的计算机上运行,并由父主体控制它们。主客体的关系是相对的。

主体(发起者)提交对客体(目标)的访问请求,首先通过访问控制实施功能器AEF提请访问控制决策;然后,通过访问控制决策功能器做出决策到实施功能器;再次,提请对目标的访问请求。

3J2EEServlet过滤器技术

3.1J2EEServlet过滤器

J2EEServlet过滤器是J2EE的Web组件之一,主要作用是拦截请求和响应,以某种方式查看或提取正在客户机和服务器之间交换的数据,提供一种面向对象的模块化机制,用以将公共任务封装到可插入的组件中。J2EEServlet过滤器是通过一个配置文件来灵活声明的模块化可重用组件,它动态地处理传入的请求和传出的响应,且无需修改应用程序代码就可透明地添加或删除它们,同时,它独立于任何平台或Servlet/Java服务页面(JavaServerPage,JSP),容易部署到任何相容的J2EE应用服务器环境中。可见,J2EEServlet过滤器是一个强大、模块化的独特的Web组件。

3.2J2EEServlet过滤器结构体系

Web资源可配置为无过滤器关联(默认情况)、与单个过滤器关联(典型情况),甚至可与一个过滤器链相关联。过滤器接受请求并响应和检查请求对象,再决定将该请求转发给链中的下一个组件,或中止请求直接向客户机发回一个响应。若请求被转发,传递给链中的下一个资源(另一个过滤器、Servlet或JSP),服务器处理后将以相反顺序通过该链发回一个响应。这样,每个过滤器都能根据需要处理响应对象。

根据J2EEServlet过滤器的特点和结构体系,设计实现认证过滤器和访问控制过滤器,用户请求首先经过认证过滤器,将过滤器链传递给访问控制过滤器,再到所访问的资源。下文较详细地描述设计过程。

3基于J2EEServlet过滤的用户认证与访问控制设计

基于Internet的多层B/S结构的Web应用系统对用户提供的都是一些静态的或动态的网页,动态网页可采用不同的技术实现,如JSP/Servlet、.NET活动服务页面等服务器脚本语言来实现,其实质就是不同的超链接统一资源定位。

3.1用户身份认证设计

基于J2EE的Web应用系统,用户认证可通过登录JSP接收用户输入的用户名和口令实现。设计J2EEServlet过滤器实现对用户请求的过滤,允许合法用户操作特定的JSP。这里需要设计一个J2EEServlet过滤器类和一个用户合法性检查的J2EEServlet类。基于J2EEServlet过滤器的用户身份认证的统一建模语言

3.2用户访问控制设计

本文讨论的是基于用户岗位角色的访问控制策略,它是一个复合的规则,可以被认为是IBAC和RBAC的变体。角色是一组用户的集合,一组操作权限的集合,一个身份分配给一个被授权的组,每个角色与一组用户和有关的动作相互关联,角色中所属的用户可有权执行这些操作。基于用户岗位角色的访问控制策略具有角色分层、责任分离、角色激活和用户角色关系约束的特点。根据以上特点,本文将用户分为:

1)特殊用户,第一层:具有最高级别的特权,可以访问系统管理级资源,并具有系统级类型的访问控制操作能力,如系统管理员;第二层:具有较高的权限,可以访问每个业务对象,并可将业务对象授权给一般用户,如业务管理员。

2)一般用户,也是最大一类用户,他们的访问操作受到一定限制,由系统管理员或业务管理员对其分配操作权限。

3)作审计的用户,负责整个安全系统内安全控制与资源使用情况的审计。

4)作废的用户,被系统拒绝的用户。根据用户的自然属性将用户分配到不同的用户组(或部门)。

4结论

J2EE服务器作为分布式Web应用的首选平台,广泛应用于企业信息化建设中,用户身份认证与访问控制授权是信息化应用系统安全性的基石。通过对用户身份认证方式、访问控制模型以及J2EEWeb组件Servlet过滤器的分析研究,给出了统一用户身份认证的方法与UML顺列图;根据应用系统特点将用户分类和划分岗位角色,定义系统资源和相应权限,提出统一的访问控制授权方法并给出了UML类图。实现了基于J2EEServlet过滤器技术的企业信息系统的统一用户身份认证和访问控制授权。

参考文献:王崧,徐以新,译.《构建与部署J2EE应用的最佳策略》.