6.4 通过 iManager 使用 XML 编写权利

为了更好地了解权利中的内容,可以查看已启用权利的预配置驱动程序 Active Directory (AD) 中的权利和策略。 其中包括检查 Novell 的权利 DTD(文档类型定义),并查看根据 DTD 编写权利的 XML 示例。

本节包括:

6.4.1 启用权利后 Active Directory 驱动程序添加的内容

启用权利的 AD 驱动程序的结构发生以下改变:

  • 将 DirXML-EntitlementRef 特性添加到驱动程序过滤器中。 DirXML-EntitlementRef 特性允许驱动程序过滤器监听权利活动。
  • 创建用户帐户权利。 用户帐户权利授予或取消用户在 Active Directory 中的帐户。 授予帐户后,即为用户提供了一个已启用的登录帐户。 取消帐户后,登录帐户会被禁用或删除,具体取决于驱动程序的配置方式。
  • 创建组成员资格权利。 组权利授予或取消 Active Directory 的组中的成员资格。 该组必须与 Identity Vault 中的组相关联。 取消成员资格后,会从该组中去除该用户。 组成员资格权利不在发布者通道上实施;如果通过某些外部工具将用户添加到 Active Directory 的受控组中,该用户将不会被驱动程序去除。 此外,如果是从用户对象中去除权利,而不是简单地将其取消,AD 驱动程序将不进行任何操作。
  • 创建 Exchange 邮箱权利。 组权利授予或取消 Microsoft Exchange 中用户的 Exchange 邮箱。
  • 将权利信息添加到多项策略中。

以下策略中包含可以使权利正常发挥作用的附加规则:

  • 输入转换(驱动程序级别)。 该策略中的“检查组成员资格权利添加关联的目标”规则可检查组成员资格权利“添加关联”的目标。 在 Active Directory 中,成功创建用户后,才能处理指派给该用户的组成员资格权利。 添加关联发出信号,说明 Active Directory 中的驱动程序已创建了对象。 如果该对象也被标记为需进行组权利处理,则会立即执行处理工作。
  • 事件转换(发布者通道)。 该策略中的“不允许删除用户帐户”规则不允许在 Identity Vault 中删除用户帐户。 使用用户帐户权利时,被管理的用户帐户由 Identity Vault 中的权利进行控制。 删除 Active Directory 中的帐户不会删除 Identity Vault 中的控制对象。 将来对 Identity Vault 中的对象进行更改或合并操作可能导致在 Active Directory 中重新创建该帐户。
  • 命令(订购者通道)。 命令策略包含以下与权利有关的规则:
    • “用户帐户权利更改(删除选项)”规则。 此用户帐户权利在 Active Directory 中授予用户一个已启用的帐户。 取消此项权利会禁用或删除 Active Directory 帐户,具体操作取决于取消帐户权利 全局变量所选的值。 更改权利并选择了“删除”选项时,将执行此规则。
    • “用户帐户权利更改(禁用选项)”规则。 此用户帐户权利在 Active Directory 中授予用户一个已启用的帐户。 取消此项权利会禁用或删除 Active Directory 帐户,具体操作取决于取消帐户权利 全局变量所选的值。 更改权利并选择了“禁用”选项时,将执行此规则。
    • “检查对授予或取消的组成员资格的用户修改”规则。
    • “检查对授予或取消的 Exchange 邮箱的用户修改”规则。
  • 匹配(订购者通道)。 以下为帐户权利: 该策略的“不要匹配现有的帐户”规则。 使用 Identity Manager 用户应用程序中的用户帐户权利或使用基于职能的权利时,通过授予或取消该权利即可创建和删除(或禁用)帐户。 如果在 Active Directory 中未对用户授权帐户,默认策略将不匹配 Active Directory 中现有的帐户。 若要将权利策略应用于 Active Directory 中的匹配帐户,请修改或去除此规则。 这可能导致删除或禁用 Active Directory 帐户。
  • 创建(订购者通道)。 创建策略以下与权利有关的规则:
    • 帐户权利: 未授予权利时阻止帐户创建。 使用 Identity Manager 用户应用程序中的用户帐户权利或使用基于职能的权利时,仅为特别授予此帐户权利的用户创建帐户。 如果未授予此权利,该规则将禁止创建用户帐户。
    • 如果未禁用登录则启用 Identity Vault 帐户。
    • 添加之后准备检查组权利。在添加完成之后处理组权利,因为添加的对象只有存在才能被添加到组中。 添加操作以操作属性为标志,添加操作处理完成时将在输入转换中检查此属性。
    • 添加之后发送需要检查 Exchange 权利的信号。
    • 将用户名映射到 Windows 登录名称。 如果将 userPrincipalName 配置为遵循 eDirectory 用户名,请将 userPrincipalName 设置为 eDirectory 对象名称加上 Active Directory 的域名。

在 iManager 中执行以下步骤,可以查看每个策略的实际 XML 代码:

  1. 选择“Identity Manager”>“Identity Manager 概述”。
  2. 浏览该驱动程序所在的驱动程序集,并单击“搜索”。
  3. 在“Identity Manager 概述”页中,选择显示出的驱动程序集中的驱动程序对象。
    选择驱动程序
  4. 双击驱动程序集中的驱动程序,调出驱动程序页。 单击位于驱动程序中央的“查看所有策略”图标(红线圈住的部分)。
    选择查看所有策略
  5. 从“显示所有策略”屏幕中选择了一项策略后,即可查看构成该策略的条件和操作。
    查看策略规则
  6. 要查看该策略的实际 XML 代码,请从下拉菜单(此菜单为 Identity Manager 策略的默认菜单)中选择“编辑 XML”。 有关创建和编辑策略的信息,请参见《策略构建器和驱动程序自定义指南》,以及针对特定驱动程序构建策略的 Identity Manager 驱动程序指南
  7. 要查看已启用权利的预配置驱动程序(示例为 Active Directory)中提供的权利,请遵循第 1 步到第 4 步。同时请选择此驱动程序中央的“查看所有权利”图标(红线圈住的部分)。
    查看所有权利
  8. 在“管理权利”页上,单击权利名称,在 XML 查看器中调出此权利。 要编辑权利的代码,请单击“启用 XML 编辑”。

已启用权利的 Active Directory 驱动程序具有以下三个权利: 用户帐户、组和 Exchange 邮箱。

图 6-1 AD 驱动程序中的权利

可以在部分 6.4.6, 权利示例,协助创建个人权利中查看这些作为编写样本的权利的 XML 代码。

6.4.2 使用 Novell 的权利文档类型定义 (DTD)

在已启用权利的驱动程序上具有一些预定义的权利。 可以直接使用这些权利,也可以在 iManager 或 Designer 中创建自己的权利。 若要创建自己的权利,可用以下 Novell 权利 DTD 作为创建权利的示例。

此 DTD 的解释还附带有四个示例,来说明如何以此 XML 格式通过 iManager 编写权利。 如果不想在 XML 格式上伤太多脑筋,可以使用 Designer 中的“权利向导”,以一种更简单的方式创建权利。

Novell 的权利 DTD

<!-*****************************************************************-> <!-- DirXML Entitlements DTD <!-- Novell Inc. <!-- 1800 South Novell Place <!-- Provo, UT 84606-6194 <!-- Version=1.0.0 <!-- Copyright 2005 Novell, Inc. All rights reserved --> <!--************************************************************* --> <!-- Entitlement definition stored in the XmlData attribute of a DirXML-Entitlement object. --> <!ELEMENT entitlement (values?)> <!ATTLIST entitlement conflict-resolution (priority | union) "priority" display-name CDATA #REQUIRED description CDATA #REQUIRED > <!ELEMENT values (query-app | value+)?> <!ATTLIST values multi-valued (true | false) "true" > <!ELEMENT value (#PCDATA)> <!ELEMENT query-app (query-xml, result-set)> <!ELEMENT query-xml ANY> <!ELEMENT result-set (display-name, description, ent-value)> <!ELEMENT display-name(token-attr | token-src-dn | token-association)> <!ELEMENT ent-value (token-association | token-src-dn | token-attr)> <!ELEMENT description (token-association | token-src-dn | token-attr)> <!ELEMENT token-association EMPTY> <!ELEMENT token-attr EMPTY> <!ATTLIST token-attr attr-name CDATA #REQUIRED > <!ELEMENT token-src-dn EMPTY> <!-- Entitlement reference stored in the DirXML-EntitlementRef attribute 	of a DirXML-EntitlementRecipient or a DirXML-SharedProfile object. --> <!ELEMENT ref (src?, id?, param?)> <!ELEMENT param (#PCDATA)> <!ELEMENT id (#PCDATA)> <!ELEMENT src (#PCDATA)> <!-- Entitlement result stored in the DirXML-EntitlementResult attribute of a DirXML-EntitlementRecipient object. --> <!ELEMENT result(dn, src, id?, param?, state, status, msg?,timestamp)> <!ELEMENT dn (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT status (#PCDATA)> <!ELEMENT msg ANY> <!ELEMENT timestamp (#PCDATA)> <!-- Cached query results stored in the DirXML-SPCachedQuery attribute of a DirXML-Entitlement object. --> <!ELEMENT items (item*)> <!ELEMENT item (item-display-name?, item-description?, item-value)> <!ELEMENT item-display-name (#PCDATA)> <!ELEMENT item-description (#PCDATA)> <!ELEMENT item-value (#PCDATA)> <!-- Representation of a DirXML-EntitlementRef within the DirXML Script and within the operation-data of an operation in an XDS document. --> <!ELEMENT entitlement-impl (#PCDATA)> <!ATTLIST entitlement-impl name CDATA #REQUIRED src CDATA #REQUIRED id CDATA #IMPLIED state (0 | 1) #REQUIRED src-dn CDATA #REQUIRED src-entry-id CDATA #IMPLIED >

6.4.3 权利 DTD 的说明

权利 DTD 分为五部分: 定义、参照、结果、已超速缓存的查询和内部参照信息。 标题仅为可选的注释。 在 DTD 中,权利定义的标题为:

<!-- Entitlement definition stored in the XmlData attribute of a DirXML-Entitlement object. -->

标题后跟要素 (ELEMENT) 和特性列表 (ATTLIST)。 以下为权利定义标题下各要素和特性的详细说明,这些标题是创建权利时需注意的主标题。

<!ELEMENT entitlement (values?)>

根级别要素为 <entitlement>,它包含一个单一可选的子 <values> 要素。 后面为特性列表,其中包括冲突解析、显示名称和说明。 冲突解析使用 Priority 或 Union 特性值。

conflict-resolution (priority | union) "priority"

基于职能的权利使用冲突解析确定有值权利多次应用于同一对象时将发生的情况。 例如,假设用户 U 是权利策略 A 和权利策略 B 的一个成员,这两个策略均参照同一个有值权利 E,但值集却不相同。 权利策略 A 的权利 E 具有值(a、b、c)。 权利策略 B 的权利 E 具有值集(c、d、e)。

冲突解析特性可决定用户 U 将应用哪组值。如果设置为 union,则将两组值(a、b、c、d、e)都赋予用户 U。 如果设置为 priority,用户 U 仅能获取一组值,具体获取哪组值取决于哪个权利策略优先级更高。

如果是单值权利,则必须通过优先级解决冲突,因为合并值可能导致同时应用多个值。 目前基于职能的权利使用此特性,将来工作流程权利也可能使用它。

display-name CDATA #REQUIRED description CDATA #REQUIRED

权利的文字名称并非权利必须显示的内容。 Display-name(显示名称)和 Description(说明)特性用于终端用户的显示。 (在 Designer 中,可选择使用权利的显示名称而不使用权利的实际名称。)

<!ELEMENT values (query-app | value+)?> <!ATTLIST values multi-valued (true | false) "true"

<values> 要素是可选的,表示某权利有值。 如果不使用此要素,则意味着权利无值。 有值权利的一个示例是授予分发列表的权利。 无值权利的一个示例是在应用程序中授予帐户的权利,例如 Active Directory 驱动程序提供的用户帐户权利。

有值权利的值有以下三个来源。 一个来源为外部应用程序(由 <query-app> 要素指定)。 另一个来源是列举值的预定义列表(一个或多个 <value> 要素)。 第三个来源是权利客户程序(不含子 <value><values> 要素)。 这些示例有助于说明值的工作方式。

有值的权利可能为单值或多值,默认为多值。 权利客户程序有责任实施此限制。

<!ELEMENT value (#PCDATA)>

权利值为未键入的字符串。

<!ELEMENT query-app (query-xml, result-set)>

如果这些值来自外部应用程序(例如电子邮件分发列表),则必须通过 < query-xml> 要素指定应用程序查询, 并通过 <result-set> 要素抽取查询结果。 在示例 2: 应用程序查询权利: 外部查询中有两个示例。

<!ELEMENT query-xml ANY>

XML 查询为 XDS 格式。 <query-xml> 命令用于从已连接应用程序中查找和读取对象。 DirXML 规则和对象迁移等的功能取决于驱动程序对查询命令的实施情况。 有关 XML 查询的更多信息,请参见有关查询的 Novell 开发者文档

<!ELEMENT result-set (display-name, description, ent-value)> <!ELEMENT display-name(token-attr | token-src-dn | token-association)> <!ELEMENT ent-value (token-association | token-src-dn | token-attr)> <!ELEMENT description (token-association | token-src-dn | token-attr)> <!ELEMENT token-association EMPTY> <!ELEMENT token-attr EMPTY> <!ATTLIST token-attr attr-name CDATA #REQUIRED

可使用结果集要素协助解释外部应用程序查询的结果。 存在三条相关的数据: 值的显示名称(display-name 子要素)、值的说明(description 子要素)以及未显示的权利文字值(ent-value 子要素)。

令牌要素 <token-src-dn><token-association><token-attr> 为 XPATH 表达式的实际占位符,该表达式抽取了 src-dn 特性值、关联值或 XDS 格式的 XML 文档中分别出现的任意特性值。 DTD 假定查询结果为 XDS 格式。

DTD 中的其它标题

权利 DTD 中的其余权利标题可提供不同的功能,但并非创建权利时需关注的项目。

<!-- Entitlement reference stored in the DirXML-EntitlementRef attribute of a DirXML-EntitlementRecipient or a DirXML-SharedProfile object. -->

储存在 DTD 权利参照部分的信息指向权利对象。 该信息由管理代理置于此处(例如,基于职能的权利驱动程序,Entitlement.xml;或批准流程驱动程序,UserApplication.xml)。 这是一个触发事件,用于在已连接系统中触发一项操作。 无需对此标题下的 DTD 进行任何操作,但可以使用此信息确保正在参照此权利对象。

<!-- Entitlement result stored in the DirXML-EntitlementResult attribute of a DirXML-EntitlementRecipient object. -->

权利结果部分报告了是否授予或取消权利的结果。 该信息包括此事件的情形和状态,以及授予或取消事件的时间(通过时戳)。 无需对此标题下的要素和特性进行任何操作。

<!-- Cached query results stored in the DirXML-SPCachedQuery attribute of a DirXML-Entitlement object. -->

权利查询部分包含从外部应用程序搜集到的权利值。 如果权利客户程序需要显示此信息,则可以再次使用此信息。 这些值储存在权利对象的 DirXML-SPCachedQuery 特性中。 无需对此标题下的要素和特性进行任何操作。

<!-- Representation of a DirXML-EntitlementRef within the DirXML Script and within the operation-data of an operation in an XDS document. -->

由于 DTD 定义了多个文档的值,因此 EntitlementRef 部分实际上不是权利定义的一部分。 无需对此标题下的要素和特性进行任何操作。

6.4.4 通过 Designer 创建权利

虽然部分 6.4.5, 在 iManager 中创建和编辑权利中的示例显示了编写权利的实际 XML 代码,但编写权利更便捷的方法是使用 Identity Manager 附带的 Designer 实用程序。 将 Identity Manager 驱动程序添加到 Designer 的建模程序中的 Identity Vault 后,即可在大纲视图中右键单击该驱动程序,并选择“添加权利”。 “权利向导”会提示您指定所需的权利类型、之后协助您逐步创建权利。

有关使用“权利向导”的更多信息,请参见《Designer for Identity Manager 3:管理指南》。

6.4.5 在 iManager 中创建和编辑权利

虽然建议使用 Designer 中的“权利向导”创建权利,但也可以通过 iManager 创建权利。

  1. 选择 Identity Manager 实用程序标题下的“创建权利”选项。
  2. 在“创建权利”页中,键入权利的名称,然后使用“对象浏览器”查找该权利所属的 Identity Manager 驱动程序对象。
    创建权利
  3. 如果选中“定义附加属性”,则出现“XML 编辑器”页,可在其中定义此权利的要素。
    定义权利
  4. 选中“启用 XML 编辑”,将要素添加到权利中。

注:最好不要更改权利名称。 如果随后更改权利名称,还需要更改实施此权利的策略中的所有参照。 权利名称储存在此策略内的 Ref 和 Result 特性中。

6.4.6 权利示例,协助创建个人权利

可以创建两种类型的权利: 无值和有值。 有值权利可从外部查询、管理员定义的列表获取值,或获取自由格式的值。 以下是可以创建的四类权利的示例。

注:如果看到一行代码前没有小于号 (<),则意味着这行代码已换行,而信息通常显示在一行代码中,而不是两行(或三行)。 另请记住,除了帐户权利,其余权利只是可创建的各类有值权利的示例。

示例 1: 帐户权利: 无值

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="priority" description="This is an Account Entitlement" display-name="Account Entitlement"/>

在此示例中,无值权利的名称为 Account。 接下来是默认设置为 Priority 的冲突解析行,在大多数情况下,这意味着如果基于职能的权利使用该权利,该值将设置为具有优先级的 RBE。 (但是,由于这是无值权利的示例,将不应用有值设置。) 权利说明为 This is an Account Entitlement,且显示名称为 Account Entitlement。 该信息为创建帐户权利所需的所有内容,随后还可以使用它授予应用程序中的帐户。

已启用权利的 Active Directory 驱动程序具有用户帐户权利,Active Directory 使用该权利授予或取消用户帐户。

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The User Account entitlement grants or denies an account in Active	Directory for the user. When granted, the user is given an enabled logon account.	When revoked, the logon account is either disabled or deleted depending on how the drive is configured."	display-name="User Account Entitlement" name="UserAccount"> </entitlement>

在此示例中,冲突解析为 Union,允许权利合并所赋的值。 (再次重申,有值设置不能应用于无值权利。) “说明”字段解释了此权利的用途以及创建原因。 将来对此权利进行修改时,该信息将非常有用。 此权利的实际名称为 UserAccount,而 <display-name> 在管理代理中显示为 User Account Entitlement。

示例 2: 应用程序查询权利: 外部查询

已启用权利的 Active Directory 驱动程序中包含的组权利和 Exchange 邮箱权利提供了应用程序查询的示例。 如果需要已连接系统提供外部信息执行事件,请使用此权利类型。

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The Group Entitlement grants or denies membership in a group in Active Directory. The group must be associated with a group in the Identity Vault. When revoked, the user is removed from the group. The group membership entitlement is not enforced on the publisher channel: If a user is added to a controlled group in Active Directory by some external tool, the user is not removed by the driver. Further, if the entitlement is removed from the user object instead of being simply revoked, the driver takes no action."   display-name="Group Membership Entitlement" name="Group"> <values> <query-app> <query-xml> <nds dtd-version="2.0"> <input> <query class-name="Group" scope="subtree"> <search-class class-name="Group"/> <read-attr attr-name="Description"/> </query> </input> </nds> </query-xml> <result-set> <display-name> <token-src-dn/> </display-name> <description> <token-attr attr-name="Description"/> </description> <ent-value> <token-association/> </ent-value> </result-set> </query-app> </values> </entitlement>

在本示例中,如果对同一对象多次应用组权利,此权利将使用 Union 来解决冲突。 Union 特性合并了涉及到的所有基于职能的权利策略中的权利,所以当某一策略取消一项权利而另一策略授予这项权利时,最终会授予这项权利。

组说明十分有用,因为其细节说明了通过驱动程序策略中的规则所设置的内容。 本说明是一个不错的示例,其中包括定义权利时需要首先考虑的细节。

<display-name> 是组成员资格权利,出现在管理代理(例如基于职能权利的 iManager)中。 该名称是权利的相对判别名 (RDN)。 如果没有定义显示名称,则权利的名称就是它的 RDN。

初始查询值将在树的顶端查找组的类名称,如果没有找到则在其子树中继续查找。 这些值属于已连接 Active Directory 服务器,应用程序查询从 <nds> 标签位置开始。 在 <query-xml> 标签下,此查询将接收到与以下内容类似的信息:

<instance class-name="Group" src-dn="o=Blanston,cn=group1"> <association>o=Blanston,cn=group1</association> <attr attr-name="Description"> the description for group1</attr> </instance> <instance class-name="Group" src-dn="o=Blanston,cn=group2"> <association>o=Blanston,cn=group2</association> <attr attr-name="Description"> the description for group2</attr> </instance> <instance class-name="Group" src-dn="o=Blanston,cn=group3"> <association>o=Blanston, cn=group3</association> <attr attr-name="Description"> the description for group3</attr> </instance> <!-- ... ->

而在 <result-set> 标签下,查询得到的信息将填充各字段。 例如,<display-name> 字段将接收 o=Blanston,cn=group1<description> 字段将接收 the description for group1<ent-value> 字段将接收 o=Blanston,cn=group1。 由于存在多个组并且不止一个组符合查询准则,因此还要收集此信息并以其它实例来显示。

注:因为每个外部系统的关联格式值是唯一的,所以查询每个外部系统所用的格式和语法都不同。

另一个示例是 Exchange 邮箱权利。

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The Exchange Mailbox Entitlement grants or denies an Exchange mailbox for the user in Microsoft Exchange." display-name="Exchange Mailbox Entitlement" name="ExchangeMailbox"> <values> <query-app> <query-xml> <nds dtd-version="2.0"> <input> <query class-name="msExchPrivateMDB" dest-dn="CN=Configuration," scope="subtree"> <search-class class-name="msExchPrivateMDB"/> <read-attr attr-name="Description"/> <read-attr attr-name="CN"/> </query> </input> </nds> </query-xml> <result-set> <display-name> <token-attr attr-name="CN"/> </display-name> <description> <token-attr attr-name="Description"/> </description> <ent-value> <token-src-dn/> </ent-value> </result-set> </query-app> </values> </entitlement>

在本示例中,如果对同一对象多次应用 Exchange 邮箱权利,此权利将使用 Union 来解决冲突。 Union 特性合并了涉及到的所有基于职能的权利策略中的权利,所以当某一策略取消一项权利而另一策略授予这项权利时,最终会授予这项权利。

而说明对于此权利的作用进行了足够详尽的说明,描述了此权利可以授予或取消 Microsoft Exchange 用户的 Exchange 邮箱。 出现在管理代理(例如,基于职能权利的 iManager)中的显示名称为 Exchange Mailbox Entitlement。 该名称是权利的相对判别名 (RDN)。 如果没有定义显示名称,则权利的名称就是它的 RDN。

初始查询值将寻找 msExchPrivateMDB 类名称,它是一个 Microsoft Exchange 函数调用,先在“配置”树枝中进行寻找,如果没有找到将在子树中继续寻找。 这些值属于已连接的 Active Directory 数据库,应用程序查询从 <nds> 标签位置开始。 msExchPrivateMDB 类在 eDirectory 中没有等效类,所以熟悉 Microsoft Exchange 函数调用才能进行这样的查询。 但是由于在 Active Directory 驱动程序中已经找到了规则和策略,所以该查询已经完成。

权利用户可以使用通过查询检索到的信息。 例如,通过 DirXML-EntitlementRef 特性可以将权利值 (ent-value) 传递给 Identity Manager 策略。 显示名称和说明信息可通过 iManager 或用户应用程序显示,并且储存在 DirXML-SPCachedQuery 特性中。

示例 3:管理员定义的权利: 带有列表

第三个示例是由管理员定义的权利,使用该权利可以在选择某一列表项后创建授予事件或取消事件。

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="This will show Administrator-defined Values"> <display-name="Admin-defined Entitlement"/> <values multi-valued="true"> <value>Building A</value> <value>Building B</value> <value>Building C</value> <value>Building D</value> <value>Building E</value> <value>Building F</value> </values> </entitlement>

在本示例中,权利名称是 Admin-defined,而定义的显示名称是 Admin-defined Entitlement。 (如果您希望权利的显示名称与 RDN 不同,只需要输入显示名称即可。) Conflict-resolution 行显示了 Union 设置,该设置允许权利合并所赋的值。

权利说明是 This will show Administrator-defined Values。 多值特性设置为 true,允许此权利多次赋值。 在本示例中,值是公司的大厦字母: 从 Building A 到 Building F。然后,通过权利客户程序(例如,iManager RBE 任务)或通过用户应用程序,用户或已定义的任务管理员可以指定大厦信息,该信息将包括在外部应用程序中(例如,Novell eDirectory)。

示例 4:管理员定义的权利: 不带列表

第四个示例是管理员定义的权利,在权利授予或取消某事件之前,强制管理员键入一个值。 如果在初始设置时信息不全,无法创建任务列表,就可以使用此种权利。

<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="priority" description="There will be no pre-defined list"> <values multi-valued="false"/> </entitlement>

在本示例中,权利名称为 Admin-defined (no list),由于没有显示名称项,将使用权利名称作为显示名称。 冲突解析将再次设置为默认的 Priority,这意味着如果基于职能的权利使用该权利,该值将设置为具有优先级的 RBE。 通过权利客户程序(例如,iManager RBE 任务)或通过用户应用程序,可以指定大厦信息,该信息包括在外部应用程序中(例如,eDirectory)。

6.4.7 完成权利创建步骤

权利创建示例已经说明了如何创建和使用权利的前两步,详情请见部分 6.2, 创建权利:概述。 其中包括:第 1 步,列出希望使用权利完成的任务清单;第 2 步,编写权利,处理清单中的项目。 第 3 步,创建 Identity Manager 驱动程序策略(本章不作介绍)。 有关创建和编辑策略的信息,请参见《策略构建器和驱动程序自定义指南》以及相应的 Identity Manager 驱动程序指南

创建权利(或使用某些 Identity Manager 驱动程序中预配置的权利)后,需要对权利进行管理(见第 4 步)。权利可由两个包或代理进行管理: 作为基于职能的权利策略通过 iManager 进行管理,或在基于工作流程的配置信息提供中通过用户应用程序进行管理。 有关基于工作流程的配置信息提供中使用的权利,请参见基于工作流程的配置信息提供的介绍。 本章的剩余部分重点介绍基于职能的权利。