Sun Java[TM] System Identity Manager 7.1 Update 1 发行说明 |
文档补充和更正
本节包括发布 Identity Manager 7.1 文档集后所需的新信息以及更正的信息。此信息分为以下几个部分:
Identity Manager 安装本节提供了与 Sun Java System Identity Manager 安装相关的新信息和文档更正内容。
- 不支持 Exchange 5.5 资源适配器。请忽略对此适配器的任何引用。
- 由于在安装 Identity Manager 软件后必须编辑 server.policy 文件,否则将无法运行 Identity Manager,所以已修订了第 6 章“为 Sun ONE Application Server 7 安装 Identity Manager”以及第 7 章“为 Sun Java System Application Server 安装 Identity Manager”中的安装步骤。因此,必须按以下顺序执行安装步骤 (ID-16600):
- 应从第 1 章“安装之前”的“支持的软件和环境”一节中删除特定的版本号,然后添加以下注释:(ID-16687)
Identity Manager 升级本节提供了有关 Sun Java System Identity Manager 升级的新信息和文档更正内容。
其他自定义系统信息库对象
记录了所创建或更新的任何其他自定义系统信息库对象的名称。您可能需要从当前安装中导出这些对象,并在升级后将其重新导入到 Identity Manager 的较新版本。
可以使用 Identity Manager 快照功能在部署中创建自定义系统信息库对象的基线或“快照”,它在计划升级时可能很有用。
快照从系统中复制以下特定对象类型以进行比较:
可随后比较两个快照,以确定在升级前后对某些系统对象所做的更改。
创建快照:
- 在 Identity Manager 的“调试”页(图 1)中,单击“快照”按钮以查看“快照管理”页。
图 1 “快照管理”页
- 在“创建”文本框中键入快照的名称,然后单击“创建”按钮。
当 Identity Manager 添加快照时,将在“比较”菜单列表和“导出”标签右侧显示快照的名称。
比较两个快照:
- 分别从两个“比较”菜单中选择一个快照(图 2)。
图 2 “快照管理”页
- 单击“比较”按钮。
您可以导出 XML 格式的快照。单击快照名称以导出快照文件。
要删除某个快照,请从“删除”菜单中选择该快照,然后单击“删除”按钮。
- 如果要从 6.x 安装升级到版本 7.0 或 7.1,并且要使用新的 Identity Manager 最终用户页面进行启动,您必须手动将系统配置 ui.web.user.showMenu 更改为 true 以显示水平导航栏。(ID-14901)
- 如果要从 6.0 或 7.0 升级到版本 7.1,并且使用 LocalFiles,您必须在升级之前导出所有数据,然后在执行 7.1 全新安装后重新导入数据。(ID-15366)
- 从 6.0 或 7.0 升级到版本 7.1 时,需要升级数据库模式。(ID-15392)
- 在升级过程中,Identity Manager 将分析系统上的所有角色,然后使用 RoleUpdater 类更新所有丢失的子角色和超级角色链接。(ID-15734)
<?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' />
v</Map>
</ImportCommand>
</Waveset>
Identity Manager 管理指南本节提供了有关 Sun Java System Identity Manager 管理的新信息和文档更正内容。
第 2 章:Identity Manager 入门
第 3 章:用户和帐户管理
验证问题策略会确定用户执行以下操作时所发生的情况:在登录页面上单击“忘记密码”按钮或访问“更改我的回答”页面。下表对每个选项进行了描述:
第 5 章:管理
对已删除用户的委托
Identity Manager 允许您控制哪些用户属于最终用户的控制范围。
可以根据组织需要,使用 EndUserControlledOrganizations 规则来定义所需的逻辑,以确保为委托提供正确的用户集。
如果希望管理员的用户范围列表始终相同(无论他们登录到管理员界面还是最终用户界面),则必须按如下方式更改 EndUserControlledOrganizations 规则:
修改此规则,使其首先检查验证用户是否为管理员,然后再配置以下内容:
例如:
Identity Manager 提供了一种称为“最终用户”的内置对象组/组织(最初不包含任何成员对象)。最终用户对象组/组织会隐式分配给所有用户,使用户能够查看几种对象类型,包括任务、规则、角色和资源。
以前,当用户登录到最终用户界面时,会自动获得在最终用户权能中指定的对象类型(如 AdminRole、EndUserConfig 和 EndUserTask)的权限。现在当用户登录到最终用户界面时,Identity Manager 还会自动为其提供控制新的最终用户对象组的权限。此外,Identity Manager 还会评估新的内置最终用户受控组织规则。此规则返回的任何对象组/组织名称,也自动由登录到最终用户界面的用户来控制。
验证用户的视图是最终用户受控组织规则的输入参数。Identity Manager 预期此规则会返回一个(字符串形式)或多个(列表形式)组织,返回的组织由登录到最终用户界面的用户来控制。添加了新的最终用户管理员权能,从而使用户能够管理这些新对象。分配了最终用户管理员权能的用户可以查看和修改最终用户权能中所指定的对象类型的权限,以及最终用户受控组织规则的内容。
默认情况下,最终用户管理员权能将分配给配置者。对于最终用户受控组织规则评估返回的任何列表或组织,所做的任何更改不会动态反映给已登录的用户。这些用户必须先登出,然后再重新登录才能看到这些更改。
如果最终用户受控组织规则返回一个无效的组织(例如,在 Identity Manager 中不存在的组织),则会在系统日志中记录该问题。可以通过登录到管理员用户界面并修复此规则来解决问题。
最终用户对象组/组织是顶层组织的成员,其中不能包含子组织。此对象组/组织不会显示在管理员用户界面的“帐户”选项卡上的树表中。但是,在编辑对象(如角色、管理员角色、资源、策略和任务等)时,您可以在管理员用户界面中为最终用户对象组/组织提供任何对象的访问权限。
使用此全新的最佳方法(而不是使用最终用户任务、最终用户资源、系统配置:EndUserAccess 和最终用户 authType),就可以为最终用户提供 Identity Manager 配置对象(如角色、资源和任务等)的访问权限。但是仍将支持最终用户任务、最终用户资源、系统配置:EndUserAccess 和最终用户 authType 方法,以实现向后兼容。
第 8 章:任务模板
也可以只捕获那些特定属性为特定值的审计记录,但这需要一些额外的配置。请按以下说明进行操作:
- 打开并登录到 Identity Manager 管理员界面:
http://server-name:port/idm
- 选择“服务器任务”选项卡。
- 选择“配置任务”选项卡。
- 单击“更新用户模板”任务(以此为例)。
- 选择“审计”选项卡。
您会看到选定任务的审计控制,它会在发生用户更新时执行审计。
- 选择“审计整个工作流”复选框可以激活工作流审计功能。
- 单击“添加属性”按钮(在“审计属性”部分中),以选择要记录的属性以供报告使用。
- 当“选择属性”菜单显示在“审计属性”表中时,请从列表中选择一个属性。(例如,从该下拉菜单中选择 user.global.email)。
- 单击“保存”。
- 现在必须执行以下步骤来启用此配置:
现在,工作流可以提供能够同时匹配属性名称和属性值的审计记录了。虽然,启用此级别的审计可以提供更多的信息,但是要注意,这会显著增加性能开销,使工作流的运行速度变慢。
第 11 章:身份审计
在本章中添加了以下信息:
连续遵循性
当前本节中包含以下信息:对用户执行的任何置备操作都将导致对分配给用户和组织的策略进行评估。应将此信息更正为如下内容:(ID-17416)
连续遵循性表示审计策略将应用于所有置备操作,因此不能使用不符合当前策略的方法修改帐户。
可以通过将审计策略分配给组织和/或用户来启用连续遵循性。对用户执行的任何置备操作都将导致对分配给用户的策略进行评估。如果评估产生了任何策略失败,都会中断置备操作。
解除审计者权能限制
默认情况下,执行审计任务所需的权能包含在“顶层”组织(对象组)中。因此,只有控制“顶层”组织的管理员才能向其他管理员分配这些权能。
可以通过向其他组织添加权能来解除此限制。Identity Manager 提供了两个用于执行此任务的实用程序(位于 sample/scripts 目录中)。
添加规则
已在本节中添加了以下注释 (ID-16604、16831):
注
Identity Manager 不支持规则嵌套控制。此外,使用审计策略向导创建布尔表达式嵌套策略时,会产生无法预测的结果。
对于复杂的规则表达式,请使用 XML 编辑器来创建单独的 XPRESS 规则,该规则将引用您要使用的所有规则。
创建规则表达式
本节中的注释已更改为如下内容 (ID-16604、16831):
注
Identity Manager 不支持规则嵌套控制。此外,使用审计策略向导创建布尔表达式嵌套策略时,会产生无法预测的结果。
对于复杂的规则表达式,请使用 XML 编辑器来创建单独的 XPRESS 规则,该规则将引用您要使用的所有规则。
第 13 章:Service Provider 管理
“配置同步”一节应该指出 Service Provider 同步任务的默认同步时间间隔为 1 分钟。
所有章节
章节脚注中标注的发行版应为 7.1 而不是 7.0。(ID-16968)
Identity Manager 资源参考资料本节包含有关 Sun Java System Identity Manager 资源参考资料的新信息和文档更正内容:
常规
Active Directory
应将以下信息添加到 Active Directory 资源适配器文档中。
指定传递验证的域
在默认配置中,传递验证是通过只发送用户 ID 和密码来完成的。可以在资源对象的 XML 的 AuthnProperties 元素中将这两个属性配置为 w2k_user 和 w2k_password。如果未指定域,网关将会搜索所有已知的域,并尝试在包含此用户的域中验证该用户。
在可信的多域环境中,可能存在两种情况:
更正
在 Active Directory 文档中,本指南的“管理 ACL 列表”步骤中包含以下步骤:(ID-16476)
数据库表格
Flat File Active Sync
网关适配器
Domino 网关、Active Directory、Novell NetWare 和其他网关适配器都允许您使用 RA_HANGTIMEOUT 资源属性来指定超时值(以秒为单位)。此属性控制多长时间后对网关的请求会超时并被视为挂起。
必须按如下方式手动将此属性添加到资源对象中:
<ResourceAttribute name='Hang Timeout' displayName='com.waveset.adapter.RAMessages:RESATTR_HANGTIMEOUT' type='int' description='com.waveset.adapter.RAMessages:RESATTR_HANGTIMEOUT_HELP' value='NewValue'>
</ResourceAttribute>此属性的默认值为 0,表示 Identity Manager 将不会检查挂起的连接。
主机适配器
在 ACF2、Natural、RACF、RACF-LDAP、Scripted Host 和 Top Secret 适配器的“Identity Manager 安装说明”一节中缺少一个步骤。请在步骤 3 的后面添加以下步骤。
4. 在 WebSphere Application Server 中安装 Attachmate 库时,需要将属性 com.wrq.profile.dir=LibraryDirectory 添加到 WebSphere/AppServer/configuration/config.ini 文件中。
这样便允许 Attachmate 代码查找许可文件了。
Microsoft SQL Server
应将以下信息添加到“用法说明”一节中:
如果 Identity Manager 服务器运行在 Windows 计算机上并且它与 SQL Server 服务器实例位于相同的 Windows 安全/验证框架下,则只能在 Microsoft SQL Server 适配器上配置 SQL Server 资源适配器的 Windows 验证模式。
JDBC 驱动程序通过 integratedSecurity 连接字符串属性支持在 Windows 操作系统上使用 Type 2 集成验证。要使用集成验证,请在安装了 JDBC 驱动程序的计算机上,将 sqljdbc_auth.dll 文件复制到 Windows 系统路径上的目录中。
sqljdbc_auth.dll 文件将安装在以下位置:
InstallationDirectory\sqljdbc_Version\Language\auth\
在 32 位处理器中,将在 x86 文件夹中使用 sqljdbc_auth.dll 文件。在 64 位处理器中,将在 x64 文件夹中使用 sqljdbc_auth.dll 文件。
有关详细信息,请参见:
http://msdn2.microsoft.com/en-us/library/ms378428.aspx
NetWare
Oracle
Oracle ERP
- Oracle ERP 适配器现在具有可支持临时员工的 npw_number 帐户属性。(ID-16507)
资源用户属性
数据类型
描述
npw_number
字符串
临时员工编号。它表示 per_people_f 表中的 npw_number。
如果在创建时输入了一个值,适配器将尝试在 per_people_f 表中查找用户记录,并在创建 API 中检索 person_id,然后将 person_id 插入到 fnd_user 表的 employee_id 列中。
如果在创建时未输入 npw_number,将不会进行任何链接尝试。
如果在创建时输入了 npw_number,但找不到该编号,则适配器将会抛出异常。
如果 npw_number 位于适配器模式中,适配器在执行 getUser 时将尝试返回 npw_number。
注意:employee_number 属性与 npw_number 属性是互斥的。如果在创建时同时输入两者,则 employee_number 优先。
- Oracle ERP 适配器支持 Oracle E-Business Suite (EBS) 版本 12。可能不再需要对 Oracle ERP 用户表单的各部分进行编辑或注释,具体取决于 Identity Manager 资源参考资料中所述的 ERP 安装版本。(16705, 16713)
Remedy
必须在网关的安装目录中放置多个 Remedy API 库。这些库可以在 Remedy 服务器上找到。
表 3 Remedy API 库
Remedy 4.x 和 5.x
Remedy 6.3
Remedy 7.0
其中,XX 与 Remedy 版本相匹配。例如,Remedy 4.5 上具有 arapi45.dll。
SAP
一般说明
Identity Manager 安装说明的步骤 1 中的注释表达不清楚, 应表述为
注
请确保您下载的 JCo 工具包与应用服务器所运行的 Java 位版本相匹配。例如,JCo 只能在 Solaris x86 平台上的 64 位版本中使用。因此,您的应用服务器必须在 Solaris x86 平台上运行 64 位版本。
重命名帐户
SAP 适配器目前支持对帐户进行重命名。该适配器通过将现有帐户复制到新帐户中并删除原始帐户来执行此功能。SAP 不建议对帐户进行重命名,但是会在用户管理应用程序(SAP GUI 中的 Transaction SU01)中提供该选项。因此,Identity Manager 也支持此选项。请注意,SAP 在未来的发行版中可能不支持重命名的功能。
SAP GUI 将使用其他方法来执行重命名的操作,这是因为它有权访问非公共的 API 和 SAP 内核。以下步骤将详细描述适配器是如何执行重命名操作的:
如果在执行步骤 1-3 时出现错误,则操作将立即失败。如果在执行步骤 4-7 时发生错误,则会删除新用户,并且整个操作将失败。(如果无法删除新用户,则会在 WavesetResult 中显示一条警告信息)。如果在执行步骤 8-9 时出现错误,则会为 WavesetResult 添加一条警告信息,但是该操作将会成功完成。
重命名操作要求必须为新用户设置新密码。可以通过自定义“重命名用户”任务来调用“更改用户密码”任务非常轻松地完成此操作。
Sun Java System Access Manager
- Sun Java System Access Manager 文档中的“策略代理”一节描述的步骤已过时。请使用以下步骤。
- 在 Identity Manager 管理员界面菜单栏中,选择“安全性”。
- 单击“登录”选项卡。
- 然后单击页面底部的“管理登录模块组”按钮。
- 选择要修改的登录模块。例如,选择“默认的 Identity System ID/密码登录模块组”。
- 在“分配登录模块”选择框中,选择“Sun Access Manager 登录模块”或“Sun Access Manager 领域登录模块”。
- 当新的“选择”选项显示在“分配登录模块”选项的旁边时,请选择相应的资源。
- 当“修改登录模块”页面出现时,请按需要编辑显示的字段,然后单击“保存”。再次显示“修改登录模块组”。
- 将 Sun Access Manager 登录模块指定为模块组中的第一个资源,然后单击“保存”。
- 在“Sun Java System Access Manager 领域资源适配器”一节中所列出的步骤中缺少了下面一步。在将 amclientsdk.jar 文件复制到 InstallDir/WEB-INF/lib 目录(步骤 4)后,必须重新启动 Identity Manager 的应用服务器。
- 应将对 Policy Agent 2.1 的引用更改为对 Policy Agent 2.2 的引用。
Sun Java System Access Manager 领域
Identity Manager 资源参考资料包含过期的链接。请使用以下链接:
在“安装说明”一节,已将配置 Sun Java System Access Manager 领域资源适配器的步骤更新为如下内容:
- 按照《Sun Java System Access Manager 7 2005Q4 Developer's Guide》中提供的说明,从 Sun Access Manager 安装中生成客户机 SDK。
- 从生成的 war 文件中提取 AMConfig.properties 和 amclientsdk.jar 文件。
- 将 AMConfig.properties 副本放在以下目录中:
InstallDir/WEB-INF/classes
- 将 amclientsdk.jar 的副本放在以下目录中:
InstallDir/WEB-INF/lib
- 将 amclientsdk.jar 文件添加到服务器类路径中。
- 重新启动 Identity Manager 应用服务器。
- 复制文件后,必须将 Sun Java System Access Manager 领域资源添加到 Identity Manager 资源列表中。在“配置受管理的资源”页面的“自定义资源”部分添加以下值。
“策略代理”一节所描述的步骤已过时。请使用以下步骤。
- 在 Identity Manager 管理员界面菜单栏中,选择“安全性”。
- 单击“登录”选项卡。
- 然后单击页面底部的“管理登录模块组”按钮。
- 选择要修改的登录模块。例如,选择“默认的 Identity System ID/密码登录模块组”。
- 在“分配登录模块”选择框中,选择“Sun Access Manager 登录模块”或“Sun Access Manager 领域登录模块”。
- 当新的“选择”选项显示在“分配登录模块”选项的旁边时,请选择相应的资源。
- 当“修改登录模块”页面出现时,请按需要编辑显示的字段,然后单击“保存”。再次显示“修改登录模块组”。
- 将 Sun Access Manager 领域登录模块指定为模块组中的第一个资源,然后单击“保存”。
UNIX 适配器
AIX、HPUX、Solaris 和 Linux 适配器的相关文档曾进行过如下陈述:如果您使用 sudo,则必须为适配器使用的每个命令指定 NOPASSWORD 选项。这是错误的。
同步 LDAP 密码
Identity Manager 现在支持 LDAP 密码同步 Directory Server 5.2 SP5 和更高版本。“配置密码同步”页面中包含一个新的字段“Directory Server 版本”,该字段允许您将 Directory Server 实例指定为 5.2 P4(或早期版本)或 5.2 P5(或更高版本)。
请注意以下文档更改:
Identity Manager 技术部署概述本节包含有关 Sun Java System Identity Manager 技术部署概述的新信息和文档更正内容:
th#UserListTreeContent_Col0 {
width: 1px;
}th#UserListTreeContent_Col1 {
width: 1px;
}th#UserListTreeContent_Col2 {
width: 50%;
}th#UserListTreeContent_Col3 {
width: 50%;
}th#ResourceListTreeContent_Col0 {
width: 1px;
}th#ResourceListTreeContent_Col1 {
width: 1px;
}th#ResourceListTreeContent_Col2 {
width: 33%;
}th#ResourceListTreeContent_Col3 {
width: 33%;
}th#ResourceListTreeContent_Col4 {
width: 33%;
}
- 特别需要在最终用户导航栏(选项卡)中使用自定义 JavaScript 函数的客户,必须使用 endUserNavigation 来引用该表单。例如,document.forms['endUserNavigation'].elements。(ID-13769)
- 现在系统配置对象包含 security.delegation.historyLength 属性,该属性控制记录的先前委托数。
- “访问查看面板”和“访问查看详细信息报告”都显示了审计日志中记录的查看实例。如果不进行数据库维护,将从不会截断审计日志,并且查看列表将会增长。Identity Manager 提供了将显示的查看限制到某个特定使用期限范围的功能。要更改此限制,必须自定义 compliance/dashboard.jsp(对于面板)和 sample/auditortasks.xml(对于“详细信息”报告)。(默认情况下,仅显示使用期限小于 2 年的查看。)
- 代码示例 5-5 包含了应该在代码示例 5-4 中显示的信息。
代码示例 5-4 应如下所示:
代码示例 5-4 自定义导航选项卡
/* LEVEL 1 TABS */
.TabLvl1Div {
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left bottom;
background-color:#333366;
padding:6px 10px 0px;
}
a.TabLvl1Lnk:link, a.TabLvl1Lnk:visited {
display:block;
padding:4px 10px 3px;
font: bold 0.95em sans-serif;
color:#FFF;
text-decoration:none;
text-align:center;
}
table.TabLvl1Tbl td {
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left top;
background-color:#666699;
border:solid 1px #aba1b5;
}
table.TabLvl1Tbl td.TabLvl1TblSelTd {
background-color:#9999CC;
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left bottom;
border-bottom:none;
}
/* LEVEL 2 TABS */
.TabLvl2Div {
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left bottom;
background-color:#9999CC;
padding:6px 0px 0px 10px
}
a.TabLvl2Lnk:link, a.TabLvl2Lnk:visited{
display:block;
padding:3px 6px 2px;
font: 0.8em sans-serif;
color:#333;
text-decoration:none;
text-align:center;
}
table.TabLvl2Tbl div.TabLvl2SelTxt {
display:block;
padding:3px 6px 2px;
font: 0.8em sans-serif;
color:#333;
font-weight:normal;
text-align:center;
}
table.TabLvl2Tbl td {
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left top;
background-color:#CCCCFF;
border:solid 1px #aba1b5;
}
table.TabLvl2Tbl td.TabLvl2TblSelTd {
border-bottom:none;
background-image:url(../images/other/dot.gif);
background-repeat:repeat-x;
background-position:left bottom;
background-color:#FFF;
border-left:solid 1px #aba1b5;
border-right:solid 1px #aba1b5;
border-top:solid 1px #aba1b5;
代码示例 5.5 应如下所示:
代码示例 5-5 更改标签面板选项卡
table.Tab2TblNew td {background-image:url(../images/other/dot.gif);background-repeat:repeat-x;background-position:left top;background-color:#CCCCFF;border:solid 1px #8f989f}
table.Tab2TblNew td.Tab2TblSelTd {border-bottom:none;background-image:url(../images/other/dot.gif);background-repeat:repeat-x;background-position:left bottom;background-color:#FFF;border-left:solid 1px #8f989f;border-right:solid 1px #8f989f;border-top:solid 1px #8f989f}
- 导入以下 XML 文件:
代码示例 1 要导入的 XML
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Configuration name='AltMsgCatalog'>
<Extension>
<CustomCatalog id='AltMsgCatalog' enabled='true'>
<MessageSet language='en' country='US'>
<Msg id='UI_BROWSER_TITLE_PROD_NAME_OVERRIDE'>Override Name</Msg>
</MessageSet>
</CustomCatalog>
</Configuration>
</Extension>
- 使用 Identity Manager IDE,加载要编辑的系统配置对象。添加新的顶层属性:
Name = customMessageCatalog
Type = string
Value = AltMsgCatalog
- 打开 ui.web 通用对象,并查找 browserTitleProdNameOverride 属性。将此值设置为 true。
- 保存此系统配置对象的更改,然后重新启动应用服务器。
- 默认情况下,Identity Manager 匿名注册处理使用用户提供的名 (firstName)、姓 (lastName) 和 employeeId 生成 accountId 和 emailAddress 值。(ID-16131)
- 编辑 EndUserRuleLibrary 中的以下三个规则,如下所示:
编辑以下规则
进行如下更改...
getAccountId
仅使用 employeeId(并删除 firstName 和 lastName)
getEmailAddress
仅使用 employeeId(删除 firstName、lastName 和 ".")
verifyFirstname
将长度检查由 2 更改为 1,以允许使用单字符亚洲名
- 编辑最终用户匿名注册完成表单,从 getAccountId 和 getEmailAddress 规则调用中删除 firstName 和 lastName 参数。
- 在第 5 章“Identity Manager 的专用标签”的有关如何自定义登录页面的讨论中,应添加以下有关消息关键字的信息。(ID-16702)
JSP 或 Identity Manager 组件
受影响的界面
消息关键字
登录页面 TITLE
管理员和用户
UI_LOGIN_TITLE_TO_RESOURCE
UI_LOGIN_CHALLENGE
登录页面 SUBTITLE
管理员和用户
根据登录模式选择关键字:忘记密码、忘记用户 ID 和登录质询。
UI_LOGIN_WELCOME3
UI_LOGIN_WELCOME4
UI_LOGIN_WELCOME5
UI_LOGIN_WELCOME6
UI_LOGIN_CHALLENGE_INFO
staticLogout.jsp 和 user/staticUserLogout.jsp
管理员和用户
UI_LOGIN_TITLE
continueLogin.jsp
管理员
UI_LOGIN_IN_PROGRESS_TITLE
UI_LOGIN_WELCOME
Identity Manager 工作流、表单和视图本节包含有关 Sun Java System Identity Manager 工作流、表单和视图的新信息和文档更正内容。
第 1 章:Identity Manager 工作流
- Identity Manager 遵循性将工作流作为应用程序的集成和自定义点。下面介绍了默认遵循性相关工作流。(ID-15447)
工作流名称
用途
修正
处理单个遵循性违规的单个修正者的修正
访问查看修正
处理单个 UserEntitlement 的单个修正者的修正
证明
处理单个 UserEntitlement 的单个证明者的证明
多个修正
修正单个遵循性违规和多个修正
更新遵循性违规
缓解遵循性违规
启动访问扫描
从访问查看任务中启动访问扫描
启动权利文件重新扫描
为单个用户启动访问扫描的重新扫描
启动违规重新扫描
为单个用户启动审计策略扫描的重新扫描
- 对 maxSteps 属性描述进行了以下修订:(ID-15618)
第 2 章:工作流服务
- createView 会话工作流服务的参数表是错误的。下表描述了此服务中可用的参数。(ID-14201)
表 1
名称
是否必需
有效值
描述
op
是
createView
viewId
是
指定要创建的视图类型。
options
否
指定特定于视图的选项。可以传递的值特定于所使用的视图。最常用的视图为用户视图。
可以在 session.UserViewConstants 中找到这些选项。简单一些的视图应该在 Viewer.java 文件中声明其选项常量。
在工作流中第二常用的视图可能为 ProcessViewer,然后依次为 PasswordViewer、DisableViewer、EnableViewer 和 RenameViewer。相对来说,这些视图具有较少的选项。
- 应该在 disableUser 工作流服务的描述中阐明,此服务的默认行为是禁用 Identity Manager 帐户以及资源帐户。(ID-14572) 如果不想禁用 Identity Manager 帐户,请传递以下参数:
锁定置备工作流服务
用于锁定对象。
参数
是否必需
描述
subject
否
表示此调用的有效主体。如果不提供此参数,Identity Manager 将使用任务的 subject。如果此参数的值为 none,则 Identity Manager 将不执行授权。
options
否
(映射)选项名称/选项值对的值映射。如果不提供此参数,将使用以下特定的参数。如果提供此参数,则以下任何特定的参数将覆盖此选项映射中包含的相同参数。
accountId
否
(字符串)标识要锁定的 Identity Manager 用户的名称。
adminName
否
(字符串)表示执行此操作的管理员的名称。
loginAppName
否
(字符串)指定登录应用程序的名称。
op
是
有效值为 unlock
此方法将返回一个 null 值。
解除工作流服务的锁定
用于对锁定对象解除锁定。
表 1
参数
是否必需
描述
subject
否
(字符串)表示此调用的有效主体。如果不提供此参数,则将使用任务的主体。如果此参数的值为 none,则不执行授权。
options
否
(映射)选项名称/选项值对的值映射。如果不提供此参数,Identity Manager 将使用以下特定的参数。如果提供此参数,则以下任何特定的参数将覆盖此选项映射中包含的相同参数。
accountId
否
(字符串)标识要解除锁定的 Identity Manager 用户的名称。
adminName
否
(字符串)表示执行此操作的管理员的名称
loginAppName
否
(字符串)指定登录应用程序的名称。
doLighthouse
否
(布尔型)表示是否解除 Identity Manager 帐户的锁定。
doResources
否
(布尔型)表示是否解除用户资源的锁定。
doAuthenticators
否
(布尔型)如果为 true,将解除所有传递验证的锁定。
op
是
有效值为 unlock。
此方法将返回 WavesetResult,其中包含操作结果。
第 3 章,Identity Manager 表单
相关信息
关于与审计相关的表单处理
指定用户表单
默认的与审计相关的表单
下表指出了随 Identity Manager 提供的与审计相关的默认表单。
表 2
表单名称
映射的名称
按用户控制
一般用途
访问批准列表
accessApprovalList
显示证明工作项目的列表
访问查看删除确认
accessReviewDeleteConfirmation
确认删除访问查看
访问查看中止确认
accessReviewAbortConfirmation
确认终止访问查看
访问查看面板
accessReviewDashboard
显示所有访问查看的列表
访问查看修正表单
accessReviewRemediationWorkItem
是
呈现每个基于用户权利文件的修正工作项目
访问查看摘要
accessReviewSummary
显示特定访问查看的详细信息
访问扫描表单
accessScanForm
显示或编辑访问扫描
访问扫描列表
accessScanList
显示所有访问扫描的列表
访问扫描删除确认
accessScanDeleteConfirmation
确认删除访问扫描
访问批准列表
attestationList
是
呈现所有暂挂证明的列表。
证明表单
attestationWorkItem
是
呈现每个证明工作项目
UserEntitlementForm
userEntitlementForm
显示 UserEntitlement 的内容
UserEntitlement 摘要表单
userEntitlementSummaryForm
违规详细信息表单
violationDetailForm
显示遵循性违规的详细信息
修正列表
remediationList
是
显示修正工作项目的列表
审计策略列表
auditPolicyList
显示审计策略列表
审计策略删除确认表单
auditPolicyDeleteConfirmation
确认删除审计策略
冲突违规详细信息表单
conflictViolationDetailsForm
显示 SOD 违规表
遵循性违规摘要表单
complianceViolationSummaryForm
修正表单
reviewWorkItem
是
呈现遵循性违规。
为什么要自定义这些表单?
扫描任务变量
- 现在,可以将警告 (WARNING)、错误 (ERROR) 或信息 (OK) 警报消息插入到 XPRESS 表单中。(ID-14540、ID-14953)
- 使用 Identity Manager IDE 打开要将警告添加到的表单。
- 将 <Property name='messages'> 添加到主 EditForm 或 HtmlPage 显示类中。
- 添加以下示例代码中的 <defvar name='msgList'> 代码块。
- 在以下代码示例字符串中,替换用于确定要在“警报”框中显示的消息文本的消息关键字:
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE >
- 保存并关闭该文件。
代码示例
<Display class='EditForm'>
<Property name='componentTableWidth' value='100%'/>
<Property name='rowPolarity' value='false'/>
<Property name='requiredMarkerLocation' value='left'/>
<Property name='messages'>
<ref>msgList</ref>
</Property>
</Display>
<defvar name='msgList'>
<cond>
<and>
<notnull>
<ref>username</ref>
</notnull>
<isnull>
<ref>userview</ref>
</isnull>
</and>
<list>
<new class='com.waveset.msgcat.ErrorMessage'>
<invoke class='com.waveset.msgcat.Severity' name='fromString'>
<s>warning</s>
</invoke>
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE'>
<ref>username</ref>
</message>
</new>
</list>
</cond>
</defvar>
第 4 章,Identity Manager 视图
通用属性
下表中列出了组织视图的高级属性。
名称
是否可编辑?
数据类型
是否必需?
orgName
读取
字符串
系统生成
orgDisplayName
读取/写入
字符串
是
orgType
读取/写入
字符串
否
orgId
读取
字符串
系统生成
orgAction
写入
字符串
否
orgNewDisplayName
写入
字符串
否
orgParentName
读取/写入
字符串
否
orgChildOrgNames
读取
列表
系统生成
orgApprovers
读取/写入
列表
否
allowsOrgApprovers
读取
列表
系统生成
allowedOrgApproverIds
读取
列表
系统生成
orgUserForm
读取/写入
字符串
否
orgViewUserForm
读取/写入
字符串
否
orgPolicies
读取/写入
列表
否
orgAuditPolicies
读取/写入
列表
否
renameCreate
读取/写入
字符串
否
renameSaveAs
读取/写入
字符串
否
orgName
标识组织的 UID。此值不同于大多数视图对象名称,因为组织可以具有相同的简称,但具有不同的父组织。
orgDisplayName
指定组织的简称。此值仅用于显示,不必具有唯一性。
orgType
定义允许值为 junction 或 virtual 的组织类型。不属于 junction 或 virtual 类型的组织没有值。
orgId
指定用于唯一标识 Identity Manager 内组织的 ID。
orgAction
只有目录连接、虚拟组织和动态组织支持此属性。允许的值为 refresh。当组织为目录连接或虚拟组织时,刷新操作的行为取决于 orgRefreshAllOrgsUserMembers 的值。
orgNewDisplayName
重命名组织时指定新的简称。
orgParentName
标识父组织的完整路径名。
orgChildOrgNames
列出所有直接和间接子组织的 Identity Manager 界面名称。
orgApprovers
列出需要批准此组织中所添加或修改的用户的 Identity Manager 管理员。
allowedOrgApprovers
列出潜在的用户名,这些用户可能成为此组织中所添加或修改的用户的批准者。
allowedOrgApproverIds
列出潜在的用户 ID,这些用户可能成为此组织中所添加或修改的用户的批准者。
orgUserForm
指定此组织的成员用户在创建或编辑用户时所使用的 userForm。
orgViewUserForm
指定此组织的成员用户在查看用户时所使用的查看用户表单。
orgPolicies
标识应用于此组织所有成员用户的策略。这是一个使用类型字符串进行标识的对象的列表:每个策略对象包含以下视图属性,这些属性以 orgPolicies[<type>] 为前缀。其中 <type> 表示策略类型(例如,Lighthouse 帐户)。
orgAuditPolicies
指定应用于此组织所有成员用户的审计策略。
renameCreate
将此属性设置为 true 时,将克隆此组织并使用 orgNewDisplayName 的值创建一个新组织。
renameSaveAs
将此属性设置为 true 时,将使用 orgNewDisplayName 的值重命名此组织。
目录连接和虚拟组织属性
名称
是否可编辑?
数据类型
是否必需?
orgContainerId
读取
字符串
系统生成
orgContainerTypes
读取
列表
系统生成
orgContainers
读取
列表
系统生成
orgParentContainerId
读取
字符串
系统生成
orgResource
读取/写入
字符串
是(对于目录连接或虚拟组织)
orgResourceType
读取
字符串
系统生成
orgResourceId
读取
字符串
系统生成
orgRefreshAllOrgsUserMembers
写入
字符串
否
orgContainerId
指定关联的 LDAP 目录容器的 DN(例如,cn=foo,ou=bar,o=foobar.com)。
orgContainerTypes
列出可以包含其他资源对象的允许的资源对象类型。
orgContainers
列出资源的基本容器,Identity Manager 界面将使用这些容器来显示可供选择的列表。
orgParentContainerId
指定关联的父 LDAP 目录容器的 DN(例如,ou=bar,o=foobar.com)。
orgResource
指定用于同步目录连接和虚拟组织的 Identity Manager 资源的名称(例如,West Directory Server)。
orgResourceType
指出用于同步目录连接和虚拟组织的 Identity Manager 资源的类型(例如,LDAP)。
orgResourceId
指定用于同步目录连接和虚拟组织的 Identity Manager 资源的 ID。
orgRefreshAllOrgsUserMembers
如果此属性为 true 并且 orgAction 的值为 refresh,将同步选定组织及所有子组织的 Identity 组织用户成员资格和资源容器用户成员资格。如果此属性为 false,则不同步资源容器用户成员资格,而只同步选定组织及所有子组织的资源容器和 Identity 组织。
动态组织属性
orgUserMembersRule
标识(使用名称或 UID)authType 为 UserMembersRule 的规则,在运行时将评估此规则以确定用户成员资格。
orgUserMembersCacheTimeout
如果要对 orgUserMembersRule 返回的用户成员进行高速缓存,指定缓存超时之前的时间(以毫秒为单位)。值为 0 表示不进行高速缓存。
对用户视图的讨论现在包含对 accounts[Lighthouse].delegates 属性的以下讨论:(ID-15468)
accounts[Lighthouse].delegates
列出委托对象并按 workItemType 编制索引,其中每个对象指定特定类型的工作项目的委托信息
accounts[Lighthouse].delegatesHistory
列出委托对象并从 0 到 n 编制索引,其中 n 是委托历史记录对象的当前数量,最多为委托历史记录深度
此属性有一个唯一属性:selected,这是一个布尔型属性,指出当前选定的委托历史对象。
accounts[Lighthouse].delegatesOriginal
执行获取操作或登出视图操作后生成的原始委托对象列表(按 workItemType 编制索引)。
所有 accounts[Lighthouse].delegates* 属性使用以下属性:
accounts[Lighthouse].delegate* 属性的属性
描述
workItemType
指定要委托的 workItem 类型。有关有效的 workItem 类型列表,请参见本文档补充资料的“Identity Manager 技术部署概述”一节中的委托对象模型说明。
workItemTypeObjects
列出用户委托将来的 workItem 批准请求时所在的特定角色、资源或组织的名称。当 workItemType 值为 roleApproval、resourceApproval 或 organizationApproval 时,此属性有效。
如果未指定,默认情况下,此属性指定在此用户为批准者的所有角色、资源或组织上委托将来的 workItem 请求。
toType
要委托给的类型。有效值为:
manager
delegateWorkItemsRule
selectedUsers
toUsers
列出要委托给的用户的名称(如果 toType 为 selectedUsers)。
toRule
指定要评估的规则的名称,以确定一组要委托给的用户(如果 toType 为 delegateWorkItemsRule)。
startDate
指定委托的开始日期。
endDate
指定委托的结束日期。
从表单中引用 DelegateWorkItems 视图对象
以下代码示例说明了如何从表单中引用 DelegateWorkItems 视图委托对象:
<Field name='delegates[*].workItemType'>
<Field name='delegates[*].workItemTypeObjects'>
<Field name='delegates[*].toType'>
<Field name='delegates[*].toUsers'>
<Field name='delegates[*].toRule'>
<Field name='delegates[*].startDate'>
<Field name='delegates[*].endDate'>
其中,支持的索引值 (*) 是 workItemType 值。
名称
是否可编辑?
类型
是否必需?
name
字符串
是
status
字符串
是
user
字符串
是
userId
字符串
是
attestorHint
字符串
否
userView
GenericObject
是
reviewInstanceId
字符串
是
reviewStartDate
字符串
是
scanId
字符串
是
scanInstanceId
字符串
是
approvalWorkflowName
字符串
是
organizationId
字符串
是
attestorComments.name
字符串
否
attestorComments.attestor
字符串
否
attestorComments.time
字符串
否
attestorComments.timestamp
字符串
否
attestorComments.status
否
name
标识用户权利文件(使用唯一标识符)。
status
指定用户权利文件对象的状态。有效状态包括 PENDING、ACCEPTED、REJECTED、REMEDIATING 和 CANCELLED。
user
标识此权利文件的关联 WSUser 的名称。
userId
指定关联 WSUser 的 ID。
attestorHint
向证明者显示查看确定规则所提供的(字符串)提示。此提示是规则向证明者提供的“建议”。
userView
包含用户权利文件扫描程序所捕获的用户视图。此视图包含零个或多个资源帐户,具体取决于访问扫描对象的配置。
reviewInstanceId
指定 PAR 任务实例的 ID。
reviewStartDate
指出 PAR 任务的(字符串)开始日期(采用规范格式)。
scanId
指定 AccessScan 任务定义的 ID。
scanInstanceId
指定 AccessScan 任务实例的 ID。
approvalWorkflowName
标识要运行的批准工作流的名称。此值来自访问扫描任务定义。
organizationId
指定扫描时 WSUser 组织的 ID。
attestorComments
列出权利文件的证明记录。每个证明记录会指出与权利文件有关的操作或语句,包括批准、拒绝和重新扫描。
attestorComments[timestamp].name
用于标识列表中此元素的时间戳。
attestorComments[timestamp].attestor
标识对权利文件进行注释的证明者的 WSUser 名称。
attestorComments[timestamp].time
指定证明者证明此记录的时间。可能不同于时间戳。
attestorComments[timestamp].status
指出证明者所分配的状态。它可以是任何字符串,但通常是表明证明者所执行的操作的字符串,例如 approve、reject、rescan 或 remediate。
attestorComments[name].comment
包含证明者所添加的注释。
第 6 章:XPRESS 语言
第 8 章:HTML 显示组件
使用多重选择组件(applet 或 HTML 版本)来显示许多管理员角色非常不方便。Identity Manager 提供了一种可伸缩性更强的方法来显示和管理管理员角色:objectSelector 字段模板。(ID-15433)
可伸缩选择库(位于 sample/formlib.xml 中)包含以下示例:使用 objectSelector 字段模板搜索用户可选择的管理员角色名称。
代码示例 objectSelector 字段模板示例
<Field name='scalableWaveset.adminRoles'>
<FieldRef name='objectSelector'>
<Property name='selectorTitle' value='_FM_ADMIN_ROLES'/>
<Property name='selectorFieldName' value='waveset.adminRoles'/>
<Property name='selectorObjectType' value='AdminRole'/>
<Property name='selectorMultiValued' value='true'/>
<Property name='selectorAllowManualEntry' value='true'/>
<Property name='selectorFixedConditions'>
<appendAll>
<new class='com.waveset.object.AttributeCondition'>
<s>hidden</s>
<s>notEquals</s>
<s>true</s>
</new>
<map>
<s>onlyAssignedToCurrentSubject</s>
<Boolean>true</Boolean>
</map>
</appendAll>
</Property>
<Property name='selectorFixedInclusions'>
<appendAll>
<ref>waveset.original.adminRoles</ref>
</appendAll>
</Property>
</FieldRef>
</Field>
如何使用 objectSelector 示例代码
- 从 Identity Manager IDE 中,打开管理员库用户表单对象。
- 在此表单中添加以下代码:
<Include>
<ObjectRef type='UserForm' name='Scalable Selection Library'/>
</Include>
- 选择 AdministratorFields 字段中的 accounts[Lighthouse].adminRoles 字段。
- 使用以下引用替换整个 accounts[Lighthouse].adminRoles:
<FieldRef name='scalableWaveset.adminRoles'/>
- 保存该对象。
随后编辑用户并选择“安全”选项卡时,Identity Manager 将显示自定义表单。单击 ... 时,将打开选择器组件并显示搜索字段。可以使用此字段来搜索以文本字符串开头的管理员角色,并将字段的值设置为一个或多个值。
要恢复表单,请通过“配置”>“导入交换文件”来导入 $WSHOME/sample/formlib.xml。
有关使用 objectSelector 模板来管理环境中具有很多对象的资源和角色的示例,请参见 sample/formlib.xml 中的可伸缩选择库。
- 对 TabPanel 组件的讨论现在包含 validatePerTab 属性的以下描述:(ID-15501)
由三个类组成:Menu、MenuBar 和 MenuItem。
Menu 包含以下属性:
MenuBar 包含以下属性:
MenuItem 包含以下属性:
可以在 MenuBar 或 MenuItem 上设置以下属性:
以下 XPRESS 示例创建带有两个选项卡的菜单。第二个选项卡包含两个子选项卡:
代码示例 Menu、MenuItem 和 MenuBar 组件实现
<Display class='Menu'/>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/main.jsp'/>
<Property name='title' value='Home' />
</Display>
</Field>
<Field>
<Display class='MenuBar' >
<Property name='title' value='Work Items' />
<Property name='URL' value='user/workItemListExt.jsp'/>
</Display>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/workItemListExt.jsp'/>
<Property name='title' value='Approvals' />
</Display>
</Field>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/otherWorkItems/listOtherWorkItems.jsp'/>
<Property name='title' value='Other' />
</Display>
</Field>
</Field>
ListEditor
呈现可编辑的字符串列表。
表 3 ListEditor 组件的属性
属性
描述
listTitle
(字符串)指定 Identity Manager 在 ListEditor 图形表示旁边放置的标签。
pickListTitle
(字符串)指定要在 picklist 组件上使用的标签。
valueMap
(映射)指定列表中值的显示标签映射。
allowDuplicates
(布尔型)值为 true,表示 Identity Manager 允许受管理的列表中出现重复项。
allowTextEntry
(布尔型)值为 true,± Identity Manager 将显示一个文本输入框和一个添加按钮。
fixedWidth
(布尔型)值为 true,表示组件应该具有固定的宽度(其行为与多重选择组件相同)。
ordered
(布尔型)值为 true,表示值的顺序很重要。
sorted
(布尔型)值为 true,表示应该在选择列表中对值进行排序。如果这些值是多值数据类型并且未进行排序,则 Identity Manager 还会为值列表进行排序。
pickValueMap
(列表或映射)指定选择列表中值的显示标签映射。
pickValues
(列表)指定 picklist 组件中的可用值。如果为 null,将不显示 picklist。
height
(整数)指定首选的高度。
width
(整数)指定首选的宽度。容器可以将其用作表单元格(在其中呈现此项目)的属性。
示例
选项卡式用户表单中的以下示例,展示了使用 ListEditor 显示类的表单字段:
<Field name='accounts[Sim1].Group'>
<Display class='ListEditor' action='true'>
<Property name='listTitle' value='stuff'/>
<Property name='allowTextEntry'>
<Boolean>true</Boolean>
</Property>
<Property name='ordered'>
<Boolean>true</Boolean>
</Property>
</Display>
<Expansion>
<ref>accounts[Sim1].Group</ref>
</Expansion>
</Field>
此代码片段创建了一个字段,客户可以在其中为用户添加组,或从用户删除组。
为 Identity Manager 登录页面启用自动完成功能
附录 A:表单和进程映射
Identity Manager 部署工具本节提供了 Identity Manager 部署工具文档的更正和补充内容:
第 1 章:使用 Identity Manager IDE
将版本 7.1 项目升级到版本 7.1 Update 1
本节介绍了将 Identity Manager 项目的 Identity Manager IDE 插件 7.1 版本升级到版本 7.1 Update 1(和更高版本)的“最佳实践”步骤。
注
本节中的说明仅对如何升级 Identity Manager IDE 插件版本进行了介绍, 并未介绍如何升级 Identity Manager,而这实际上是用户涉及最多的一个过程。
要升级当前的 Identity Manager 版本,请参阅 Identity Manager 升级所提供的说明。
以下 Identity Manager 项目文件是随着该项目升级到 Identity Manager 版本 7.1 Update 1 而进行更改的:
如果修改了上述任何文件,则必须手动合并 Identity Manager IDE 插件从版本 7.1 升级到版本 7.1 Update 1(或更高版本)后的更改。
本节描述了升级 Identity Manager 项目的 Identity Manager IDE 插件版本的“最佳实践”步骤。
注
本节中的步骤仅对如何升级 Identity Manager IDE 插件版本进行了介绍, 并未介绍如何升级 Identity Manager,而这实际上是用户涉及最多的一个过程。
例如,如果要将 7.1 版本 Identity Manager IDE 插件创建的项目与 7.1 Update 1 版本插件结合使用,请使用以下说明。
Identity Manager 版本仍将保留为 7.1,除非您使用 Identity Manager 升级中提供的说明进行升级。
此升级过程将假定项目已签入到源控制中,并将分两部分来执行操作步骤:
一个部署小组成员要执行的步骤
一个部署小组成员应该执行以下步骤:
- 关闭 NetBeans。
- 删除 .netbeans 目录。
- 安装新的 nbm。
- 启动 NetBeans。
- 打开项目。
将显示一则消息,通知您必须升级某些项目文件(如 build.xml 和 build-netbeans.xml),并且在您修改了其中任何文件后,该消息还提供需要合并的指示符。
- 请注意哪些文件具有需要合并的指示符,然后单击“是”。
将显示一条消息,从中可以了解升级已成功完成。
- 如果存在任何需要合并的文件,则需要手动合并这些文件。
每个文件的副本将被命名为 <filename>.bak,因此您可以将其与新文件版本进行比较,以确定需要合并的内容。
- 完成合并后,如果一切都已备份完毕并可正常工作,则需要将您更改或添加的所有文件签入到源控制中。
其他部署小组成员要执行的步骤
当某人升级了新的 Identity Manager IDE 7.1 Update 1 插件 nbm 文件并合并了所需的项目文件后,其他部署小组成员应该执行以下步骤:
使用 Profiler 解决性能问题Identity Manager 提供了 Profiler 实用程序,可以帮助您解决部署中遇到的表单、Java、规则、工作流以及 XPRESS 方面的性能问题。
表单、Java、规则、工作流以及 XPRESS 都会造成性能和伸缩问题。Profiler 将会分析表单和工作流的不同区域所消耗的时间,从而可以确定这些表单或工作流是否产生了性能和伸缩问题,如果出现问题,将会进一步确定这些对象的哪些部分出现了问题。
本节将介绍如何使用 Identity Manager Profiler,并提供了一个教程帮助您了解如何解决部署中存在的性能问题。信息通过以下方式进行组织:
概述
本节对 Identity Manager Profiler 的功能进行了概述。信息通过以下方式进行组织:
主要功能
可以使用 Profiler 实用程序来执行以下操作
Profiler 查找和管理源的方式
本节介绍了 Profiler 如何查找和管理以下 Identity Manager 对象的源:
对于表单、规则、工作流和 XPRESS 对象
在使用 Profiler 拍摄快照时,服务器会评估所有的性能分析数据并发现该数据所依赖的源。然后,服务器将从系统信息库中获取所有这些源,并将它们包含在快照中。因此,您可以确信显示在快照中的 Identity Manager 对象会准确地反映捕捉到该快照的那一刻的情况。
此过程会增加快照的大小,但相对来说,源大小实际上只是总大小的一小部分。因此,您可以将快照发送到 Sun 的客户支持部门,而不必单独发送源文件。
对于 Java 源
在拍摄 Java 源的快照时,客户机将下载该快照,然后仔细查看快照以便从项目中捕获所有引用的 Java 源。在保存快照时,客户机将压缩这些源并将其附加到快照的结尾处。
然后,在您查看快照并转至 Java 源时,客户机将首先检查快照的内容。如果客户机在该处找不到快照内容,则会检查项目的内容。此过程允许您发送包含性能分析数据(来自自定义 Java 代码和 Identity Manager 代码)的快照。
统计信息注意事项
以下各节包含评估 Profiler 提供的结果时要考虑的信息:
自用时间统计
要计算根节点的自用时间,Profiler 将从根节点的总时间中减去所有子节点的时间。
因此,未分析的子节点的时间会反映在根节点的自用时间中。如果根节点的自用时间很长,则应该查明原因。您可能没有分析适当的方法,因此导致您处理的位置不当。
例如,假设方法 A 调用方法 B。
方法 A 总耗时为 10 秒(这里总时间包括调用方法 B 的时间),并且调用方法 B 总耗时也为 10 秒。
如果分析了方法 A 和 B,则调用栈会反映出该信息。您将看到,方法 A 的自用时间为 0 秒,而方法 B 的自用时间为 10 秒(这 10 秒实际上是在方法 B 中花费的)。但是如果未分析方法 B,则只会看到调用方法 A 耗时 10 秒,并且 A 的自用时间为 10 秒。因此,您可能认为问题就是出在方法 A 中,而不是方法 B 中。
需特别指出的是,您在最初编译 JSP 期间,会注意到 JSP 的自用时间很长。如果您重置收集的结果,然后再重新显示该页,则自用时间将会显著减少。
构造函数调用
因为 Java 分析策略中存在某些限制,所以 this() 或 super() 的初始调用将显示为构造函数调用的同级调用,而不是子级调用。请参见以下示例:
class A
{
public A()
{
this(0);
}
public A(int i)
{
}
}
and:
class B
{
public static void test()
{
new A();
}
}
The call tree will look like this:
B.test()
-A.<init>(int)
-A.<init>()
Rather than this:
B.test()
-A.<init>()
-A.<init>(int)
守护线程
不要被表面上许多 Identity Manager 守护线程(如 ReconTask.WorkerThread.run() 或 TaskThread.WorkerThread.run())所耗费的大量时间所误导。其中大部分时间是在休眠(等待事件)中度过的。必须仔细研究这些情况,以了解这些线程在处理事件时实际使用的时间。
入门
本节对如何启动 Profiler 以及如何使用 Profiler 图形用户界面的各种功能进行了介绍。此信息分为以下几个部分:
准备工作
由于 Profiler 将耗费巨大的内存,因此您应该显著增加服务器和 Netbeans Java 虚拟机 (Java Virtual Machine, JVM) 的内存。
完成后,可以按下一节中所述的方法启动 Profiler。
启动 Profiler
可以使用以下任意方法来启动 Profiler:
启动 Profiler 时,会显示“Profiler 选项”对话框,您可以指定要使用的性能分析选项。
图 3 “Profiler 选项”对话框
有关设置这些选项的信息,请参见指定 Profiler 选项。
使用 Profiler
本节介绍了 Profiler 图形用户界面的功能以及如何使用这些功能。信息通过以下方式进行组织:
指定 Profiler 选项
“Profiler 选项”对话框由以下选项卡组成:
使用这些选项卡上的选项,可指明要对哪些对象进行性能分析,以及要显示在性能分析中的元素。
指定 Profiler 选项后,单击“确定”可启动 Profiler。根据项目配置,Profiler 将执行以下两项操作之一:
模式
“模式”选项卡提供了以下选项:
IDM 对象过滤器
“IDM 对象过滤器”选项卡提供了以下选项:
Java 过滤器
选择“Java 过滤器”选项卡可以执行以下操作:
Java 过滤器以方法模式的形式提供,它们采用根据规范的方法名称执行包含或排除操作的模式来表示。其中,规范的方法名称为:
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
下面列举了一些示例:
如有必要,可以通过适当修改 build.xml 中的以下行来分析其他 JAR。例如,
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}">
<fileset dir="${lighthouse-dir}/WEB-INF">
<include name="lib/idm*.jar"/>
<include name="classes/**/*.class"/>
</fileset>
</instrument>
默认情况下,该配置包含所有自定义类和大多数 Identity Manager 类。强制排除了一些 Identity Manager 类,这是因为启用这些类会中断 Profiler 的运行。
例如,会排除工作流、表单和 XPRESS 引擎中的类,否则在分析 Java 和 Identity Manager 对象时,Profiler 将会生成难以理解的快照。
请注意,Java 过滤器将提供比 IDM 对象过滤器更细的过滤粒度。因此,使用 Java 分析会显著增加执行时间的开销,从而使性能分析结果出现巨大的偏差。由于是解释而非编译 Identity Manager 对象,因此分析开销可以忽略不计。因此,举例来说,根本没有理由排除工作流 A 而包含工作流 B,等等。
其他
“其他”选项卡提供了以下选项:
- 删除执行时间为 0 的快照节点:
- Profiler 启动时自动打开浏览器:
- 在快照中包含 Java 源:
在这种情况下,您不希望包含 Identity Manager 源,因为包含它会生成非常大的快照。(有关详细信息,请参见 Profiler 查找和管理源的方式。)
使用 IDM Profiler 视图
"IDM Profiler" 视图(图 4)由以下区域组成:
图 4 "IDM Profiler" 视图
“当前项目”区域
“当前项目”区域包含一个下拉菜单,该菜单列出了所有的当前项目。使用此菜单可以选择要分析的项目。
“控制”区域
“控制”区域包含四个图标:
表 4 “控制”区域图标
图标
用途
![]()
启动 Identity Manager Profiler
启动 Profiler 并打开“Profiler 选项”对话框。
![]()
停止 Identity Manager Profiler
停止 Profiler。
![]()
重置收集的结果
重置截止到此刻您收集的所有分析结果。
![]()
修改性能分析
重新打开“Profiler 选项”对话框,以便您可以更改任何设置来修改当前的分析结果。
“状态”区域
“状态”区域会报告您是否与主机进行了连接,并提供有关 Profiler 启动、运行和停止的状态信息。
“性能分析结果”区域
“性能分析结果”区域包含两个图标:
表 5 “性能分析结果”区域图标
图标
用途
启动 Identity Manager Profiler
启动 Profiler 并打开“Profiler 选项”对话框。
![]()
重置收集的结果
重置截止到此刻您收集的所有分析结果。
“已保存的快照”区域
“已保存的快照”区域提供了所有已保存快照的列表。此外,还可以使用以下按钮来管理这些快照:
使用“快照视图”
打开快照时,结果会显示在位于 Identity Manager IDE 右上方的“快照视图”窗口中。
图 5 “快照视图”窗口
快照提供了几种数据视图,将在以下各节中进行介绍:
“调用树”视图
“调用树”视图(图 6)由一个树表组成,该树表显示了整个系统的调用计时和调用计数。
图 6 “调用树”视图示例
此树表包含三列:
- “调用树”列:列出了所有节点,其中顶层节点为下列项之一:
例如,如果查看 idm/login.jsp URL,则会看到 idm/login.jsp 的顶层条目。对于此条目,“时间”列中显示的数据表示单个或多个请求的总时间,“调用次数”列中显示的数据表示调用该页面的总次数。可以深入研究该数据,以了解是哪些调用耗用了这些时间。
注
“调用树”还包含“自用时间”节点。“自用时间”值表示该节点自身耗用的时间。(有关详细信息,请参见自用时间统计。)
- “时间”列:列出了从其父节点调用每个节点时所耗用的时间。将使用相对于父节点时间的百分比来表示。
- “调用次数”列:列出了从其父节点调用每个节点的次数。
“热点”视图
“热点”视图提供了节点的平面化列表,用于显示汇总调用计时(不考虑父节点)。
此视图包含以下列:
“反向跟踪”视图
“反向跟踪”视图提供了反向的调用栈,显示了从中调用每个节点的所有调用链。
可以使用这些统计信息来回答如下问题:如果我删除自此节点开始的特定调用链,将节省多少时间?
可以从其他任何快照视图中访问“反向跟踪”视图,方法是右键单击某个节点(称为根节点),然后从弹出式菜单中选择“显示反向跟踪”。
“被调用者”视图
“被调用者”视图提供了节点(称为根节点)的汇总调用树(不考虑其父调用链)。
如果存在一个问题区域,并且整个主调用树中的许多位置都调用了该区域,当您想查看该节点的整体性能分析时,这些统计信息将非常有用。
可以从其他任何快照视图中访问“被调用者”视图,方法是右键单击某个节点(称为根节点),然后从弹出式菜单中选择“显示被调用者”。
使用弹出式菜单选项
右键单击“调用树”视图或“热点”视图中的任意节点,将显示一个弹出式菜单,其中的选项如表 7 所述:
表 7 Profiler 弹出式菜单选项
菜单选项
描述
转至源
选择此选项可以查看 Java 方法、工作流、表单、规则或 XPRESS 所对应节点的 XML 源。有关此视图的详细信息,请参见 Profiler 查找和管理源的方式。
显示反向跟踪
选择此选项可以访问“反向跟踪”视图。有关此视图的详细信息,请参见“反向跟踪”视图。
显示被调用者
选择此选项可以访问“被调用者”视图。有关此视图的详细信息,请参见“被调用者”视图。
在“热点”视图中查找
选择此选项可以在“热点”视图中查找节点。有关此视图的详细信息,请参见“热点”视图。
“列表选项”>“排序”>
选择此选项可以看到以下选项
“列表选项”>“更改可视列”
选择此选项可以更改在“调用树”或“热点”列表中显示的列。
当显示“更改可视列”对话框时,您可以选择以下一个或多个选项:
搜索快照
使用位于“快照视图”窗口顶部的“搜索”图标
,可以在“调用树”视图或“热点”视图中按名称来搜索节点。
此外,还可以右键单击“调用树”视图或“热点”视图中的任意节点,然后从弹出式菜单中分别选择“在‘调用树’视图中查找”或“在‘热点’视图中查找”来搜索节点。
保存快照
Profiler 提供了几个选项来保存快照。有关这些选项的描述,请参见表 8:
表 8 “保存”图标
图标
用途
“在项目中保存快照”图标(位于“快照视图”窗口的顶部)
在项目的 nbproject/private/idm-profiler 目录中保存快照。Profiler 视图的“已保存的快照”部分会列出在项目中保存的快照。
![]()
“在外部保存快照”图标(位于“快照视图”窗口的顶部)
将快照保存到外部的任意位置。
![]()
“另存为”按钮(位于“已保存的快照”区域中)
将快照保存到外部的任意位置。
教程:性能问题疑难解答
Identity Manager 提供了一个教程 (profiler-tutorial.zip),可以帮助您了解如何使用 Profiler 来解决表单、Java 规则、工作流和 XPRESS 存在的问题。
第 1 步:创建 Identity Manager 项目
按照以下步骤创建 Identity Manager 项目:
- 选择“文件”>“新建项目”。
- 当显示“新建项目”向导时,指定以下内容,然后单击“下一步”:
- 填充“名称和位置”面板上的以下字段,然后单击“下一步”:
- 当显示“Identity Manager WAR 文件位置”面板时,输入 Identity Manager 7.1 Update 1 war 文件的位置。通常,此文件位于 waveset\images 目录中。
- 单击“下一步”转至“系统信息库设置”面板。
无需更改此面板上的默认设置,直接单击“完成”即可。当看到“生成成功”消息显示在“Identity Manager IDE 输出”窗口中时,就可以提取 Profiler 教程文件了。有关说明,请参见第 2 步:解压缩 Profiler 教程。
第 2 步:解压缩 Profiler 教程
在项目根目录中解压缩 profiler-tutorial.zip。提取的文件包括:
project root/custom/WEB-INF/config/ProfilerTutorial1.xml
project root/custom/WEB-INF/config/ProfilerTutorial2.xml
project root/src/org/example/ProfilerTutorialExample.java
project root/PROFILER_TUTORIAL_README.txt
现在就可以启动 Profiler 了。
第 3 步:启动 Profiler
启动 Profiler:
第 4 步:设置 Profiler 选项
注
有关所有不同 Profiler 选项的详细信息,请参见指定 Profiler 选项。
为实现本教程的教学目的,请指定以下 Profiler 选项:
- 在“模式”选项卡上,选择“Java 和 IDM 对象”以分析表单、Java、规则、工作流及 XPRESS 对象。
- 选择“Java 过滤器”选项卡。
使用以下步骤禁用除自定义 Java 类(本例中为 org.example.ProfilerTutorialExample)以外的所有 Identity Manager Java 类。
- 单击“确定”以运行 Profiler。
Profiler 完成处理后,系统会提示您登录。
- 输入密码 configurator,选中“记住密码”复选框,然后单击“确定”以继续。
- 当显示 Identity Manager 窗口时,请登录。
注
通常,您应以其他的用户身份登录到 Identity Manager,而不是再以配置者身份登录。您已经以配置者身份登录到 Profiler,Identity Manager 会话池仅允许一个用户具有一个条目。使用多个条目会导致会话池中断,并且可能造成性能分析结果出现偏差,出现更细化的性能问题。
但是,对于此简单示例,会话池没有出现任何问题,因此您可以使用 configurator/configurator 登录。
- 在 Identity Manager 中,选择“服务器任务”>“运行任务”,然后单击 "ProfilerTutorialWorkflow1"。
此教程可能需要一些时间进行响应。
- 尽管您现在可以拍摄快照,但您最好先重置结果、运行 Profiler、再次运行 Profiler,然后再拍摄快照。
注
最佳的做法是在拍摄快照之前运行几次 Profiler,以确保预备好所有缓存、编译好所有 JSP 等等。
通过运行几次 Profiler,您可以重点解决实际的性能问题。不适合应用此做法的唯一一种例外情况是:存在自动填充缓存方面的问题。
- Identity Manager IDE 会下载您的快照,并在窗口的右侧显示结果。
图 11 “调用树”结果
此区域为“调用树”视图。在“调用树”的顶部,可以看到 /idm/task/taskLaunch.jsp 及其“时间”列中列出的时间。该时间应该表示整个请求耗时六秒以上。
- 展开 /idm/task/taskLaunch.jsp 节点,会看到 ProfilerTutorialWorkflow1 耗时六秒。
- 展开 ProfilerTutorialWorkflow1 节点。请注意,activity2 耗时四秒,activity1 耗时两秒。
- 展开 activity2。
请注意,action1 耗时两秒,action2 耗时两秒。
- 展开 action1,请注意,<invoke> 也耗时两秒。
- 双击 <invoke> 以打开 ProfilerTutorialWorkflow1.xml,并突出显示以下行:
<invoke name='example' class='org.example.ProfilerTutorialExample'/>
您应看到调用 ProfilerTutorialExample 方法耗时两秒。
注
实际上,您浏览的是快照中捕获的 XML 源,而不是项目中的源。快照是完全自包含的。(有关详细信息,请参见 Profiler 查找和管理源的方式。)
- 选择 "CPU:<date><time>" 选项卡以返回到您的快照。
- 展开 <invoke> 节点,请注意,Profiler 在 Java ProfilerTutorialExample.example() 方法中耗时两秒。
- 双击该方法的名称以打开 ProfilerTutorialExample.java 源,并突出显示以下行:
Thread.sleep(2000);
这就是问题所在! 此方法包含一个两秒的线程休眠。
- 如果返回到“调用树”,则可以看到所有耗时两秒的路径都通向此方法。(您应看到三个路径,共耗时六秒。)
- 选择“热点”选项卡(位于“调用树”区域的底部)以打开“热点”视图。请注意,ProfilerTutorialExample.example() 的自用时间总计为六秒。
(有关“热点”视图的详细信息,请参见“热点”视图。)
- 右键单击 ProfilerTutorialExample.example(),然后从弹出式菜单中选择“显示反向跟踪”。
将在该区域的底部显示一个新的“反向跟踪”选项卡。
- 展开“反向跟踪”选项卡上的 ProfilerTutorialExample.example() 节点,会看到从三个位置调用了此方法,并且从每个位置调用此方法时都耗时两秒。
(有关“反向跟踪”视图的详细信息,请参见“反向跟踪”视图。)
- 单击“在项目中保存快照”图标
以保存您的快照并将其关闭。
如果查看 "IDM Profiler" 选项卡上的“已保存的快照”部分,则会看到快照。(您可能需要向下滚动才能看到。)
图 12 已保存的快照列表
- 选择已保存的快照,然后单击“打开”以重新打开该快照。
- 再次关闭该快照。
对工作流 ManualAction 使用 Profiler
本教程的下一部分将说明如何分析工作流 ManualAction。
- 在 Identity Manager 中,选择“服务器任务”>“运行任务”,然后单击 "ProfilerTutorialWorkflow2"。
稍等片刻,将会显示一个空表单。
- 单击“保存”,将会显示进程图。
- 再次选择“服务器任务”>“运行任务”。
- 返回到 Identity Manager IDE "IDM Profiler" 视图,然后单击“性能分析结果”部分中的“重置收集的结果”图标。
- 接下来,单击 Identity Manager 中的 "ProfilerTutorialWorkflow2"。
- 当再次显示空表单时,单击“保存”。
- 在 "IDM Profiler" 视图中,单击“拍摄快照”。
几秒钟后,快照会显示在“调用树”区域中。您应看到 /idm/task/workItemEdit.jsp 耗时六秒以上。(此结果对应于工作流中的手动操作。)
- 展开 /idm/task/workItemEdit.jsp 节点,请注意,运行 ManualAction 表单中的所有派生共耗时六秒。
- 展开 Derivation、displayNameForm、variables.dummy 及 <block> 节点。
图 13 ProfilerTutorialWorkflow2 快照结果
您应看到 <block> 耗时六秒,其中 Profiler 在三次调用 ProfilerTutorialExample.example() 方法时各耗时两秒。
- 可以双击 <block> 查看源。
Identity Manager IDE 常见问题解答 (FAQ)
此常见问题解答回答了与使用 Identity Manager Integrated Development Environment (Identity Manager IDE) 相关的一些常见问题。该信息将分为以下几个部分:
使用 NetBeans
问:我应该使用哪个版本的 Netbeans?
答:应使用 Identity Manager 产品文档(针对您所使用的 Netbeans 插件版本提供)中提及的 Netbeans 版本。
问:Netbeans 插件以前工作正常,但在我进行了一些操作之后就不再正常工作了。产生此问题的原因是什么?
答:此问题通常是由 .netbeans 目录中的损坏文件引起的。通常来说,删除 .netbeans 目录,然后重新安装 NetBeans 插件就可解决此问题。(删除 .netbeans 目录可以有效地卸载 NetBeans 插件。虽然您会丢失所有的用户设置,但是项目内容是安全的。)
具体步骤如下所示:
使用项目
问:生成并运行项目花费了很长的时间,Identity Manager IDE 似乎在复制大量的文件。产生此问题的原因是什么?
答:此问题可能是由以下原因引起的:
问:现在我已经创建了 Identity Manager 项目,应将哪些文件签入到源控制中?
答:有关信息,请参见 Identity Manager IDE README.txt 中的“CVS 最佳实践”一节。
问:在 CVS 中使用项目管理的最佳实践是什么?
答:有关信息,请参见 Identity Manager IDE README.txt 中的“CVS 最佳实践”一节。
问:何时将对象导入到系统信息库中?
答:有关信息,请参见使用系统信息库。
问:如何将新的 JAR 添加到项目中?
答:请参见 Identity Manager IDE README.txt 中的“如何添加新的 JAR 依赖关系”一节。
使用系统信息库
问:应将哪些系统信息库用于沙箱库?
答:将嵌入式系统信息库用于沙箱中 -- 特别是在使用 Identity Manager 7.1(或更高版本)时(它会提供一个 HsSQL 系统信息库)。如果不使用嵌入式系统信息库,则会丧失一些功能。
有关详细信息,请参阅 Identity Manager IDE README.txt 中的“使用系统信息库”一节。
问:何时会自动导入对象?
答:必须配置 Identity Manager IDE 才能自动导入对象。
具体步骤如下所示:
问:上载对象最有效的方式是什么?
答:使用以下方法之一来上载修改过的对象:
上述两种方法都能将对象直接上载到服务器,因此不会出现缓存延迟问题,并且速度要比使用“运行项目”或“调试项目”快得多。无论使用什么系统信息库,都能使用“上载对象”功能。
使用 Identity Manager IDE 调试器
问:Identity Manager IDE 调试器速度很慢。产生此问题的原因是什么?
答:提高调试器的性能:
问:我无法在调试器中设置断点。产生此问题的原因是什么?
答:在以下情况中将无法设置断点:
问:我在调试器中设置了断点,但在该断点处并未暂停。产生此问题的原因是什么?
答:请检查以下两项内容:
使用规则
问:在 Netbeans 中开发规则时,为何设计模式不可用于规则库?
答:可以从“项目”视图的资源管理器树中获取设计模式功能。使用以下步骤:
第 4 章:开发适配器
Identity Manager 调优、故障排除和错误消息本节提供了有关 Sun Java System Identity Manager 调优、故障排除和错误消息的新信息和文档更正内容。
- 某些任务已从适配器移至任务软件包。如果已对以下任何任务启动跟踪,或者已自定义引用这些软件包的任务定义,请更新这些路径。
旧软件包名称
新软件包名称
com.waveset.adapter.ADSyncFailoverTask
com.waveset.task.ADSyncFailoverTask
com.waveset.adapter.ADSyncRecoveryCollectorTask
com.waveset.task.ADSyncRecoveryCollectorTask
com.waveset.adapter.SARunner
com.waveset.task.SARunner
com.waveset.adapter.SourceAdapterTask
com.waveset.task.SourceAdapterTask
- 调用计时器功能和跟踪功能现在是相互关联的,只有在启用跟踪功能时才能收集调用计时统计信息。(ID-17106)
显示计时
“显示计时”页提供了方法及其汇总的调用计时器统计信息(没有按调用者细分)列表,这有助于您追踪特定方法和已调用 API 的瓶颈。
可以使用此页上的选项开始计时和跟踪、停止计时和跟踪、清除计时统计信息,以及导入或导出调用计时器度量。此外,单击任意方法名称可以查看它们调用的方法。
Identity Manager Service Provider Edition 部署本节提供了有关 Sun Java System Identity Manager SPE 部署的新信息和文档更正内容。
第 5 章:Identity Manager SPE 中的其他对象
Identity Manager Identity Manager SPE 现在支持链接关联和链接确认规则。
链接关联规则
调用者可以使用 linkTargets IDMXUser 视图选项来指定应作为链接目标的资源的列表。使用表单时,可以将此列表作为具有相同名称的表单属性提供。在登入 IDMXUser 视图时,表单属性将被同化为视图选项。
链接关联规则选择用户可能拥有的资源帐户。如果给定用户视图,链接关联规则将返回身份、身份列表或选项映射。
如果规则返回选项映射,则视图处理程序使用该映射来查找资源帐户,并获取满足这些选项的身份列表。例如,可以使用 getResourceObjects FormUtil 方法的 searchFilter 选项,将搜索过滤器传递给 LDAP 资源适配器。
链接关联规则必须将 authType 属性设置为 SPERule,并将 subtype 设置为 SUBTYPE_SPE_LINK_CORRELATION_RULE。
链接确认规则
链接确认规则可将任何资源帐户从链接关联规则选择的潜在帐户列表中清除。如果给定用户视图和候选资源帐户列表,链接确认规则将从候选列表中至多选择一个资源帐户。用户视图显示在“视图”路径下面;候选项列表显示在“候选项”路径下面。
如果链接关联规则选择的资源帐户不超过一个,则链接确认规则是可选的。
链接确认规则必须将 authType 属性设置为 SPERule,并将 subtype 设置为 SUBTYPE_SPE_LINK_CONFIRMATION_RULE。
LighthouseContext API
SessionFactory 类中添加了几种简便方法。应按如下方式更新第 16 页上的表。
连接类型
方法
描述
本地匿名
getServerInternalContext()
返回完全授权的上下文,而不进行任何验证。
本地已验证
getSPESession(String user, EncryptedData password)
为 Service Provider 用户界面构造会话。
本地已验证
getSPESession(Map credentials)
为 Service Provider 用户界面构造会话。映射指定用户的凭证,其中包括用户和密码密钥的值。
本地预验证
getSPEPreAuthenticatedSession(String user)
为 Service Provider 用户界面构造预验证的会话。
远程匿名
不适用
只能通过 SPML 提供这种连接类型。
远程已验证
getSession(URL url, String user, EncryptedData pass)
返回已验证的会话。
本地化范围以前,Identity Manager 不对资源对象和函数进行本地化,主要原因是这些对象和函数大多数都是在 Identity Manager 初始化期间加载(通过 init.xml)的样例,并且对象类型的属性在实际客户部署之间可能会有所不同(取决于自定义级别)。以下区域列表将有可能出现英文内容:(ID-16349)
使用 helpToolIdentity Manager 6.0 发行版添加了一个新功能,此功能使您可以搜索 HTML 格式的联机帮助和文档文件。此搜索引擎基于 SunLabs 的 "Nova" 搜索引擎技术。
通常分两个阶段来使用 Nova 引擎:索引和检索。在索引阶段,分析输入文档并创建检索阶段使用的索引。在检索阶段,可获取一些包含查询词所在的上下文的“段”。段检索进程需要提供原始 HTML 文件,因此这些文件必须存在于搜索引擎可访问的文件系统中。
helpTool 是一个 Java 程序,它执行两个基本功能:
从命令行执行 helpTool,如下所示:
$ java -jar helpTool.jar
usage: HelpTool
-d Destination directory
-h This help information
-i Directory or JAR containing input files, no wildcards
-n Directory for Nova index
-o Output file name
-p Indexing properties file
重新生成/重新创建联机帮助索引
用于联机帮助的 HTML 文件封装在 JAR 文件中。必须将这些文件提取到一个目录下以用于搜索引擎。使用以下步骤:
- 将 helpTool 分发解压缩至临时目录。(详细信息 TBD)
在此示例中,我们将文件提取到 /tmp/helpTool。
- 在 UNIX shell 或 Windows 命令窗口中,将此目录更改为 Identity Manager 应用程序在您的 Web 容器中部署的位置。
例如,Sun Java System Application Server 的目录可能如下所示:
/opt/SUNWappserver/domains/domain1/applications/j2ee-modules/idm
- 将当前工作目录更改为 help/ 目录。
- 收集用于命令行参数的以下信息:
- 运行以下命令:
$ java -jar /tmp/helpTool/helpTool.jar -d html/help/en_US -i ../
WEB-INF/lib/idm.jar -n index/help -o help_files_help.txt -p index/index.propertiesExtracted 475 files.
[15/Dec/2005:13:11:38] PM Init index/help AWord 1085803878
[15/Dec/2005:13:11:38] PM Making meta file: index/help/MF: 0
[15/Dec/2005:13:11:38] PM Created active file: index/help/AL
[15/Dec/2005:13:11:40] MP Partition: 1, 475 documents, 5496 terms.
[15/Dec/2005:13:11:40] MP Finished dumping: 1 index/help 0.266
[15/Dec/2005:13:11:40] IS 475 documents, 6.56 MB, 2.11 s, 11166.66 MB/h
[15/Dec/2005:13:11:40] PM Waiting for housekeeper to finish
[15/Dec/2005:13:11:41] PM Shutdown index/help AWord 1085803878重新生成/重新创建文档索引
使用以下步骤重新生成或重新创建文档索引:
- 将 helpTool 分发解压缩至临时目录。(详细信息 TBD)
在此示例中,我们将文件提取到 /tmp/helpTool。
- 在 UNIX shell 或 Windows 命令窗口中,将此目录更改为 Identity Manager 应用程序在您的 Web 容器中部署的位置。
例如,Sun Java System Application Server 的目录可能如下所示:
/opt/SUNWappserver/domains/domain1/applications/j2ee-modules/idm
- 将当前工作目录更改为 help/ 目录。
- 收集用于命令行参数的以下信息:
- 运行以下命令:
$ java -jar /tmp/helpTool/helpTool.jar -d html/docs -i ../doc/HTML/en_US -n index/docs -o help_files_docs.txt -p index/index.properties
Copied 84 files.
Copied 105 files.
Copied 1 files.
Copied 15 files.
Copied 1 files.
Copied 58 files.
Copied 134 files.
Copied 156 files.
Copied 116 files.
Copied 136 files.
Copied 21 files.
Copied 37 files.
Copied 1 files.
Copied 13 files.
Copied 2 files.
Copied 19 files.
Copied 20 files.
Copied 52 files.
Copied 3 files.
Copied 14 files.
Copied 3 files.
Copied 3 files.
Copied 608 files.
[15/Dec/2005:13:24:25] PM Init index/docs AWord 1252155067
[15/Dec/2005:13:24:25] PM Making meta file: index/docs/MF: 0
[15/Dec/2005:13:24:25] PM Created active file: index/docs/AL
[15/Dec/2005:13:24:28] MP Partition: 1, 192 documents, 38488 terms.
[15/Dec/2005:13:24:29] MP Finished dumping: 1 index/docs 0.617
[15/Dec/2005:13:24:29] IS 192 documents, 14.70 MB, 3.81 s, 13900.78 MB/h
[15/Dec/2005:13:24:29] PM Waiting for housekeeper to finish
[15/Dec/2005:13:24:30] PM Shutdown index/docs AWord 1252155067