特定のユーザを管理者画面に表示させない方法
背景
Identity Managerでは管理権限の構造を決めるために組織を使用します。
しかしながら、静的に組織に割り当てるのではなく、ユーザ属性や条件などで、組織に所属するユーザを動的に決定したい場合もあります。このようなケースで使用するのが、動的組織(Dynamic Organization)というIdentity Managerの機能です。
動的組織のよくある利用方法としては、「自分の部下だけ表示する。」「自分と同じ部署の人だけ表示する。」などがありますが、ここでは、「有る特定のユーザを除外する」という要件を実現するために動的組織(Dynamic Organization)を使用する方法を解説します。
前提条件
- Identity Managerはインストール済み。
- user1,user2,admin1 を作成済み。
- 除外するユーザは Administratorと Configurator
- admin1 でログインした場合に、AdminstratorとConfigurator以外のユーザが表示されるような動的組織を作成する。
設定
組織(動的組織)の作成
動的組織を作成するために、
- 動的組織を定義するためのルールの作成
- 動的組織の作成
を行ないます。
動的組織を定義するためのルールの作成
以下のようなルールを作成して、Identity Managerにインポートします。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC 'waveset.dtd' 'waveset.dtd'>
<!-- MemberObjectGroups="#ID#Top" authType="UserMembersRule" description="Not Equals Administrator and Configurator" name="NE Administrator and Configurator" -->
<Rule authType='UserMembersRule' name='NE Administrator and Configurator' creator='%STARTUP%Configurator' primaryObjectClass='Rule'>
<Description>Not Equals Administrator and Configurator</Description>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>name</s>
<s>notEquals</s>
<s>Configurator</s>
</new>
<new class='com.waveset.object.AttributeCondition'>
<s>name</s>
<s>notEquals</s>
<s>Administrator</s>
</new>
</list>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
</MemberObjectGroups>
</Rule>
このルールによって、AdministratorとConfigurator以外のすべてのユーザが返されます。
XML ファイルをインポートしたところ。
動的組織の作成
- アカウント タブの 新規作成 アクションから 新規組織 を選択。
- 名前(Name) として、Dynamic Org と記述して、ユーザメンバー規則(User Members Rule) として、先ほど作成した、NE Adminstrator and Configurator を選択します。
管理者への動的組織の割り当て
管理者である、admin1 に*管理する組織*として Dynamic Org を、機能 として、Create User と Update User を割り当てます。
- アカウント タブで、admin1 をクリックして、admin1 の編集画面に進みます。
- セキュリティ(Security) サブタブで、管理する組織(Controlled Organization) として、Dynamic Org を、機能(Capabillities) として、Create User と Update User を割り当て、保存します。
ここでは、管理者(admin1)への 管理する組織 と 機能 の割り当ては直接ユーザに割り当てを行なっていますが、実施の運用時にはそれぞれのユーザにそれぞれ割り当てを行なうのは面倒なので、管理者ロールを介して割り当てることも可能です。
動作確認
Configurator でログインした場合
- Configurator でログインして、アカウント タブへ進みます。Administrator,Configurator を含むすべてのユーザがTop以下に表示されます。
管理者(admin1)でログインした場合
- admin1 でログインして、アカウント タブへ進みます。admin1 の管理する組織として割り当てられた Dynamic Org が表示されます。
- Dynamic Org に所属するユーザを見てみます。*Administrator,Configurator を除外したすべてのユーザが表示されます。