可以使用三种类型的 Web 登录认证机制来配置 Web 应用程序:基本认证、基于表单的认证和基于客户机证书的认证。通过指定安全角色给那些资源,保护 Web 应用程序中的 Web 资源。
关于此任务
要保护 Web 应用程序,确定需要保护的 Web 资源并确定如何对其进行保护。
注: 此过程可能与使用
组装工具时所需要执行的步骤不匹配,或与您正在使用的组装工具的版本不匹配。应该遵循要使用的工具和版本的指示信息。
以下步骤详细描述使用组装工具保护 Web 应用程序:
过程
- 在组装工具中,导入 Web 应用程序归档 (WAR) 文件或包含一个或多个 Web 模块的应用程序归档 (EAR) 文件。
- 在“项目资源管理器”文件夹中,找到您的 Web 应用程序。
- 右键单击部署描述符,然后单击打开方式 > 部署描述符编辑器。 将打开“部署描述符”窗口。要查看有关编辑器的联机信息,请按 F1 键并单击编辑器名。 如果您选择 Web 应用程序归档 (WAR) 文件,那么会打开 Web 部署描述符编辑器。如果您选择企业应用程序 (EAR) 文件,那么打开应用程序部署描述符编辑器。
- 在应用程序级别或 Web 模块级别上创建安全角色。 如果在 Web 模块级别上创建安全角色,角色还在应用程序级别中显示。如果在应用程序级别上创建安全角色,角色不会在所有 Web 模块中显示。可将应用程序级别上的安全角色复制并粘贴到一个或多个 Web 模块安全角色。
- 在 Web 模块级别创建角色。在 Web 部署描述符编辑器中,单击“安全性”选项卡。在安全角色下,单击添加。输入安全角色名,描述安全角色,然后单击完成。
- 在应用程序级别创建角色。在应用程序部署描述符编辑器中,单击“安全性”选项卡。在安全角色列表下,单击添加。在“添加安全角色”向导中,命名和描述安全角色,然后单击完成。
- 创建安全性约束。 安全性约束是一个或多个 Web 资源到一组角色的映射。
- 在 Web 部署描述符编辑器的“安全性”选项卡上,单击安全性约束。 在“安全性约束”选项卡上,可以执行以下操作:
- 在“安全性约束”下,单击添加。
- 在“约束名”下,指定安全性约束的显示名,然后单击下一步。
- 输入 Web 资源集合的名称和描述。
- 选择一个或多个 HTTP 方法。 HTTP 方法选项是:GET、PUT、HEAD、TRACE、POST、DELETE 和 OPTIONS。
- 在“模式”字段中,单击添加。
- 指定 URL 模式。 例如,输入 - /*, *.jsp, /hello。查询 servlet 规范 V2.4,以了解有关将 URL 模式映射到 servlet 的指示信息。安全运行时使用第一个完全匹配,以使用 URL 模式映射进入 URL。如果不存在完全匹配,那么安全运行时使用最长的匹配。最后使用通配符(*.、*.jsp)URL 模式匹配。
- 单击完成。
- 重复这些步骤,创建多个安全性约束。
- 映射 security-role-ref 和 role-name 元素到 role-link 元素。 Web 应用程序开发期间,可创建 security-role-ref 元素。security-role-ref 元素仅包含 role-name 字段。role-name 字段包含 servlet 或 JavaServer Pages (JSP) 代码中引用的角色名,以确定调用者是否处于指定的角色。因为安全角色是在组装阶段创建的,所以开发者在 Role-name 字段中使用逻辑角色名,并在“描述”字段中为组装器提供足够的描述,来映射实际的角色。Security-role-ref 元素处于 servlet 级别。servlet 或
JavaServer Pages (JSP) 文件可以有零个或更多 security-role-ref 元素。
- 转至 Web 部署描述符编辑器的“引用”选项卡。 在“引用”选项卡上,可以添加或移除企业 Bean 对部署描述符的引用名称。可以在此选项卡上定义五种类型的引用:
- EJB 引用
- 服务引用
- 资源引用
- 消息目标引用
- 安全角色引用
- 资源环境引用
- 在 Enterprise JavaBeans (EJB) 引用列表下,单击添加。
- 为名称和引用类型字段中的引用指定名称和类型。
- 选择工作场所中的企业 Bean 或不在工作场所中的企业 Bean。
- 可选: 如果选择不在工作场所中的企业 Bean,请选择类型字段中的企业 Bean 类型。 可以指定实体 bean 或会话 bean。
- 可选: 单击下一步前,单击浏览为本地 Home 和本地字段中的本地 Home 和本地接口指定值。
- 使用上述步骤将开发期间使用的每个 role-name
映射到角色。 开发期间使用的每个角色名映射到实际的角色。
- 为 servlet 和 JSP 文件指定 RunAs 标识。 servlet 的 RunAs 标识用于从 servlet 代码内调用企业 Bean。当调用企业 Bean 时,RunAs 标识传递给企业 Bean 以执行企业 Bean 上的授权检查。如果未指定 RunAs 标识,客户机标识传播给企业 Bean。在 servlet 级别上指定 RunAs 标识。
- 在 Web 部署描述符编辑器的“Servlet”选项卡的 Servlet 和 JSP 下,单击添加。“添加 servlet 或 JSP”向导打开。
- 指定包括名称、初始化参数和 URL 映射的 servlet 或 JavaServer Pages (JSP) 文件设置,然后单击下一步。
- 指定类文件目标。
- 单击下一步以指定其他设置,或单击完成。
- 在 Servlets 选项卡上单击 Run As,选择安全角色并描述该角色。
- 指定您的 Web 应用程序使用的每个 servlet 和 JSP 文件的 RunAs 标识。
- 配置 Web 模块的登录机制。这个已配置登录机制适用于 Web 模块中的所有
Servlet、JavaServer Pages (JSP) 文件和 HTML 资源。
- 单击 Web 部署描述符编辑器的页面选项卡,然后单击登录。选择所需的认证方法。 可用的方法值包括:Unspecified、Basic、Digest、Form 和 Client-Cert。
- 指定领域名。
- 如果您选择表单认证方法,请选择登录页面和错误页面 Web 地址。例如,可使用 /login.jsp 或
/error.jsp。指定的登录和错误页面出现在 .war 文件中。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
如果选择 ClientCert,将客户机证书安装在浏览器或 Web 客户机上,并将客户机证书放入服务器信任密钥环文件。
如果选择了 ClientCert 证书,将客户机证书安装在浏览器 Web 客户机上,并将客户机证书放入服务器信任密钥环文件。客户机认证中心的公用证书必须放入服务器 RACF® 密钥环中。如果注册表为本地操作系统注册表,请使用 RACDCERT MAP 或等价的系统授权工具 (SAF) 命令,以允许使用客户机证书创建 MVS™ 标识。
- 关闭部署部署描述符编辑器,并且,当提示时,单击是保存更改。
结果
在保护 Web 应用程序后,结果 Web 应用程序归档 (WAR) 文件在它的部署描述符中包含安全信息。Web 模块安全信息存储在
web.xml 文件中。当您在 Web 部署描述符编辑器中工作时,您也可以编辑 Web 项目中的其他部署描述符,包括
ibm-web-bnd.xmi 和
ibm-web-ext.xmi 文件中的绑定和 IBM® 扩展的信息。
支持的配置: 对于 IBM 扩展文件和绑定文件,根据您使用的是 Java EE 5 之前的应用程序或模块还是
Java EE 5 或之后的应用程序或模块,.xmi 或 .xml
文件扩展名有所不同。IBM 扩展文件或绑定文件将命名为
ibm-*-ext.xmi 或 ibm-*-bnd.xmi,其中 * 是扩展文件或绑定文件的类型,例如,app、application、ejb-jar 或 web。存在下列条件:
- 对于使用 V5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须是 .xmi。
- 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须是 .xml。如果应用程序或模块中包含 .xmi 文件,那么产品将忽略这些 .xmi 文件。
然而,Java EE
5 或更高版本的模块可以在包含 Java
EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi 和
ibm-portlet-ext.xmi 文件继续使用
.xmi 文件扩展名。
sptcfg
下一步做什么
在使用组装工具保护 Web 应用程序后,可使用管理控制台安装 Web 应用程序。在 Web 应用程序安装期间,完成
部署受保护的应用程序中的步骤,以完成保护 Web 应用程序。