Identity Manager では、どのユーザーをエンドユーザーの制御範囲に置くかを管理できます。
「制御の範囲」タブ (図 6–4) を使用して、この組織のメンバーで管理可能な組織を指定するか、管理者ロールのユーザーによって管理される組織を決定する規則を指定し、管理者ロールのユーザーフォームを選択します。

「管理する組織」。「利用可能な組織」リストから、この管理者ロールが管理する権利を持つ組織を選択します。
「管理する組織の規則」。ユーザーログイン時に評価の対象となる、この管理者ロールが割り当てられたユーザーによって管理される組織に対する規則を選択します。選択する規則は、ControlledOrganizationsRule authType を持つ必要があります。デフォルトで、管理する組織の規則は選択されていません。
EndUserControlledOrganizations 規則を使用して必要なロジックを定義し、組織のニーズに応じて委任に適した一連のユーザーを選択可能にすることができます。
ユーザーが管理者インタフェースとエンドユーザーインタフェースのどちらにログインしていても、管理者に表示されるユーザーリストの範囲が同じになるようにするには、EndUserControlledOrganizations 規則を変更します。
認証中のユーザーが管理者かどうかを最初にチェックするように規則を変更し、それから次のように設定します。
ユーザーが管理者でない場合は、そのユーザー自身の組織など、エンドユーザーによって管理される一連の組織を返します (例: waveset.organization)。
ユーザーが管理者である場合はどの組織も返さず、管理者であるために割り当てられた組織のみをそのユーザーが管理するようにします。
たとえば、次のようにします。
<Rule protectedFromDelete=’true’
authType=’EndUserControlledOrganizationsRule’
id=’#ID#End User Controlled Organizations’
name=’End User Controlled Organizations’>
<Comments>
If the user logging in is not an Idm administrator,
then return the organization that they are a member of.
Otherwise, return null.
</Comments>
<cond>
<and>
<isnull><ref>waveset.adminRoles</ref></isnull>
<isnull><ref>waveset.capabilities</ref></isnull>
<isnull><ref>waveset.controlledOrganizations</ref></isnull>
</and>
<ref>waveset.organization</ref>
</cond>
<MemberObjectGroups>
<ObjectRef type=’ObjectGroup’ id=’#ID#Top’ name=’Top’/>
</MemberObjectGroups>
</Rule>
|
動的な組織に所属しているユーザーまたは管理者は、検索結果に返されません。
ただし、動的な組織のユーザーを返すように規則を作成することもできます。次のサンプル規則で、Idm Schema Configuration オブジェクトで定義されている Identity Manager ユーザースキーマ定義に新しい属性を追加し、このオブジェクトをインポートして、Identity Manager サーバーを再起動します。
<IDMAttributeConfigurations>
...
<IDMAttributeConfiguration name='region'
syntax='STRING'
description='region of the country'/>
</IDMAttributeConfigurations>
<IDMObjectClassConfigurations>
...
<IDMObjectClassConfiguration name='User'
extends='Principal'
description='User description'>
...
<IDMObjectClassAttributeConfiguration name='region'
queryable='true'/>
</IDMObjectClassConfiguration>
</IDMObjectClassConfigurations>
Next, import the following Identity Manager objects:
<!-- User member rule that will include all users whose region attribute
matches the region organization display name -->
<Rule name="Region User Member Rule" authType="UserMembersRule">
<Description>User Member Rule</Description>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>region</s>
<s>equals</s>
<ref>userMemberRuleOrganizationDisplayName</ref>
</new>
</list>
<MemberObjectGroups>
<ObjectRef type="ObjectGroup" id="#ID#All" name="All"/>
</MemberObjectGroups>
</Rule>
<!-- North & South Region organizations with user member rule assigned -->
<ObjectGroup id='#ID#North Region' name='North Region'
displayName='North Region'> <UserMembersRule cacheTimeout='3600000'>
<ObjectRef type='Rule' name='Region User Member Rule'/>
</UserMembersRule>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/>
</MemberObjectGroups>
</ObjectGroup>
<ObjectGroup id='#ID#South Region' name='South Region'
displayName='South Region'> <UserMembersRule cacheTimeout='3600000'>
<ObjectRef type='Rule' name='Region User Member Rule'/>
</UserMembersRule>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/>
</MemberObjectGroups>
</ObjectGroup>
<!-- Organization containing all employees -->
<ObjectGroup id='#ID#Employees' name='Employees' displayName='Employees'>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/>
</MemberObjectGroups>
</ObjectGroup>
<!-- End user controlled organization rule that give each user control
of the regional organization they are a member of -->
<Rule protectedFromDelete='true'
authType='EndUserControlledOrganizationsRule'
id='#ID#End User Controlled Organizations'
name='End User Controlled Organizations'
primaryObjectClass='Rule'>
<switch>
<ref>waveset.attributes.region</ref>
<case>
<s>North Region</s>
<s>North Region</s>
</case>
<case>
<s>South Region</s>
<s>South Region</s>
</case>
<case>
<s>East Region</s>
<s>East Region</s>
</case>
<case>
<s>West Region</s>
<s>West Region</s>
</case>
</switch>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
</MemberObjectGroups>
</Rule>
<!-- 4 employees (2 in North and 2 in South region) -->
<User name='emp1' primaryObjectClass='User' asciipassword='1111'>
<Attribute name='firstname' type='string' value='Employee'/>
<Attribute name='fullname' type='string' value='Employee One'/>
<Attribute name='lastname' type='string' value='One'/>
<Attribute name='region' type='string' value='North Region'/>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees'
displayName='Employees'/>
</MemberObjectGroups>
</User>
<User name='emp2' primaryObjectClass='User' asciipassword='1111'>
<Attribute name='firstname' type='string' value='Employee'/>
<Attribute name='fullname' type='string' value='Employee Two'/>
<Attribute name='lastname' type='string' value='Two'/>
<Attribute name='region' type='string' value='North Region'/>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees'
displayName='Employees'/>
</MemberObjectGroups>
</User>
<User name='emp4' primaryObjectClass='User' asciipassword='1111'>
<Attribute name='firstname' type='string' value='Employee'/>
<Attribute name='fullname' type='string' value='Employee Four'/>
<Attribute name='lastname' type='string' value='Four'/>
<Attribute name='region' type='string' value='South Region'/>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees'
displayName='Employees'/>
</MemberObjectGroups>
</User>
<User name='emp5' primaryObjectClass='User' asciipassword='1111'>
<Attribute name='firstname' type='string' value='Employee'/>
<Attribute name='fullname' type='string' value='Employee Five'/>
<Attribute name='lastname' type='string' value='Five'/>
<Attribute name='region' type='string' value='South Region'/>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees'
displayName='Employees'/>
</MemberObjectGroups>
</User>
|
続いて、Identity Manager エンドユーザーインタフェースを使用して、North 地域のユーザー emp1 としてログインします。「委任」、「新規」の順に選択します。検索を変更します。条件として「が次の文字で始まる」を選択し、値を emp に変更して「検索」を選択します。これにより、利用可能なユーザーのリストに emp2 が返されます。
「管理する組織のユーザーフォーム」。この管理者ロールが割り当てられたユーザーが、この管理者ロールの管理する組織のメンバーであるユーザーを作成または編集する場合に使用するユーザーフォームを選択します。デフォルトで、「管理する組織のユーザーフォーム」は選択されていません。
管理者ロールを介して割り当てられたユーザーフォームは、管理者がメンバーになっている組織から継承したすべてのユーザーフォームよりも優先されます。ただし、管理者に直接割り当てられたユーザーフォームよりも優先されることはありません。