こんにちは、サイオステクノロジー 荒俣です。
ADでは、グループ単位での権限管理をよく行いますが、グループに属しているメンバーの管理はユーザ毎に制御しなければならず、時間をとられてしまいます。(一人、二人ぐらいならば、問題ないですが、人事異動、組織改編などで大人数が変更されると、、)
いい方法を探していたところ、ADではありませんが、Azure ADに「動的グループ」というグループ種別がありましたので紹介させていただきます。
動的グループとは
「動的グループ」はユーザの属性情報を参照してメンバーを自動登録、削除してくれるグループです。
属性情報でのメンバー制御が可能になれば、ユーザ追加時や更新時にキーとなっている属性を更新するだけで、グループの更新が可能になります。
※「動的グループ」を使用するためには、Azure AD Premiumライセンスが必要になります。
設定方法
設定方法は、グループ作成時にメンバーシップの種類を「動的ユーザ」を選択します。
その後、メンバーシップ条件を指定してください。
グループ管理に有用であるユーザの属性情報は以下の通りになります。もちろん、そのほかの属性、拡張属性も条件に指定できます。
proxyAddresses任意の文字列値または nullユーザーのプロキシメールアドレス
ユーザ属性 | 比較条件 | 説明 |
userPrincipalName | 任意の文字列値 | ユーザ名 |
displayName | 任意の文字列値 | 表示名 |
companyName | 任意の文字列値または null | 会社名 |
department | 任意の文字列値または null | 部門名 |
jobTitle | 任意の文字列値または null | 職名 |
任意の文字列値または null | ユーザーの SMTP アドレス | |
mailNickName | 任意の文字列値 | ユーザーのメールエイリアス |
また、使用できる主な演算子としては以下の通りになります。
演算子 | 説明 |
-eq | 指定した文字列と属性値が一致した場合、メンバーとする |
-ne | 指定した文字列と属性値が一致しない場合、メンバーとする |
-startsWith | 指定した文字列が属性値の先頭だった場合、メンバーとする |
-notStartsWith | 指定した文字列が属性値の先頭ではない場合、メンバーとする |
-contains | 指定した文字列が属性値に含まれている場合、メンバーとする |
-notContains | 指定した文字列が属性値に含まれていない場合、メンバーとする |
また、複数の条件を指定する場合は、以下の接続子を使用します。
接続子 | 説明 |
–or | どちらかの条件が満たされていれば、メンバーとする |
-and | 両方の条件を満たされていれば、メンバーとする |
メンバーシップ条件例
ここでいくつかの条件例を上げさせていたできます。
メールアドレスが「test」で始まるユーザを格納するグループ
条件式: (user.mail -startsWith “test”)
部門名が「SE」でかつ、ユーザ名が「test」で始まらないユーザを格納するグループ
条件式: (user.department -eq “SE”) -and (user.userPrincipalName -notStartsWith “test”)
最後に、、
今回は、「動的グループ」について紹介させていただきました。
この「動的グループ」のメンバー条件はAADCで同期されたユーザにも有効ですので、同期をしている場合、ローカルの属性情報を更新すれば、グループ情報に反映されます。
こうやって、作成したAzure AD グループでアプリケーションアカウント共有を行えば、アカウント管理の手間は大きく省けれと思えました。