DB2 Web 服务提供者的安全性(2)
在 WebSphere 中实现 Web 服务安全性
DB2 Web 服务提供者的安全性问题
为 DB2 Web 服务提供者设置安全性的管理员的问题是识别和认证的问题,这个我们已经提到过。我们将要求用户通过 HTTP 认证进行客户认证来解决该问题。HTTP 认证意味着 HTTP 请求必须具有一个带有用户标识和口令的 HTTP 头字段。当您在浏览器中遇到一个要求认证的 Web 页面时,您通常得到一个对话框,让您为该 Web 页面输入您的用户标识和口令。在 SOAP 情况下,必须修改客户机程序以发送用户标识和口令。
我们通过对 URL 使用 J2EE(Java 企业版)授权机制来解决授权问题。由于所有的 Web 服务请求都基于发送消息到特定的 URL,我们可以配置 Web 应用程序使得只有特定的用户可以发送请求给特定 URL。URL 可以是一个 DADX,或者是一组完整的 DADX 文件。我们将在后面详细讨论。
机密性和完整性可以通过要求用户使用 HTTPS 来简单地得到解决。这意味着所有网络传输都是加密的,并且消息篡改也可以检测到。
这里还有最后一个问题,就是将利用 WebSphere 认证的用户映射到执行 DADX 中的语句的数据库用户。由于我们的运行时不能确定在 HTTP 认证中所使用的用户标识和口令,因此我们不能使用该用户连接到数据库。在某些情况下,如果应用服务器用户不同于数据库用户,这甚至是不现实的。这种情况的一个例子是应用服务器和数据库服务器运行在不同的机器上并且都使用操作系统作为用户注册表。相反,您可以在组(包含多个 DADX 文件)上指定一个用户标识和口令。该用户将被用于执行组中的 DADX 中的所有 SQL 语句。如果希望区分执行 SQL 的用户,您可以创建单独的组,比如针对会计部门的用户创建一个组,针对工程部门的用户创建一个组。
准备工作
对于下面的步骤,我们假定您已经按照安装所推荐的,从 DB2 V8 安装中的 sqllib\samples\java\Websphere 目录下,将 dxxworf.zip 解压到 c:\worf。您还需要遵循安装指令。您不需要安装示例 Web 应用程序 services.war,因为我们在下面的步骤中将要修改它。如果已经部署 services.war,这是可以接受的,因为我们将要把该示例 war 部署为一个不同的 Web 应用程序。
我们将使用应用服务器工具集(Application Server Toolkit,ASTK)来修改示例 war 文件,以增加安全性约束。ASTK 非常类似于 WebSphere Studio,因此如果用户喜欢用 WebSphere Studio ,也能达到同样的效果。第一步是将示例 war 文件导入到 ASTK 中。图 2 中描述了这一步。
图 2. 导入示例 war 文件
输入您希望添加安全性约束的 war 文件的位置。
图 3. 指定 war 文件的位置
我们创建一个名为“SecureDADX”的新的 Web 应用程序,该应用程序将包括 DADX 文件和其他配置文件。
图 4. 指定 Web 应用程序的名称
同时,还将示例 war 文件从符合 J2EE 1.2 迁移到符合 J2EE 1.3。选择 SecureDADXWeb 模块,右击并选择 Migrate和 J2EE Migration wizard。这允许我们在后面使用 WebSphere 5 DataSource。
我们已经导入 Web 应用程序,现在可以针对安全性对它进行修改了。下一步是在 war 文件中设置数据库连接。