安装、配置和部署SunJavaSystemAccessManager的简便方法

Sun Java System 7.1(下面简称 Access Manager)集成了身份验证和授权服务、策略代理、身份管 理以及身份联合,从而保护网络资源。这样,您就可以为资源访问提供安全保障,d d d d 并且可以管理 访问这些资源的用户的身份。

可以将 Access Manager 部署在符合 Java Servlet 2.3 API Specification 的大多数平台上和大多 数容器(即大多数 Web 服务器或应用程序服务器)上。d d d d 然而事实并非始终如此;请参见 附录。

本文将介绍在 Sun Java System Application Server(以下简称 Application Server)上安装、配 置和部署 Access Manager 的一种简便高效的方法,Application Server 也是一个称作 GlassFish 的开 放源代码项目。一般而言,完成整个过程花不了 10 分钟时间,因而对于原型尤为方便。

首先,请下载以下软件:

派生自 GlassFish 的 Sun Application Server Platform. Edition 9.0 或更新版本

Access Manager

ZIP 文件包含特定于 Java Development Kit (JDK) 版本的 Web 归档 (WAR) 文件、进行分布式身份 验证的应用程序、管理性命令行接口 (CLI) 工具、会 话故障转移工具、法律文件以及运行示例的过程。 将文件解压缩到所选目录,该目录在本文其余部分称作 Access_Manager_install_dir。图 1 显示了此目 录的文件结构。

图 1:Access Manager 的文件结构

jdk14 与 jdk15 二进制文件之间的主要区别在于文件大小。Sun 的 JDK 1.5.x 包括 Java Web Services Developer Pack (Java WSDP) 的大多数 Java archive (JAR) 文件,但是,这些文件并 不是 运行于 Sun JDK 1.5.x 下的容器的 Access Manager 的组成部分。本文中的示例将使用 Access_Manager_install_dir /applications/jdk15 下的 amserver.war 文件。

配置应用服务器

如果已在 Java 虚拟机中启用 Security Manager,则需要将 Access Manager 的相关许可权限添加到 Application Server 的 server.policy 文件中,如下所示。

// ADDITIONS FOR Access Managergrant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/amserver/-" {   permission java.net.SocketPermission "*", "connect,accept,resolve";   permission java.util.PropertyPermission "*", "read, write";   permission java.lang.RuntimePermission "modifyThreadGroup";   permission java.lang.RuntimePermission "setFacTory";   permission java.lang.RuntimePermission "AccessClassInPackage.*";   permission java.util.logging.LoggingPermission "control";   permission java.lang.RuntimePermission "shutdownHooks";   permission javax.security.auth.AuthPermission "getLoginConfiguration";   permission javax.security.auth.AuthPermission "setLoginConfiguration";   permission javax.security.auth.AuthPermission "modifyPrincipals";   permission javax.security.auth.AuthPermission "createLoginContext.*";   permission java.io.FilePermission "", "execute,delete";   permission java.util.PropertyPermission "java.util.logging.config.class", "write";   permission java.security.SecurityPermission "removeProvider.SUN";   permission java.security.SecurityPermission "insertProvider.SUN";   permission javax.security.auth.AuthPermission "doAs";   permission java.util.PropertyPermission "java.security.krb5.realm", "write";   permission java.util.PropertyPermission "java.security.krb5.kdc", "write";   permission java.util.PropertyPermission "java.security.auth.login.config", "write";   permission java.util.PropertyPermission "user.language", "write";   permission javax.security.auth.kerberos.ServicePermission "*", "accept";   permission javax.net.ssl.SSLPermission "setHostnameVerifier";   permission java.security.SecurityPermission "putProviderProperty.IAIK";   permission java.security.SecurityPermission "removeProvider.IAIK";   permission java.security.SecurityPermission "insertProvider.IAIK";};// END OF ADDITIONS FOR Access Manager

注意:如果使用非 amserver 名称部署 Access Manager 7.1,则需要在 grant 中更改 amserver 字 符串。或者只引用 grant {…} 来进行测试。

注意:如果所选容器为 IBM WebSphere,则需要在容器的 server.xml 文件中设置以下两个 Java 虚 拟机选项:

-DamCryptoDescripTor.provider=IBMJCE-DamKeyGenDescripTor.provider=IBMJCE

例如:

genericJvmArguments="-DamCryptoDescripTor.provider=IBMJCE - DamKeyGenDescripTor.provider=IBMJCE"

之后,重新启动应用服务器,使更改生效。

部署和配置 Access Manager

现在将 Access Manager WAR 文件部署到 Sun Java Enterprise System 5 支持的任何 Web 容器上。 这包括三个步骤:

部署 WAR 文件。

配置 Access Manager。

验证配置。

部署 WAR 文件

要部署 WAR 文件:

登录 Application Server Administration Console,地址为 http://localhost:4848。

默认用户名为 admin;默认口令为 adminadmin。

在左侧窗格中,选择 Applications 下面的 Web Applications。在右窗格中,指定 Access Manager WAR 文件 (Access_Manager_install_dir /applications/jdk15/amserver.war) 的位置,然后单击 Deploy 按钮。

部署成功之后,应用服务器将在所部署的 Web Application 下显示 amserver,如图 2 所示。

图 2:在应用程序器上成功部署 Access Manager

配置 Access Manager

要配置 Access Manager:

单击 Launch 按钮。

或者,访问 http:// hostname.domain_name .com: portnumber /amserver,其中:

hostname.domain_name .com 是在其上部署 Access Manager 的主机的名称。

portnumber 是 Access Manager 监听传入请求的端口号。

此时将显示 Access Manager ConfiguraTor 页面,如图 3 所示。

图 3:应用程序器中的 ConfiguraTor 页面

指定 amAdmin 口令(如 admin123)和配置目录(如 /amconfig)。

可选。要将 Sun Java System DirecTory Server 指定为配置库,需要确保已 安装 DirecTory Server 实例并且正在运行,然后执行以下操作。

在 Configuration STore Settings 下,选择 DirecTory Server。

在 Server Settings 下,填写 Name、Port 和 Suffix to sTore configuration data 字段。

在 DirecTory Server Administration 下,填写 Password 和 Retype Password 字段。/li>

单击 Configure 按钮。

Access Manager 会显示配置过程的状态。

在本示例中,文件系统(File System)是用于存储服务配置数据的默认系统。即所有服务配置文件都 位于 config_dir / deploy_URI /sms 目录下,本例中为 /amconfig/amserver/sms。

成功配置后,Access Manager 将显示登录界面,如图 4 所示。

图 4:Access Manager 登录界面

验证配置

最后,通过登录来验证所做的配置。此时会显示 Access Manager 管理控制台,如图 5 所示。

图 5:Access Manager 管理控制台

了解文件布局

配置过程一经完成,Access Manager 即会在系统中创建下列文件:

配置文件 — 这些文件位于 ConfiguraTor 页面指定的目录 (General Settings > Configuration DirecTory)中。在本例中,该目录称为 /amconfig。图 6 中显示了其文件结构。

图 6:配置目录中的文件结构

Bootstrap 文件 — 这些文件是在特定的 Access Manager 实例中查找配置信息所必需的。根据在同 一台主机上配置的实例数,在 某一给定时刻可能存在多个适用的 bootstrap 文件。请 勿删除这些文件 。

默认情况下,bootstrap 位于 user.home 目录中。可以根据需要更改该位置。有关该过程的详细信息 ,请参见 Sun Java System Access Manager 7.1 Postinstallation Guide 中的 “Deploying Access Manager as a Single WAR File” 一节。

Access Manager 构造文件名的方式为编辑 Servlet Context 中的实际路径并将 和 / 符号替换为 _ 符号。例如,如果运行 Application Server 的用户为 root 用户,则本例中的 bootstrap 文件将为 /AccessManager/AMConfig_opt_SUNWappserver_domains_domain1_applications_j2ee- modules_amserver_。6 ” 6

取消部署 Access Manager

Access Manager 不提供用于取消部署已配置的实例的任何脚本。要取消部署 Access Manager:

使用特定于容器的命令取消部署。

删除配置文件和 bootstrap 文件。

请参见前面的章节。

可选。撤销对服务器策略的更改。

如果需要重新部署 Access Manager,则可以跳过这一步。

重新启动 Web 容器。

重新配置 Access Manager

要在不取消部署 Access Manager 的情况下用不同的配置值进行测试:

删除配置文件和 bootstrap 文件。

重新启动 Web 容器。

访问 http:// hostname.domain_name .com: portnumber /amserver。

此时将显示 ConfiguraTor 页面。

附录:今后和现在部署

在其早期版本中,安装程序是将 Access Manager 作为软件包来部署的。它们是以下文件的集合: JAR 文件以及支持 XML、JavaServer Pages (JSP)、HTML 和 GIF 文件,还有区域设置文件以及 AMConfig.properties 和 serverconfig.xml 文件(后者用于目录配置)中的属性。该方法引起了许多问 题,如下所列:

安装程序是容器感知的。

安装程序具有与操作系统相关的依赖性。

恢复到原始配置相当复杂。

Access Manager 的大范围分布不可行。

因而 Access Manager 工程团队将目标设定为对可作为 J2EE 应用程序部署的组件重新打包。该目标 在 Access Manager 7.1 中得以实现:现在,您 可以方便地将其作为单一 Web 应用程序来部署,无任何 障碍。

吃水不忘挖井人。

安装、配置和部署SunJavaSystemAccessManager的简便方法

相关文章:

你感兴趣的文章:

标签云: