Active Directory セキュリティグループのメンバー追加を動的に構成してみる

みなさん、こんにちはMiyaです。

今回はActive Directoryのセキュリティグループのメンバー運用を自動化するためのお話です。

Active Directory環境において、ファイルサーバーなどのアクセス権管理をセキュリティグループで制御するケースは非常に多いですよね。

例えば、部門ごとのファイルサーバー領域を用意しておき、他部門の領域は見れないようしておくことで、ファイルの参照範囲を限定されるため、セキュリティ的に好ましいと言えます。

しかし、従業員の異動などと紐づけてセキュリティグループのメンバーを手で更新するには運用負荷が高いのが難点です。

そこで、本記事では各部門のセキュリティグループのメンバーを動的に更新することを目的としたスクリプトを組みたいと思います。

スポンサーリンク:

メンバーを新するスクリプトを作ってみる

動的といっても、Active Directoryのユーザーオブジェクトと人事情報が人事システム的なのと連携(紐づけ)されていることが前提です。

人事部の従業員は、Active Directoryの[Department]属性に「Human Resource Department」が入っている、かつ、従業員の異動と紐づいて[Department]属性が更新される環境である必要があります。

動的セキュリティグループ

 

下記のスクリプトは、[Department]属性が「Human Resource Department」のユーザーを取得、セキュリティグループ「HRD」にメンバー追加するスクリプトです。

このスクリプトをタスクスケジューラーに仕込んでおき、適当なタイミングで流してあげれば、属性情報にもとづきメンバーの追加/削除が行われます。

 

-SearchBaseはオプションですが、全ユーザーに対してGetするのは処理の遅延に繋がるので、LDAPクエリの範囲を限定しています。そして、-filterオプションを使って、Department属性に”Human Resource Department”が入っているユーザーを取得しています。

 

次に、取得したユーザー情報をもとに、Add-ADGroupMemberコマンドでグループのメンバーとして追加しています。

 

さらに、既存のグループメンバーである従業員が異動した場合は削除してあげる必要があるので、[Department]属性が”Human Resource Department”ではないユーザーを取得、Remove-ADGroupMemberコマンドでメンバー削除します。

かなり無理やりなスクリプトですが…よければ参考にしてください。

このようなセキュリティグループの動的処理を担うサードパーティ製品もいくつかございますが、手軽にスクリプトを組んで構成するのも良いかと思います。

それでは、良いWindows Server ライフをっ♪

スポンサーリンク