本节提供了与安装或更新 Identity Manager 有关的信息。信息通过以下方式进行组织:
有关详细的产品安装说明,请参阅《Sun Identity Manager 8.1 Installation》。
在安装 Identity Manager 时,请不要混用不同供应商提供的 JDK。例如,如果在 WebSphere 上使用 IBM JDK 运行 Identity Manager,请使用 IBM JDK 安装 Identity Manager。不要使用其他供应商提供的 JDK,因为在一种 JDK 下加密的数据无法使用另一个供应商提供的 JDK 读取。(ID-17800)
Identity Manager 安装程序可能无法与 64 位 JDK 一起运行。(ID-18534)
解决方法:
手动安装。
使用 32 位版本的 JDK 运行此安装程序。
通过设置 JAVA_OPTS(由安装脚本使用)来设置 os.arch=ppc,以完成此安装。例如,
export JAVA_OPTS="-Dos.arch=ppc" install |
如果 JAVA_OPTS 已包含所需的选项,则为:
export JAVA_OPTS="$JAVA_OPTS -Dos.arch=ppc" install |
本节包含有关将 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 服务器实例和 Gateway 实例
升级所有 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 所做的更改不会影响该服务器。
如果升级过程无法使用默认配置者帐户和密码进行登录,日志文件将记录该错误,但不会记录在该错误以后执行的任何操作。(ID-18929)
在升级过程中,将导入 update.xml 文件。导入操作将尝试以配置者身份使用默认密码进行登录。如果登录失败,则会显示一个错误,升级程序将提示您提供正确的登录信息。如果提供了正确的信息,将会继续进行升级。在查看升级过程的日志文件时,您可以看到在默认登录失败时显示的错误消息,但在日志文件中看不到有关升级的任何其他信息。此问题不会影响升级,而只影响日志文件。
如果当前的 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 Service Provider,因此在升级日志中可能会记录 ItemNotFound 异常。(ID-18860)
如果安装中包含 Remedy 资源,则必须将 Remedy API 库放到安装网关的目录中。这些库可以在 Remedy 服务器上找到。
如果打算跳级升级,请确保查阅以下各节中的升级说明。Identity Manager 后续版本的升级说明也适用于您的升级。
从 7.1.1 版开始,Identity Manager 用户扩展属性完全支持多值属性。(ID-14863)
将多值用户扩展属性添加到帐户列表中,可以正确无误地呈现列表。但是,尝试在该列上进行排序将导致以下错误:
java.lang.ClassCastException: java.util.ArrayList
只有在重新序列化用户对象之后,引用多值扩展属性的属性条件才能针对该用户对象作出正确评估。如果希望这样的属性条件能够针对所有用户对象作出正确评估,则必须重新序列化所有用户对象。有关说明,请参见下一节中的“刷新用户对象”。
某些类型的更改要求管理员刷新所有用户对象。例如,在更改 RepositoryConfiguration 中的 Type.USER 的内联属性时,必须刷新所有用户对象。只要将 IDMSchemaConfiguration 对象中的属性标记为 "queryable" 或 "summary",就必须刷新所有用户对象,以使更改影响未修改的旧对象。这同样适用于以下情况:如果新版本的 Identity Manager 添加了一个新属性,或者新版本的 Identity Manager 更改了现有属性的值,则升级过程或管理员必须刷新所有用户对象,以使更改影响未修改的旧对象。
对现有用户进行重新序列化有以下三种方法:
在正常运行过程中修改单个用户对象。
例如,通过用户界面打开一个用户帐户,修改后(或不做修改)保存该帐户。
缺点:此方法比较耗时,并且管理员必须小心,以确保重新序列化所有现有的用户。
使用 lh refreshType 实用程序重新序列化所有用户。refreshType 实用程序的输出是一个刷新的用户列表。
lh console
refreshType User
缺点:因为 refreshType 实用程序是在前台而不是后台运行,此过程可能比较耗时。如果用户很多,则重新序列化所有用户会花费很长时间。
使用延迟任务扫描程序。
在运行延迟任务扫描程序进程之前,必须使用 Sun Identity Manager 集成开发环境 (IDE) 或某些其他方法编辑系统配置对象。
搜索 ’refreshOfType’ 并删除 ’2005Q4M3refreshOfTypeUserIsComplete’ 和 ’2005Q4M3refreshOfTypeUserUpperBound’ 的属性。
在编辑系统配置对象后,必须将该对象导入到系统信息库中,以使更改生效。
缺点:此方法会导致下一次运行延迟任务扫描程序时花费的时间较长,因为需要检查并重写几乎每个用户对象。但此后再运行延迟任务扫描程序时,将恢复正常的速度和持续时间。
如果打算跳级升级,请确保查阅以下各节中的升级说明。Identity Manager 后续版本的升级说明也适用于您的升级。
如果使用的是 Oracle 系统信息库,Identity Manager 8.0 和 8.1 系统信息库 DDL 会使用未由旧 Oracle JDBC 驱动程序正确处理的数据类型。ojdbc14.jar 中的 JDBC 驱动程序无法正确读取日志表中的所有列。
您必须升级到用于 JDK 5 驱动程序的 ojdbc 5.jar,Identity Manager 才能正常工作。
升级会自动将用户扩展属性对象以及 UserUIConfig 对象的 QueryableAttrNames 和 SummaryAttrNames 元素转换为 IDM 模式配置对象。(ID-17784)
样例 update.xml 脚本包含一个 import 命令,用于调用 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 将某些新表专用于角色对象。您必须使用 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 模式配置权能。
在 Sun Identity Manager 8.0 中,更改了 Identity Manager 中的 SPML 2.0 实现。在以前的发行版本中,SPML 消息中使用的 SPML objectclass 属性直接映射到 Identity Manager 用户对象的 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 可将 UserUIConfig RepoIndexAttrs 中的值转换为 RepositoryConfiguration 对象中 Type.USER 的 TypeDataStore 元素上的 XML 属性值。update.xml 文件包含 UserUIConfigUpdater.xml 文件,该文件又包含 import 命令,该命令用于调用 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 列表位于系统配置对象的 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.