本文分为两大部分,第一部分阐述了 FileNet Content Engine 的安全机制;第二部 分举例说明了如何使用安全相关的 Java API 来设置安全,从而保证存储内容的安全。
FileNet Content Engine 安全机制简介
FileNet Content Engine 是 FileNet P8 体系中的核心模块之一,主要负责内容存 储和内容管理。Content Engine 在一个面向对象的容器中提供了一系列服务来支持企业 内容管理和客户自定义对象。Content Engine 创建了这些数字对象之间的关系,然后管 理他们各自的组建和生命周期。Content Engine 可以在不同的分布式环境中管理商业对 象的访问权限,并且可以维持这些对象的行为,特性,属性的相关信息。
由于不同的用户可以对不同的对象具有不同的权限,FileNet Content Engine 使用 的一系列安全模型来保证存储内容的安全,主要分为以下部分:
FileNet Content Engine Authenticatio(认证):包括 JAAS 和 WS-Security 两 种方式。
FileNet Content Engine Authorization(授权): FileNet Content Engine Domain Security.
主要包括 FileNet Content Engine 中 User 和 Group, ACE(Access Control Entries), ACL(Access Control List), 安全评估顺序,Security Policies,Markings 和 Marking Sets。
下面分别介绍这几个方面:
FileNet Content Engine Authentication
认证是基于用户的凭证来验证用户身份的行为。认证要做的事是回答:用户是谁?当 前用户是否真的是他所代表的角色?而授权是在认证过后继续进行的动作,授权要做的 事是判断用户是否被授权访问某个资源或者进行某个操作。
在 FileNet P8 的认证处理过程中,有两种标准处于核心地位,他们分别是 Java Authentication and Authorization Service (JAAS) standard 和 Web Services Security standard 。
JAAS 概要
JAAS 提供了一种基于策略的可靠和安全框架;使用了这种可插拔的框架,应用程序 ,例如 Content Engine,可以和底层的认证技术保持独立。
客户端程序在调用 Content Engine Java API 之前需要获得 JAAS Subject;通过与 Content Engine Java API 的交互来调用 Content Engine EJB。客户端的 JAAS Subject 通过每个 EJB 调用,透明地传递到 J2EE 应用程序服务器端,服务器端验证 JAAS subject,然后批准调用者的身份,之后调用者才能在 Content Engine EJB 中执 行代码。在 Content Engine 认证用户时,JAAS 会和 Directory service providers 交互,检验用户是否合法。
WS-Security 概要
Web Service 的核心是 XML,通过 Web Service,不同类型的系统可以进行通信。 FileNet 在 Content Engine 服务中提供了 Web Service 接口,从而支持了各种类型的 连接。
Web Service 的核心标准之一是 WS-Security 标准。WS-Security web service 定 义了三种主要的安全机制:安全令牌传播,消息集成和消息保密。WS-Security 提供了 配置文件,这些配置定义了不同类型的安全凭证如何被格式化和插入到 web service 的 消息中。
Content Engine 的认证架构
Content Engine 是以 J2EE 应用程序部署的,可以发布在一个或者多个 J2EE 应用 程序服务器实例中。这种应用程序的核心组件是:
Content Engine Web Service listener:这个 listener 是以基于 servlet 的应用 程序包存在于应用服务器的 web 容器中;来自 web service 的请求在被 WS-Security headers 处理后会传递到 Content Engine EJB 这一层,如下图所示: