每个用户都是一个组织的静态成员,并且可以是多个组织的动态成员。
可以使用以下任一方法定义组织成员资格:
直接(静态)分配。在“创建用户”或“编辑用户”页中选择“身份”表单选项卡,以将用户直接分配给组织。用户必须被直接分配给一个组织。
规则驱动(动态)分配。使用分配给组织的用户成员规则将用户分配给该组织。在评估该规则时,将返回一组成员用户。
Identity Manager 将在以下情况下评估用户成员规则:
列出组织中的用户
查找用户(通过“查找用户”页),包括搜索具有某个用户成员规则的组织中的用户
请求访问用户,但前提是当前管理员控制具有用户成员规则的组织
有关在 Identity Manager 中创建和使用规则的详细信息,请参见《Sun Identity Manager Deployment Reference》中的第 4 章 “Working with Rules”。
在“创建组织”页的“用户成员规则”菜单中选择一个用户成员规则。下图显示了一个用户成员规则示例。
以下示例展示了用于动态控制组织用户成员资格的用户成员规则示例的语法。
在创建用户成员规则之前,您应该注意以下事项:
要在“用户成员规则”选项框中显示某个规则,必须将其 authType 设置为 authType=’UserMembersRule’。
该上下文是目前已验证的 Identity Manager 用户的会话。
已定义的变量 (defvar) Team players 为属于 Windows Active Directory 组织单位 (Organization Unit, ou) Pro Ball Team 成员的每位用户获取标识名 (Distinguished Name, dn)。
对于找到的每位用户,附加逻辑会将 Pro Ball Team ou 中每位成员用户的 dn 与前缀为冒号的 Identity Manager 资源的名称(例如 :smith-AD)连接在一起。
返回的结果将是与 Identity Manager 资源名称连接的 dn 的列表,格式为 dn :smith-AD。
<Rule name=’Get Team Players’ authType=’UserMembersRule’> <defvar name=’Team players’> <block> <defvar name=’player names’> <list/> </defvar> <dolist name=’users’> <invoke class=’com.waveset.ui.FormUtil’ name=’getResourceObjects’> <ref>context</ref> <s>User</s> <s>singleton-AD</s> <map> <s>searchContext</s> <s>OU=Pro Ball Team,DC=dev-ad,DC=waveset,DC=com</s> <s>searchScope</s> <s>subtree</s> <s>searchAttrsToGet</s> <list> <s>distinguishedName</s> </list> </map> </invoke> <append name=’player names’> <concat> <get> <ref>users</ref> <s>distinguishedName</s> </get> <s>:sampson-AD</s> </concat> </append> </dolist> <ref>player names</ref> </block> </defvar> <ref>Team players</ref> </Rule>
您可以在 Waveset.properties 中配置一些属性,以控制规则驱动用户成员列表高速缓存,它可能会影响内存和性能。有关信息,请参见《Sun Identity Manager 8.1 System Administrator’s Guide》中的“Tracing Rule-Driven Members Caches”。