安全性概述

安全性是有关数据保护的功能:在存储和传输数据时如何防止对数据进行未经授权的访问或破坏。Application Server 具有基于 J2EE 标准的动态可扩展安全体系结构,内置了多种安全功能,包括密码学、验证和授权以及公共密钥基本结构。Application Server 是基于 Java 安全模型构建的,该安全模型使用沙盒,应用程序可以在沙盒中安全地运行,而不会给系统或用户带来潜在的危险。本节介绍了以下主题:

了解应用程序和系统安全性

从宽泛意义上讲,应用程序安全性有两种:

除了应用程序安全性以外,还有影响 Application Server 系统中所有应用程序的系统安全性

程序安全性受应用程序开发者的控制,因此本文档不对其进行讨论;声明安全性受应用程序开发者的控制要少一些,本文档中只偶尔涉及到声明安全性。本文档主要针对系统管理员,因此主要讲述了系统安全性。

管理安全性的工具

Application Server 提供了以下用于管理安全性的工具:

Java 2 Platform, Standard Edition (J2SE) 提供了两个用于管理安全性的工具:

有关使用 keytoolpolicytool 和其他 Java 安全性工具的更多信息,请参见位于 http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#security 上的 Java 2 SDK Tools and Utilities

在 Enterprise Edition 中,还可以使用两个实现网络安全服务 (NSS) 的工具来管理安全性。有关 NSS 的更多信息,请访问 http://www.mozilla.org/projects/security/pki/nss/。管理安全性的工具包括:

有关使用 certutilpk12util 和其他 NSS 安全性工具的更多信息,请参见位于 http://www.mozilla.org/projects/security/pki/nss/toolsNSS Security Tools

管理密码安全性

在此版本的 Application Server 中,包含特定域的规范的 domain.xml 文件最初以明文形式包含了 IMQ 代理的密码。domain.xml 文件中包含此密码的元素为 jms-host 元素的 admin-password 属性。由于在安装期间不能更改此密码,因此它不会对安全性产生很大的影响。

不过,您可以使用管理控制台添加用户和资源,并为这些用户和资源指定密码。部分密码将以明文形式写入 domain.xml 文件,例如用于访问数据库的密码。将这些密码以明文形式保存在 domain.xml 文件中可能会破坏安全性。通过执行以下操作步骤,您可以对 domain.xml 中的任何密码进行加密,包括 admin-password 属性或数据库密码:

  1. domain.xml 文件所在的目录(默认情况下,此目录为 install_dir/domains/domain_dir/config)中,运行以下 asadmin 命令:
  2. asadmin create-password-alias <alias-name>

    例如,

    asadmin create-password-alias jms-password

    将显示输入密码提示(在本例中为 admin)。有关更多信息,请参阅 create-password-aliaslist-password-aliasesdelete-password-alias 命令的手册页。

  3. 删除并替换 domain.xml 中的密码。使用 asadmin set 命令可以完成此操作。用于此目的的 set 命令的示例如下:
  4. asadmin set server.jms-service.jms-host.default_JMS_host.admin-password=${ALIAS=jms-password}
  5. 重新启动相关域的 Application Server。
保护具有编码密码的文件

某些文件包含需要使用文件系统权限进行保护的编码密码。这些文件包括:

更改主密码

主密码 (MP) 是全局性的共享密码。它从不用于验证,也从不会在网络上传输。此密码是整体安全性的要塞点;用户可以选择在需要时手动输入此密码,也可以将其隐藏在文件中。它是系统中最敏感的数据。用户可以通过删除此文件强制系统提示输入 MP。更改主密码后,系统会将其重新保存到主密码密钥库中。

要更改主密码,必须按照以下步骤进行操作:

  1. 停止域的 Application Server。使用 asadmin 命令 change-master-password 提示输入旧密码和新密码,然后对所有依赖条目重新进行加密。例如,
  2. asadmin change-master-password>
    请输入主密码>
    请输入新的主密码>
    请再次输入新的主密码>
  3. 重新启动 Application Server。

警告:此时,不能启动正在运行的服务器实例并且不能重新启动运行服务器实例,除非已更改这些实例所对应的节点代理上的 SMP。如果在更改服务器实例的 SMP 之前重新启动了该服务器实例,它将无法启动。

  1. 一次停止一个节点代理及与其相关的服务器。再次运行 asadmin change-master-password 命令,然后重新启动节点代理及与其相关的服务器。
  2. 继续对下一个节点代理执行此过程,直到对所有节点代理均已执行此过程。这样可以完成滚动更改。
更改管理员密码

管理密码安全性中讨论了如何对管理员密码进行加密。强烈建议您对管理员密码进行加密。如果要在对管理员密码进行加密之前更改管理员密码,请使用 asadmin set 命令。用于此目的的 set 命令的示例如下:

asadmin set server.jms-service.jms-host.default_JMS_host.admin-password=new_pwd

还可以使用管理控制台更改管理员密码。要使用管理控制台更改管理员密码,请执行以下步骤。

  1. 在管理控制台的树组件中,展开“配置”节点。
  2. 展开要配置的实例:
    1. 要配置特定的实例,请展开该实例的配置节点。例如,对于默认实例 server,请展开 server-config 节点。
    2. 要为所有实例配置默认设置,请展开 default-config 节点。
  3. 展开“安全性”节点。
  4. 展开“区域”节点。
  5. 选择 admin-realm 节点。
  6. 在“编辑区域”页面中,单击“管理用户”按钮。
  7. 选择名为 admin 的用户。
  8. 输入新密码并确认密码。
  9. 单击“保存”以保存新密码,或单击“关闭”以关闭页面而不保存新密码。

指定安全职责

将为以下角色指定安全职责:

应用程序开发者

应用程序开发者负责:

应用程序开发者可以使用 deploytool 等工具来编辑应用程序部署描述符。The J2EE 1.4 Tutorial 中的 "Security" 一章详细讨论了这些安全性任务,您可以从以下 URL 中查看该教程:

应用程序部署者

应用程序部署者负责:

应用程序部署者可以使用 deploytool 等工具来编辑应用程序部署描述符。The J2EE 1.4 Tutorial 中的 "Security" 一章详细讨论了这些安全性任务,您可以从以下 URL 中查看该教程:

系统管理员

系统管理员负责:

系统管理员使用管理控制台来管理服务器安全性设置,并使用 certutil 来管理证书。本文档主要针对系统管理员。


法律通告