本章包含以下主題:
OpenSSO 8.0 Update 2 作為修補程式 TBS 提供。
在您安裝 OpenSSO 8.0 Update 2 (或後續修補程式) 之前,請閱讀本文件中有關新功能、硬體和軟體需求以及問題和解決方法的資訊。
OpenSSO 8.0 Update 2 中包含一個 opensso.war 檔案,您可以使用以下方法進行安裝:
修補現有的 OpenSSO 8.0 部署:使用 Update 2 中的 ssopatch 公用程式修補現有的 OpenSSO 8.0 部署,如本章中所述。
備註 - Oracle 僅支援修補 OpenSSO 8.0 發行版本。例如,支援使用 OpenSSO 8.0 Update 2 修補 OpenSSO 8.0。
安裝新的 OpenSSO 8.0 Update 2 部署:安裝並配置 OpenSSO 8.0 Update 2 opensso.war 檔案,如「Sun OpenSSO Enterprise 8.0 Installation and Configuration Guide」中所述。
建立新的專用 WAR 檔案:使用 createwar 程序檔從 Update 2 opensso.war 檔案建立以下新 WAR 檔案之一:
「僅 OpenSSO 管理主控台」WAR
「已經發行的認證 UI 伺服器」WAR
「僅 OpenSSO 伺服器」WAR,不含管理主控台
「IDP 探索服務」WAR
修補現有的專用 OpenSSO WAR 檔案:使用 Update 2 中的 ssopatch 公用程式修補現有的專用 OpenSSO 8.0 WAR 檔案,如「Sun OpenSSO Enterprise 8.0 Installation and Configuration Guide」中的第 23 章「Patching OpenSSO Enterprise 8.0」中所述
如果您執行的是 Access Manager 7.1 或 Access Manager 7 2005Q4,並且想要升級到 Update 2,請執行以下步驟:
將 Access Manager 7.x 升級到 OpenSSO 8.0,如「Sun OpenSSO Enterprise 8.0 Upgrade Guide」中所述。
套用 Update 2 修補程式,如本章中所述。
Sun 會定期發行 OpenSSO 8.0 Update 2 的修補程式。如需有關這些修補程式的資訊,請定期到此處查閱。
為您的平台安裝修補公用程式,如安裝 ssopatch 公用程式中所述。
取得有關您的現有 WAR 檔案的資訊,以確定現有 WAR 檔案是否已自訂或修改,如將 OpenSSO WAR 檔案與其內部清單進行比較中所述。
將現有 WAR 檔案與 Update 2 WAR 檔案進行比較,以傳回在原始 WAR 中自訂的檔案、在新 WAR 檔案中更新的檔案,以及在兩個 WAR 版本之間增加或刪除的檔案,如比較兩個 OpenSSO WAR 檔案中所述。
備份和歸檔現有 Opensso WAR 檔案,如備份 OpenSSO WAR 檔案中所述。
修補您的 OpenSSO WAR 檔案,如修補 OpenSSO WAR 檔案中所述。
執行 updateschema 程序檔,如執行 updateschema 程序檔中所述。
備註 - 如果修補從 opensso.war 產生的專用 WAR 檔案 (例如「僅 OpenSSO 伺服器」WAR、「僅 OpenSSO 管理主控台」WAR、「已經發行的認證 UI 伺服器」WAR 或「IDP 探索服務」WAR),請參閱修補專用 OpenSSO WAR。
ssopatch 公用程式是一個 Java 指令行公用程式,該公用程式在 Solaris 和 Linux 系統上作為 ssopatch 提供,在 Windows 上作為 ssopatch.bat 提供。
備註 - ssopatch 在 OpenSSO 8.0 Update 2 中的語法與在 OpenSSO 8.0 發行版本中相比已經發生了很大的變化。如需有關新語法的資訊,請參閱執行 updateschema 程序檔。
ssopatch 修補公用程式執行以下功能:
將 OpenSSO WAR 與其原始清單進行比較,以確定 WAR 檔案是否已自訂或修改
比較兩個 OpenSSO WAR 檔案,以確定兩個檔案之間的差異,包括對原始 WAR 檔案進行的任何自訂,以及新 WAR 檔案中的任何變更
針對產生新的已修補 OpenSSO WAR 檔案所需的檔案建立一個臨時區域
下載並解壓縮 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 WAR 檔案的具體版本的字串
OpenSSO WAR 檔案中的所有單個檔案,以及每個檔案的總和檢查資訊
清單檔案通常被命名為 OpenSSO.manifest,並儲存在 OpenSSO WAR 檔案的 META-INF 目錄中。
ssopatch 公用程式將其結果傳送給標準輸出 (stdout)。如果願意,您也可以透過將輸出重新導向至檔案來擷取 ssopatch 輸出。如果 ssopatch 成功完成,其將傳回零 (0) 結束代碼。如果發生錯誤,ssopatch 將傳回非零的結束代碼。
在您安裝 ssopatch 公用程式之前,請先完成以下作業:
下載並解壓縮 OpenSSO 8.0 Update 2 ZIP 檔案 (opensso_80U2.zip)。
將 JAVA_HOME 環境變數設定為指向 JDK 1.5 或更高版本。
在 zip-root/opensso/tools 目錄中找到 ssoPatchTools.zip 檔案,此處的 zip-root 是您解壓縮 opensso_80U2.zip 的位置。
建立一個新目錄以解壓縮 ssoPatchTools.zip 檔案。例如:ssopatchtools
將 ssoPatchTools.zip 檔案解壓縮到該新目錄中。
如果想要不提供完整路徑而從不同於其目前目錄的其他目錄執行 ssopatch 公用程式,請將該公用程式增加到 PATH 變數中。
下表中描述了 ssoPatchTools.zip 中的檔案。
檔案或目錄 |
描述 |
---|---|
README |
描述 ssopatch 的讀我檔案 |
/lib |
所需的 ssopatch JAR 檔案 |
/patch |
updateschema 和 updateschema.bat 程序檔及相關的 XML 檔案 |
/resources |
所需的特性檔案 |
ssopatch 和 ssopatch.bat |
適用於 Solaris、Linux 和 Windows 系統的公用程式 |
開始之前,請備份現有的 OpenSSO WAR 檔案和配置資料:
將現有的 OpenSSO WAR 檔案複製到一個安全的位置。然後,如果出於某些原因需要復原 Update 2,您可以重新部署 WAR 檔案的備份副本。
備份配置資料,如「Sun OpenSSO Enterprise 8.0 Administration Guide」中的第 15 章「Backing Up and Restoring Configuration Data」中所述。
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] |
其中的選項說明如下:
-war-file|-o 指定先前部署的 WAR 檔案 (例如 opensso.war) 的路徑。
-manifest|-m 指定您要建立的清單檔案的路徑。清單檔案將從 -war-file|-o (如果提供此選項) 指示的 WAR 檔案產生。
-war-file-compare|-c 指定要與 -war-file|-o 指示的 WAR 檔案進行比較的 WAR 檔案的路徑。
-staging|-s 指定要將 OpenSSO WAR 中的檔案寫入其中的臨時區域的路徑。
-locale|-l 指定要使用的語言環境。如果未指定該選項,ssopatch 將使用預設的系統語言環境。
-override|-r 將忽略這兩個 WAR 檔案的修訂版檢查。修訂版檢查可確定 WAR 檔案的修訂版,並且僅當修訂版相容時,該檢查才能繼續。此選項允許您忽略該檢查。
預設為 false (執行修訂版檢查)。
-overwrite|-w 將覆寫現有臨時區域內的檔案。預設為 false (不覆寫檔案)。
使用此程序可確定 OpenSSO WAR 檔案自下載以來是否已被自訂或修改。
ssopatch 公用程式會產生一個新的內部清單檔案,然後將此內部清單與儲存在原始 OpenSSO WAR 檔案的 META-INF 目錄中的清單進行比較。
執行 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 檔案的以下變更:
images/login-origimage.jpg 包含在 opensso.war 中,但未在原始清單中找到。
相對於原始清單,images/login-backimage.jpg 已在 opensso.war 中自訂。
相對於原始清單,WEB-INF/classes/amConfigurator.properties 檔案已在 opensso.war 中自訂。
使用此程序可比較兩個 OpenSSO WAR 檔案,以顯示已經執行以下作業的檔案:
已在原始 OpenSSO WAR 中自訂
已在新 OpenSSO WAR 檔案中更新
已在兩個 OpenSSO WAR 版本之間增加或刪除
執行 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 檔案中更新和自訂的檔案。
使用此程序可建立新的臨時區域,在其中原始 WAR 檔案將與新 WAR 檔案合併在一起。
此作業將比較每個 WAR 檔案的清單,然後顯示:
在原始 WAR 檔案中自訂的檔案
在新 WAR 檔案中更新的檔案
在兩個 WAR 檔案版本之間增加或移除的檔案
然後,ssopatch 會將相應的檔案複製到暫存目錄中,於此您必須先增加任何自訂,然後再建立和部署新的已修補 WAR。
雖然 ssopatch 不會修改原始 opensso.war 檔案,但我們建議您備份此檔案,以供您在需要復原已修補的 opensso.war 檔案時使用。
執行 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/staging 是 ssopatch 複製檔案的臨時區域。
使用上一步驟的結果依需要更新臨時區域中的檔案。
使用下表來確定在產生新的已修補 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 檔案中自訂,但未在最新版本的 WAR 檔案中更新。 動作:無 |
May require manual customization filename |
檔案在原始 WAR 檔案和新 WAR 檔案中均存在,並且已在原始版本的 WAR 檔案中自訂及在最新版本的 WAR 檔案中更新。 動作:如果需要檔案中的自訂,您必須手動將這些自訂增加到暫存目錄中的新的已更新檔案中。 |
File was customized in original, but not found in new war |
檔案在原始 WAR 檔案中存在,但在新 WAR 檔案中不存在。 動作:無 |
後續步驟
從臨時區域中的檔案建立一個新的 OpenSSO WAR 檔案。例如:
cd /tmp/staging jar cvf /patched/opensso.war * |
此處的 /patched/opensso.war 是新的已修補 OpenSSO WAR 檔案
使用原始部署 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、「已經發行的認證 UI 伺服器」WAR 或「IDP 探索服務」WAR) 中的清單檔案。
執行 ssopatch 以建立 OpenSSO 清單檔案。例如:
./ssopatch -o zip-root/opensso/deployable-war/opensso.war --manifest /tmp/manifest |
此處的 opensso.war 是現有的 OpenSSO WAR 檔案。
ssopatch 公用程式會在 /tmp 目錄中建立一個名為 manifest 的新清單檔案。
若要允許修補 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、「已經發行的認證 UI 伺服器」WAR 或「IDP 探索服務」WAR),您可以使用 ssopatch 公用程式對其進行修補。
為您的專用 OpenSSO WAR 建立一個清單檔案,如建立 OpenSSO WAR 清單檔案中所述。
備註:請在進行任何自訂之前,以原始 OpenSSO 8.0 opensso.war (與 Sun 最初提供時相同) 為基礎建立清單檔案。如果在自訂之後建立清單,ssopatch 可能會使用 Update 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」中所述。
使用 ssopatch 公用程式比較您的舊 WAR 檔案與新 WAR 檔案。
為新的專用 WAR 檔案產生臨時區域,如建立臨時區域以修補 OpenSSO WAR 檔案的步驟:中所述。
重新部署新的專用 WAR 檔案。
執行 ssopatch 之後,請在 Solaris 或 Linux 系統上執行 updateschema.sh,或在 Windows 系統上執行 updateschema.bat。該程序檔將更新 OpenSSO 伺服器版本、新增預設伺服器特性、增加 Update 2 中的錯誤修復和增強功能所需的新屬性模式。若要更新伺服器版本,您必須執行 updateschema。
updateschema.sh 或 updateschema.bat 程序檔需要 Update 2 版本 (或更高版本) 的 ssoadm 指令行公用程式。因此,在您執行此程序檔之前,請先安裝 Update 2 管理工具,如「Sun OpenSSO Enterprise 8.0 Update 1 Release Notes」中的第 3 章「Installing the OpenSSO Enterprise 8.0 Update 1 Admin Tools」中所述。
updateschema.bat 程序檔會執行若干個 ssoadm 指令。因此,在 Windows 系統上執行 updateschema.bat 之前,請為 amadmin 使用者建立一個包含純文字使用者密碼的密碼檔案。updateschema.bat 程序檔會提示您提供密碼檔案的路徑。該程序檔會在終止之前移除該密碼檔案。
變更到 patch-tools/patch 目錄,此處的 patch-tools 是您解壓縮 ssoPatchTools.zip 的位置。
執行 updateschema.sh 或 updateschema.bat。例如,在 Solaris 系統上:
./updateschema.sh
當程序檔提示您時,請提供以下資訊:
ssoadm 公用程式的完整路徑 (不包括 ssoadm 本身)。例如:/opt/ssotools/opensso/bin
amadmin 密碼
updateschema.sh 或 updateschema.bat 程序檔會將任何訊息或錯誤寫入標準輸出。
重新啟動 OpenSSO 8.0 Update 2 Web 容器。
如果您需要復原您的修補程式安裝,只需重新部署原始 opensso.war 檔案 (或專用 WAR 檔案) 即可。