使用 wsadmin 脚本编制将已安装应用程序的安全策略传播给 JACC 提供程序

在启用基于 Java™ Authorization Contract for Containers (JACC) 的授权之前,可能已安装了应用程序。 开始时,可以使用缺省权限,然后改变为使用 JACC 的基于外部提供程序的权限。

准备工作

最佳实践: 使用 wsadmin 工具将信息传播到独立于应用程序安装过程的 JACC 提供程序,从而避免需要重新安装应用程序。 并且,在应用程序安装或修改期间,您可能在将安全策略信息传播到 JACC 提供程序时已发生问题。 例如,可能发生网络问题,JACC 提供程序可能不可用等等。 对于这些情况,先前安装的应用程序的安全策略不存在于 JACC 提供程序中,从而无法进行访问决策。 一种选择是重新安装所涉及的应用程序。 但是,通过使用 wsadmin 脚本编制工具,可以避免重新安装。 使用此工具将信息传播到 JACC 提供程序与应用程序安装过程无关。 通过使用工具,可以不必重新安装应用程序。

该工具使用 SecurityAdmin MBean 将任何已安装应用程序的部署描述符中的策略信息传播到 JACC 提供程序。 您可以在基本应用程序服务器上针对 WebSphere® Application Server Network Deployment的基本和 Deployment Manager 级别使用 wsadmin 来调用此工具。 注意,仅当服务器在运行时,SecurityAdmin MBean 才可用。

使用propagatePolicyToJACCProvider{-appNames appNames}将企业归档 (EAR) 文件的部署描述符或注释中的策略信息传播到 JACC 提供程序。 如果 RoleConfigurationFactory 和 RoleConfiguration 界面由 JACC 提供程序实现,那么 EAR 文件的绑定文件中的授权表信息也传播给提供程序。 请参阅“支持 JACC 的接口”一文,以了解有关这些接口的更多信息。

TheappNames String包含以冒号 (:) 定界的应用程序名称列表,其策略信息必须存储在提供程序中。 如果不存在 appNames,那么会将所有已部署应用程序的策略信息传播到提供程序。

也请注意以下各项:
  • 在将应用程序迁移到 Tivoli ® Access Manager JACC 提供程序之前,请将应用程序中的用户和组创建或导入到 Tivoli Access Manager。
  • 根据应用程序或传播的应用程序数,您可能必须在soap.client.props目录中的文件profile_root/properties(如果使用 SOAP) 或sas.client.props文件 (如果使用 RMI) 以完成命令。 可以将请求超时值设为 0 以避免超时问题,并在命令运行后将它更改回原始值。

过程

  1. WebSphere Application Server中配置 JACC 提供程序。

    有关更多信息,请参阅 "使用 Tivoli Access Manager 授予对 J2EE 资源的访问权" 一文。

  2. 重新启动服务器。
  3. 输入以下命令:
    wsadmin>$AdminTask propagatePolicyToJACCProvider {-appNames appNames}