Oracle OpenSSO Update 2 发行说明

第 2 章 安装 OpenSSO 8.0 Update 2

本章包含以下主题:

OpenSSO 8.0 Update 2 安装概述

OpenSSO 8.0 Update 2 可作为修补程序 TBS 提供。

在安装 OpenSSO 8.0 Update 2(或后续修补程序)前,请查看此文档中有关新功能、硬件和软件要求、问题和解决方法的信息。

OpenSSO 8.0 Update 2 包含一个 opensso.war 文件,您可使用以下方法进行安装:


注 –

如果您运行的是 Access Manager 7.1 或 Access Manager 7 2005Q4 并且要升级到 Update 2,请执行以下步骤:

  1. 将 Access Manager 7.x 升级到 OpenSSO 8.0,如《Sun OpenSSO Enterprise 8.0 Upgrade Guide》中所述。

  2. 应用 Update 2 修补程序,如本章中所述。


OpenSSO 8.0 Update 2 修补程序

Sun 定期发布 OpenSSO 8.0 Update 2 的修补程序。有关这些修补程序的信息,请定期到这里检查。

计划修补操作

Procedure计划针对 OpenSSO 8.0 的修补操作

  1. 阅读ssopatch 实用程序概述

  2. 为您的平台安装此修补实用程序,如安装 ssopatch 实用程序中所述。

  3. 获取有关现有 WAR 文件的信息,以确定现有 WAR 文件是否已经进行自定义或已经修改,如将 OpenSSO WAR 文件与其内部清单进行比较中所述。

  4. 将现有的 WAR 文件与 Update 2 WAR 文件进行比较,以返回在原始 WAR 中进行自定义的文件、在新 WAR 文件中更新的文件以及两个 WAR 版本之间添加或删除的文件,如比较两个 OpenSSO WAR 文件中所述。

  5. 备份并归档现有的 Opensso WAR 文件,如备份 OpenSSO WAR 文件中所述。

  6. 修补 OpenSSO WAR 文件,如修补 OpenSSO WAR 文件中所述。

  7. 运行 updateschema 脚本,如运行 updateschema 脚本中所述。

    注意 - 如果您修补的是通过 opensso.war 生成的专用 WAR 文件(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR),请参见修补专用的 OpenSSO WAR

ssopatch 实用程序概述

ssopatch 实用程序是 Java 命令行实用程序,在 Solaris 和 Linux 系统上以 ssopatch 提供,在 Windows 上以 ssopatch.bat 提供。

注意 - ssopatch 在 OpenSSO 8.0 Update 2 中的语法与在 OpenSSO 8.0 发行版本中相比已经进行相当大的更改。有关新语法,请参见运行 updateschema 脚本

ssopatch 修补实用程序执行以下功能:

下载并解压缩 OpenSSO 8.0 Update 2 ZIP 文件 (opensso_80U2.zip) 后,修补实用程序和相关文件位于 zip-root/opensso/tools 目录中的 ssoPatchTools.zip 文件中,其中 zip-root 是解压缩 opensso_80U2.zip 的位置。

ssopatch 实用程序使用清单文件确定特定 OpenSSO WAR 文件的内容。清单文件是包含以下内容的 ASCII(美国信息交换标准代码)文本文件:

清单文件通常命名为 OpenSSO.manifest 并存储在 OpenSSO WAR 文件的 META-INF 目录中。

ssopatch 实用程序将其结果发送到标准输出 (stdout)。如果愿意,也可以通过将输出重定向到文件捕获 ssopatch 输出。如果 ssopatch 成功完成,将返回零 (0) 退出代码。如果发生错误,ssopatch 将返回非零退出代码。

安装 ssopatch 实用程序

在安装 ssopatch 实用程序前,请执行以下操作:

安装 ssopatch 实用程序

  1. zip-root/opensso/tools 目录中找到 ssoPatchTools.zip 文件,其中 zip-root 是解压缩 opensso_80U2.zip 的位置。

  2. 创建一个新目录以解压缩 ssoPatchTools.zip 文件。例如:ssopatchtools

  3. ssoPatchTools.zip 文件解压缩到此新目录中。

  4. 如果要从当前目录之外的其他目录运行 ssopatch 实用程序而又不提供完整路径,请将此实用程序添加到 PATH 变量中。

下表介绍 ssoPatchTools.zip 中的文件。

文件或目录 

说明 

README

说明 ssopatch 的自述文件

/lib

所需的 ssopatch JAR 文件

/patch

updateschemaupdateschema.bat 脚本及相关的 XML(可扩展标记语言)文件

/resources

所需的属性文件 

ssopatchssopatch.bat

用于 Solaris、Linux 和 Windows 系统的实用程序 

备份 OpenSSO WAR 文件

开始之前,请备份现有的 OpenSSO WAR 文件和配置数据:

运行 ssopatch 实用程序

要运行 ssopatch 实用程序,请按如下所述进行使用:


ssopatch
--help|-?
[--locale|-l]

ssopatch
--war-file|-o
[--manifest|-m]
[--locale|-l]

ssopatch
--war-file|-o
--war-file-compare|-c
[--staging|-s]
[--locale|-l]
[--override|-r]
[--overwrite|-w]

其中,选项包括:

将 OpenSSO WAR 文件与其内部清单进行比较

使用此过程可以确定自下载 OpenSSO WAR 文件以来,该文件是否已进行自定义或已经修改。

ssopatch 实用程序可生成新的内部清单文件,然后将此内部清单与原始 OpenSSO WAR 文件内的 META-INF 目录中存储的清单进行比较。

将 OpenSSO WAR 文件与其内部清单进行比较

  1. 运行 ssopatch 以将 OpenSSO WAR 文件与其内部清单进行比较。例如:


    ./ssopatch -o /zip-root/opensso/deployable-war/opensso.war
    Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war
    Comparing manifest of Internal (Enterprise 8.0 Build 6(200810311055))
    against /zip-root/opensso/deployable-war/opensso.war (generated-200905050855)
    File not in original war (images/login-origimage.jpg)
    File updated in new war (images/login-backimage.jpg)
    File updated in new war (WEB-INF/classes/amConfigurator.properties)
    Differences: 3

以下示例表明对原始 WAR 文件进行的这些更改:

比较两个 OpenSSO WAR 文件

使用此过程可以比较两个 WAR 文件,以显示已经执行以下操作的文件:

比较两个 OpenSSO WAR 文件

  1. 运行 ssopatch 以比较两个 WAR 文件。在以下示例中,使用了 -override 选项来忽略两个 WAR 文件间的版本检查:


    ./ssopatch -o /zip-root/opensso/deployable-war/opensso.war
    -c /u1/opensso/deployable-war/opensso.war --override
    Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war
    Original manifest: Enterprise 8.0 Build 6(200810311055)
    New manifest: Enterprise 8.0 Update 2 Build 6.1(200904300525)
    Versions are compatible
    Generating Manifest for: /u1/opensso/deployable-war/opensso.war
    Comparing manifest of /zip-root/opensso/deployable-war/opensso.war
    (generated-200905050919) against
        /u1/opensso/deployable-war/opensso.war (generated-200905050920)
    File updated in new war(WEB-INF/classes/amClientDetection_en.properties)
    File updated in new war(WEB-INF/classes/fmSAMLConfiguration_fr.properties)
    ...
    Differences: 1821
    Customizations: 3

此示例显示已在新 WAR 文件中更新和自定义的文件。

修补 OpenSSO WAR 文件

使用此过程可以创建新的临时区域,在其中原始 WAR 文件将与新 WAR 文件进行合并。

此操作可比较每个 WAR 文件的清单,然后显示:

ssopatch 然后会将相应的文件复制到一个临时目录中,您必须先在该目录中添加任何自定义内容,然后再创建和部署新修补的 WAR。

创建临时区域以修补 OpenSSO WAR 文件

  1. 尽管 ssopatch 不会修改原始 opensso.war 文件,但建议您备份此文件,以供您在需要回退修补的 opensso.war 文件时使用。

  2. 运行 ssopatch 以创建临时区域。例如:


    ./ssopatch -o /zip-root/opensso/deployable-war/opensso.war
      -c /u1/opensso/deployable-war/opensso.war --override -s /tmp/staging
    Generating Manifest for: /zip-root/opensso/deployable-war/opensso.war
    Original manifest: Enterprise 8.0 Build 6(200810311055)
    New manifest: Enterprise 8.0 Update 2 Build 6.1(200904300525)
    Versions are compatible
    Generating Manifest for: /u1/opensso/deployable-war/opensso.war
    Comparing manifest of /zip-root/opensso/deployable-war/opensso.war
        (generated-200905051031) against /u1/opensso/deployable-war/opensso.war
        (generated-200905051032)
    File was customized in original, but not found in new war.
    Staging area using original war version (samples/saml2/sae/header.jsp)
    File was customized in original, but not found in new war.
    Staging area using original war version
        (WEB-INF/template/opends/config/upgrade/config.ldif.4517)
    File was customized in original, but not found in new war.
    Staging area using original war version
        (WEB-INF/template/opends/config/upgrade/schema.ldif.4517)
    Differences: 1813
    Customizations: 0

在此示例中,/tmp/stagingssopatch 复制文件的临时区域。

使用上一步骤的结果,根据需要更新临时区域中的文件。

使用下表确定在生成新修补的 WAR 文件前您可能需要对每个文件采取的操作。

ssopatch 结果

说明和所需操作 

File not in original war filename

指示的文件未存在于原始 WAR 文件中,但存在于最新版本的 WAR 文件中。 

操作:无

File updated in new war filename

指示的文件存在于原始 WAR 文件和新 WAR 文件中,并且已在最新版本的 WAR 文件中进行了更新。在原始 WAR 文件中未进行任何自定义。 

操作:无

File customized filename

指示的文件存在于两个 WAR 文件中,并且已在原始版本的 WAR 文件中进行了自定义,但未在最新版本的 WAR 文件中进行更新。 

操作:无

May require manual customization filename

文件存在于两个 WAR 文件中,并且已在原始版本的 WAR 文件中进行了自定义,在最新版本的 WAR 文件中进行了更新。 

操作:如果需要文件中的自定义内容,您必须手动将其添加到临时目录中的新更新的文件中。

File was customized in original, but not found in new war

文件存在于原始 WAR 文件中,但未在新的 WAR 中。 

操作:无

后续步骤

  1. 基于临时区域中的文件创建新 OpenSSO WAR 文件。例如:


    cd /tmp/staging
    jar cvf /patched/opensso.war *

    其中,/patched/opensso.war 是新修补的 OpenSSO WAR 文件

  2. 使用原始的部署 URI,将 /patched/opensso.war 文件重新部署到 Web 容器。例如,/opensso

OpenSSO 配置更改。新 OpenSSO WAR 文件可能包含未存在于原始 WAR 文件中的配置更改。将单独为每个修补程序记录任何配置更改(如果有)。有关任何配置更改的详细信息,请查看修补程序文档和《Sun OpenSSO Enterprise 8.0 发行说明》。(即使在新 WAR 文件中没有配置更改,OpenSSO 清单文件中的版本字符串也会更改。)

如果需要回退修补的版本,请取消部署修补的 WAR 文件,然后重新部署原始 WAR 文件。

创建 OpenSSO WAR 清单文件

OpenSSO 清单文件是一个文本文件,用于标识特定发行版本的 WAR 文件中的所有单个文件,并包含每个文件的校验和信息。

使用此过程可以创建可在专用 OpenSSO WAR(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR)中包含的清单文件。

创建 OpenSSO WAR 清单文件

  1. 运行 ssopatch 以创建 OpenSSO 清单文件。例如:


    ./ssopatch -o zip-root/opensso/deployable-war/opensso.war --manifest /tmp/manifest

    其中,opensso.war 是现有的 OpenSSO WAR 文件。

    ssopatch 实用程序可在 /tmp 目录中创建名为 manifest 的新清单文件。

  2. 要允许修补 WAR 文件,请将此新清单文件复制到 opensso.war 文件内的 META-INF 目录中。例如:


    mkdir META-INF
    cp /tmp/manifest META-INF
    jar uf opensso.war META-INF/manifest

修补专用的 OpenSSO WAR

如果您以前创建了专用 OpenSSO WAR(如仅 OpenSSO 服务器 WAR、仅管理控制台 WAR、Distributed Authentication UI Server 或 IDP 搜索服务 WAR),那么可以使用 ssopatch 实用程序对其进行修补。

修补专用的 OpenSSO WAR

  1. 为专用的 OpenSSO WAR 创建清单文件,如创建 OpenSSO WAR 清单文件中所述。

    注意:请在进行任何自定义之前,以原始 OpenSSO 8.0 opensso.war(与 Sun 最初提供时相同)为基础创建清单文件。如果在进行自定义之后创建清单,ssopatch 可能使用 Update 2 中的文件,而非经过自定义的文件,因此您需要在修补之后重新执行自定义。

  2. 基于 OpenSSO 8.0 Update 2 opensso.war 文件生成专用的 OpenSSO WAR,如《Sun OpenSSO Enterprise 8.0 Update 1 Release Notes》中的第 4  章 “Creating a Specialized OpenSSO Enterprise 8.0 Update 1 WAR File”中所述。

  3. 使用 ssopatch 实用程序将旧的 WAR 文件与新的 WAR 文件进行比较。

  4. 为新的专用 WAR 文件生成一个临时区域,如创建临时区域以修补 OpenSSO WAR 文件中所述。

  5. 重新部署新的专用 WAR 文件。

运行 updateschema 脚本

运行 ssopatch 后,请在 Solaris 或 Linux 系统上运行 updateschema.sh,或在 Windows 系统上运行 updateschema.bat。此脚本会更新 OpenSSO 服务器版本,添加新的默认服务器属性、添加 Update 2 中的错误修复和增强功能所需的新属性模式。必须运行 updateschema 才能更新服务器版本。

准备工作

运行 updateschema 脚本

  1. 更改到 patch-tools/patch 目录,其中 patch-tools 是解压缩 ssoPatchTools.zip 的位置。

  2. 运行 updateschema.shupdateschema.bat。例如,在 Solaris 系统上:

    ./updateschema.sh

  3. 当脚本提示您时,请提供以下信息:

    • ssoadm 实用程序的完整路径(不包括 ssoadm 本身)。例如:/opt/ssotools/opensso/bin

    • amadmin 密码

    updateschema.shupdateschema.bat 脚本会向标准输出中写入任何消息或错误。

  4. 重新启动 OpenSSO 8.0 Update 2 Web 容器。

回退修补程序安装

如果需要回退修补程序安装,只需重新部署原始的 opensso.war 文件(或专用的 WAR 文件)。