本節包含將 Identity Manager 6.0、7.0、7.1、7.1.1 或 8.0 版升級為 8.1 版時的相關資訊與已知問題。
本節中的資訊編排如下:
開始升級程序之前,請注意以下資訊:
如需完整的升級說明,請參閱「Sun Identity Manager 8.1 Upgrade」。
如果升級 JDK 或 JRE,則必須使用與舊版 JDK 相同廠商提供的 JDK 或 JRE。例如,如果先前使用 IBM 的 JDK,則請勿安裝 Sun JDK。如果混用不同廠商的 JDK,根據舊版 JDK 加密的資料則無法由其他廠商的 JDK 讀取。(ID-17800)
依下列順序升級 Identity Manager:
升級所有 Identity Manager 伺服器實例與閘道實例
升級所有 PasswordSync 實例
Identity Manager 8.1 版伺服器提供對舊版 PasswordSync 臨時的有限支援。提供此支援的目的,是為了讓 Identity Manager 可在您升級 PasswordSync 實例期間繼續執行。您應儘快將所有 PasswordSync 實例升級為與 Identity Manager 伺服器相同的版本。
解除安裝 PasswordSync 時,請使用 Windows [控制台] 的新增/修改程式功能,以確保正確移除。您必須在解除安裝後重新開機。
安裝 PasswordSync 時,請針對要進行安裝的作業系統,使用正確的二進位檔案。32 位元 Windows 的二進位檔案名為 IdmPwSync_x86.msi,而 64 位元 Windows 的二進位檔案名為 IdmPwSync_x64.msi。安裝每個 PasswordSync 之後皆必須重新啟動。
請務必只使用一部 Identity Manager 伺服器匯入 update.xml。
在升級期間,只應有一部 Identity Manager 伺服器正在執行中。若在升級期間啟動任何其他 Identity Manager 伺服器,則必須停止並重新啟動這些伺服器,才能再使用這些伺服器。請注意,只有在您重新啟動 Identity Manager 伺服器之後,對 RepositoryConfiguration 所做的變更才會在該伺服器上生效。
若升級程序無法使用預設的 Configurator 帳號與密碼登入,記錄檔將只會記錄錯誤,而不會記錄錯誤之後的任何項目。(ID-18929)
update.xml 檔案會在升級程序期間匯入。匯入時會嘗試以 Configurator 身份及預設密碼登入。若登入失敗,會顯示錯誤,且升級程式將會提示您輸入正確的登入資訊。提供正確的資訊之後,升級會繼續。在查看升級程序的記錄檔時,您會看到預設登入失敗時的錯誤訊息,而不會在記錄檔中看到任何有關升級的進一步資訊。此問題只會影響記錄檔,而不會影響升級。
若目前的 Identity Manager 安裝需要進行大量的自訂工作,請考慮與 Sun 專業服務連絡,以協助您規劃與執行升級。
如果您打算越級升級,還請務必閱讀以下各節的升級說明。Identity Manager 後續版本的升級說明也適用於您的升級。
若您要從 Identity Manager 6. x 版安裝進行升級,並且要開始使用新的 Identity Manager 一般使用者頁面,則必須將系統配置 ui.web.user.showMenu 手動變更為 true,以顯示水平瀏覽位址列。(ID-14901)
此外,若要在一般使用者首頁上顯示新的一般使用者面板,則必須手動變更 endUserMenu 表單類型的一般使用者表單對映。移至 [配置] > [表單與程序對映] > 針對表單類型「endUserMenu」,將 [與下列項目對映的表單名稱] 變更為 [一般使用者面板]。
您也應更新 endUserWorkItemListExt 表單類型的對映。將 [與下列項目對映的表單名稱] 變更為 [一般使用者核准清單]。
若您是從 6.0 版進行升級並使用 LocalFiles,則必須在升級前匯出您所有的資料,並於 8.1 版的全新安裝完成後重新匯入資料。(ID-15366)
如果您打算越級升級,還請務必閱讀以下各節的升級說明。Identity Manager 後續版本的升級說明也適用於您的升級。
若您是從 7.0 版進行升級並使用 LocalFiles,則必須在升級前匯出您所有的資料,並於 8.1 版的全新安裝完成後重新匯入資料。(ID-15366)
由於 Identity Manager Service Provider Edition (SPE) 物件已重新命名為 Identity Manager 服務提供者,因此升級記錄中可能會出現 ItemNotFound 異常。(ID-18860)
如果安裝包含 Remedy 資源,則必須將 Remedy API 程式庫置於安裝閘道的目錄中。這些程式庫位於 Remedy 伺服器上。
如果您打算越級升級,還請務必閱讀以下各節的升級說明。Identity Manager 後續版本的升級說明也適用於您的升級。
自 7.1.1 版開始,Identity Manager 使用者延伸屬性完全支援多值屬性。(ID-14863)
您可以將多值使用者延伸屬性加入至帳號清單表格,再由其正確的顯示清單。但是,若嘗試排序此欄則會產生下列錯誤:
java.lang.ClassCastException: java.util.ArrayList
僅在重新串列化使用者物件之後,參照多值延伸屬性的屬性條件才會針對此使用者物件進行正確評估。若要此屬性條件針對所有使用者物件正確進行評估,則必須重新串列化所有使用者物件。請參閱以下「重新整理使用者物件」一節以取得說明。
部分變更類型需要管理員重新整理所有 User 物件。例如,當您在 RepositoryConfiguration 中變更 Type.USER 的內嵌屬性時,必須重新整理所有 User 物件。每當您在 IDMSchemaConfiguration 物件中將任何屬性標記為可查詢或摘要時,皆須重新整理所有 User 物件,這些變更才會影響舊有且尚未修改的物件。當新版 Identity Manager 增加新的屬性,或當新版 Identity Manager 變更現有屬性的值時,也適用相同的邏輯,亦即升級程序或管理員必須重新整理所有 User 物件,這些變更才會對未修改過的舊有物件生效。
重新串列化現有使用者的方式有三種:
在一般作業期間修改個別使用者物件。
例如,透過使用者介面開啟使用者帳號,然後儲存修改,或不修改便儲存。
缺點:此方法不僅耗時,且管理員必須非常謹慎,以確保重新串列化所有現有使用者。
使用 lh refreshType 公用程式重新串列化所有使用者。refreshType 公用程式會輸出更新後的使用者清單。
lh console
refreshType User
缺點:由於 refreshType 公用程式是在前景執行而非在背景執行,因此這項程序很耗時。若有許多使用者,則重新串列化所有使用者需要很長的時間。
使用延遲作業掃描儀。
您必須先使用 Sun Identity Manager 整合開發環境 (IDE) 或其他方法編輯 System Configuration 物件,再執行延遲作業掃描儀程序。
搜尋 ’refreshOfType’,並移除 ’2005Q4M3refreshOfTypeUserIsComplete’ 與 ’2005Q4M3refreshOfTypeUserUpperBound’ 的屬性。
編輯系統配置物件之後,必須將物件匯入儲存庫,變更才會生效。
缺點:由於此方法幾乎檢查及重寫每個 User 物件,因此會造成下一個延遲作業掃描儀執行需要很長的時間。但是,後續的延遲作業掃描儀執行應會以正常的速度與持續時間執行。
如果您打算越級升級,還請務必閱讀以下各節的升級說明。Identity Manager 後續版本的升級說明也適用於您的升級。
若使用 Oracle 儲存庫,Identity Manager 8.0 與 8.1 儲存庫 DDL 會使用舊版 Oracle JDBC 驅動程式無法正確處理的資料類型。ojdbc14.jar 中的 JDBC 驅動程式無法正確讀取記錄表格中的所有欄。
您必須升級為 JDK 5 驅動程式的 ojdbc5.jar,Identity Manager 才能正常作業。
升級會自動將 User Extended Attributes 物件以及 UserUIConfig 物件的 QueryableAttrNames 與 SummaryAttrNames 元素轉換為 IDM Schema Configuration 物件。(ID-17784)
update.xml 程序檔範例包含匯入指令,可呼叫 IDMSchemaConfigurationUpdater 以轉換舊有的使用者模式配置物件。若要成功轉換舊有的使用者模式配置物件,請執行下列作業:
在 IDM 模式配置內,為使用者延伸屬性的每個延伸屬性名稱建立一個 IDMObjectClassAttribute 元素。
將對應至 UserUIConfig 內 SummaryAttrNames 元素各個值的所有 IDMObjectClassAttribute 標示為 ”summary’ (摘要)。
將對應至 UserUIConfig 內 QueryableAttrNames 元素各個值的所有 IDMObjectClassAttribute 標示為 ”queryable’ (可查詢)。
清空 UserUIConfig 內的 SummaryAttrNames 元素。
清空 UserUIConfig 內的 QueryableAttrNames 元素。
將名為 objectClass 的所有延伸屬性重新命名為 spml2ObjectClass。自 8.0 版開始,名為 objectClass 的舊有屬性會與 Identity Manager 模式中的核心屬性相衝突。
Identity Manager 8.0 提供某些專門用於 Roles 物件的新表格。您必須使用 db_scripts 目錄中所提供的範例程序檔進行模式變更、建立新表格結構,以及移動現有資料。
更新儲存庫資料庫表格定義之前,請將您的儲存庫表格完整備份。
請參閱 db_scripts/upgradeto8.0from71.DBMSName 程序檔,以取得更多資訊。
由於超級角色本身可能是巢式角色,因此請小心編輯 [角色] 表單中的超級角色欄位。超級角色與子角色欄位表示角色的巢式結構,以及其相關資源或資源群組。套用至使用者時,超級角色會包含與任何指定子角色相關的資源。超級角色欄位會隨即顯示,並指出包含所顯示之角色的所有角色。
在升級程序期間,Identity Manager 會分析系統上的所有角色,然後使用 RoleUpdater 類別更新任何缺少的子角色與超級角色連結。
若要檢查及升級不在升級程序中的角色,您可以匯入 sample/forms/RoleUpdater.xml 中提供的新 RoleUpdater 配置物件。
例如:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Waveset PUBLIC 'waveset.dtd' 'waveset.dtd'> <Waveset> <ImportCommand class='com.waveset.session.RoleUpdater' > <Map> <MapEntry key='verbose' value='true' /> <MapEntry key='noupdate' value='false' /> <MapEntry key='nofixsubrolelinks' value='false' /> </Map> </ImportCommand> </Waveset> |
其中:
verbose:在更新角色時提供詳細輸出。指定 false 可啟用角色的無訊息更新。
noupdate:可決定是否更新角色。指定 false 可取得僅列出將進行更新之角色的報告。
nofixsubrolelinks:可決定在缺少子角色連結時是否更新超級角色。此值預設為 false,且會修復連結。
需要檢視或編輯「使用者」或「角色」之 Identity Manager 模式的管理員,必須屬於 IDM 模式配置管理員群組,且必須具有 IDM 模式配置權能。
Identity Manager 中的 SPML 2.0 實作在 Sun Identity Manager 8.0 中有所變更。在先前的版本中,SPML 訊息所使用的 SPML objectclass 屬性會直接對映至 Identity Manager User 物件的 objectclass 屬性。objectclass 屬性現在改從內部對映至 spml2ObjectClass 屬性,且供內部其他用途使用。
在升級程序期間,objectclass 屬性值會自動為現有的使用者重新命名。如果您的 SPML 2.0 配置包含參照 objectclass 屬性的表單,則必須手動將這些參照變更為 spml2ObjectClass。
Identity Manager 在升級期間不會替代 spml2.xml 範例配置檔案。若使用 spml2.xml 配置檔案作為起點,請注意此檔案包含參照 objectclass 的表單,您必須將此參照變更為 spml2ObjectClass。請變更表單中的 objectclass 屬性 (供內部使用),但請勿變更目標模式中的 objectclass 屬性 (此為對外顯示的屬性)。
當您升級 Identity Manager 時,必須移除任何呼叫 UserUIConfig#getRepoIndexAttributes() 的自訂程式碼,或將其變更為呼叫 Type.USER#getInlineAttributeNames()。(ID-18051)
匯入 update.xml 可針對 RepositoryConfiguration 物件內的 Type.USER,將值從 UserUIConfig RepoIndexAttrs 轉換為 TypeDataStore 元素上 XML 屬性的值。update.xml 檔案包含 UserUIConfigUpdater.xml 檔案,其中內含匯入指令,可呼叫 UserUIConfigUpdater 以轉換 RepoIndexAttrs。轉換也會在 SystemConfiguration 中設定旗標,禁止再次轉換。
對 Type.USER 的內嵌屬性所做的任何未來變更,都應透過編輯 RepositoryConfiguration 物件來完成。若變更 Type.USER 的內嵌屬性,通常必須重新整理所有 Type.USER 物件。
只有在您重新啟動 Identity Manager 伺服器之後,對 RepositoryConfiguration 所做的變更才會在該伺服器上生效。
Sun Identity Manager 8.0 已變更報告中圖表的顯示方式。8.0 之前的版本所建立的報告,在 8.0 發行版本中會依預期顯示;但這些報告在 Sun Identity Manager 8.1 中將不會正確顯示。有關此問題的停用通知請參閱「Sun Identity Manager 版本說明版本 8.0 2008 年 5 月」。(ID-17636)
使用 SaveNoValidate 動作的表單與工作流程需要增加至新的 saveNoValidateAllowedFormsAndWorkflows 清單。(ID-19115)
Sun Identity Manager 8.1 中增加的安全清單功能可對照 ID 或表單名稱清單,對使用 SaveNoValidate 動作的表單與工作流程進行檢查。saveNoValidateAllowedFormsAndWorkflows 清單位於 System Configuration 物件的 security 屬性中。透過此項新功能,如果表單名稱或所有者 ID 位於安全清單上,該表單或工作流程即可使用 SaveNoValidate 動作。如果表單名稱或所有者 ID 不在清單上,則會使用 Save 動作處理該表單或工作流程。
若要取得使用 SaveNoValidate 動作之表單與工作流程的 ID 或表單名稱,請檢查系統記錄檔,或開啟 com.waveset.ui.util.GenericEditForm 的追蹤層級 4,然後提交任何使用 SaveNoValidate 的自訂表單或工作流程。隨即會記錄內含此 ID 的一則警告。
如果將表單名稱增加至安全清單,請務必設定該表單的名稱屬性,否則您將會看到下列錯誤訊息:
SaveNoValidate on null processed as Save because it is not in the saveNoValidateAllowedFormsAndWorkflows list.