【AD DS】AdminSDHolder とは?アクセス権の保護機能

  • 2023年6月2日
  • 2023年6月8日
  • AD DS

認証済みの利用者に対して、その利用者に与えられた適切な権限をもつ操作を許可することを「認可」と呼びます。

認証済みの全てのユーザーに対して、リソースへの参照や変更、実行の権限を与えるのではなく、その操作を許可されたユーザーにだけ操作を許すことです。例えば、人事部のユーザーは各社員の履歴書や年収などの情報が含まれる資料を参照する権限を与えられますが、営業部のユーザーには参照の権限は与えないというものです。

Windows OS では「認可」の仕組みは ACL (アクセス制御リスト:Access Control List) の機能により実現されています。Active Directory ドメイン環境を管理している Domain Admins や Enterprise Admins 等の重要なグループには管理に必要な権限が与えられています。しかし、この重要なグループに対して、悪意や過失により ACL の設定が変更されてしまうとドメインの管理に大きな影響が生じることが想定されます。そのため、Active Directory ドメイン サービスでは重要なグループの ACL を保護する仕組みが用意されています。

今回は、重要なグループ アカウントの ACL の保護機能について紹介します。

AdminSDHolder とは?

Active Directory ドメイン サービスでは重要なグループやユーザーの ACL (Access Control List:アクセス制御リスト)が適切に設定されていることを確認する保護機能があります。これはドメインの管理において、重要なグループやユーザーに対して、悪意または過失により不要な権限が設定されてしまうことを防止する目的で実装されています。

この保護機能のために、AdminSDHolder という特殊なコンテナ オブジェクトが用意されています。AdminSDHolder には ACL が設定されており、保護対象となるアカウントには AdminSDHolder に設定されている ACL が設定されます。

AdminSDHolder の既定の保護対象となっているグループ アカウントの一覧は以下の通りです。

  • Administrators
  • Account Operators
  • Server Operators
  • Print Operators
  • Backup Operators
  • Domain Admins
  • Schema Admins
  • Enterprise Admins
  • Cert Publishers

アクセス権の保護機能の動作としては、PDC エミュレーターの役割をもつドメイン コントローラーが、保護対象のアカウントの ACL と AdminSDHolder の ACL を比較して一致しているかを確認します。一致していない場合には、保護対象のグループの ACL の設定は、継承設定の有無も含めて AdminSDHolder の ACL の設定に上書きします。

この処理は1時間に1回の頻度で実行され、保護対象のアカウントは常に AdminSDHolder と同じアクセス権に設定される動作になります。仮に保護対象のアカウントの ACL の設定を設定したとしても、一時的には設定変更は保持されますが、1時間に1回の保護の処理により、元の AdminSDHolder の ACL の設定に戻ります。

保護対象のアカウント

Administrators や Domain Admins など、既定で複数のグループが ACL 設定の保護対象のアカウントとして設定されています。保護対象のアカウントは、adminCount 属性の値が 1 に設定されています。保護対象となっていないアカウントは既定では未設定と設定されています。

アカウントの adminCount 属性値を1以外に変更しても、 ACL 設定の保護対象からは外れません。値を変更しても1時間に1回の保護機能の処理の際に、adminCount 属性値は1の値に戻ります。
 

AdminSDHolderコンテナ

AdminSDHolder コンテナは、以下のパスに存在しています。

CN=AdminSDHolder,CN=System,DC=<ドメインの DN>

AdminSDHolder は ADSI エディターや Active Directory ユーザーとコンピューターなどの管理ツールより確認できます。AdminSDHolder コンテナの [セキュリティ] タブに設定されている ACL が保護対象のアカウントに設定されます。

AdminSDHolder のアクセス権を変更すれば、保護対象となるアカウントに設定される ACL も変更されます。

AdminSDHolder に所属したアカウントの動作

特定のアカウントにて ACL の保護をしたい場合、AdminSDHolder の既定の保護対象となっているグループ アカウントのメンバーに追加します。

AdminSDHolder の保護対象のグループに所属したユーザーは、1時間ごとに定期的に実行される保護の処理により、adminCount 属性値が1に設定され、親からはアクセス権を引き継がず、アクセス権は AdminSDHolder の ACL に変更されます。

対象のユーザー アカウントの adminCount 属性値や ACL を変更したとしても、定期的に実行される保護の処理により、adminCount 属性値と ACL の設定値は元の設定に戻ります。

また、対象のユーザーを AdminSDHolder のグループから保護対象のグループからメンバーを除外した場合においても、自動で

adminCount 属性および、アクセス権については元には戻らず、引き続き ACL の保護が継続されます。そのため、ユーザーを ACL の保護対象から外す場合には、①保護対象のグループからメンバーを除外し、② adminCount 属性を未構成に設定、③ ACL を任意の設定に変更という作業が必要となります。

dSHeuristics 属性

dSHeuristics 属性はフォレスト全体のグローバル設定を保持する属性です。

dSHeuristics 属性では AdminSDHolder の保護機能の除外設定が定義されています。dSHeuristics 属性の既定値は、

0000000001000000 となり 16 番目の文字が保護機能の除外の設定箇所となります。1~15番目までの文字のうち、10番目の文字の値以外のデフォルト値は 0 となり、10番目の文字は必ず 1 とし、16 番目に保護機能の除外設定の文字を入れます。

保護機能の除外対象とできるグループ アカウントは「Account Operators」「Server Operators」「Print Operators」「Backup Operators」の4つとなります。dSHeuristics 属性の設定用に、各アカウントに対して以下の値が割り当てられています。

除外対象とするグループ 2進数 10進数
Account Operators 0001 1
Server Operators 0010 2
Print Operators 0100 4
Backup Operators 1000 8

dSHeuristics 属性の既定値の16番目の文字は0となっており、全てのアカウントは保護対象となっています。保護対象から特定のグループを除外したい場合は、除外対象のグループ アカウントの値の合計値(16進数)を16番目の文字に設定します。

AdminSDHolder の保護機能の除外設定

既定で AdminSDHolder となっているグループである「Account Operators」「Server Operators」「Print Operators」「Backup Operators」は、AdminSDHolder の保護から除外することができます。

dSHeuristics 属性値の16番目の文字にて、保護対象の除外の設定を行います。具体的な手順は以下の通りです。

1) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) [ファイル名を実行して実行] を開き、adsiedit.msc を起動します。

3) 画面の左ペインより [ADSI エディター] を選択した状態で、メニューより [操作] – [接続] をクリックします。

4) [接続ポイント] の項目にて、[既定の名前つけコンテキストを選択する] を選択し、[構成] を選択して [OK] をクリックします。

5) 画面の左ペインより、[CN=Configuration,<ドメインDN>] – [CN=Services] – [CN=Windows NT] まで展開し、[CN=Directory Service] を右クリックし、プロパティを開きます。

6) [属性エディター] タブにて、[dSHeuristics] の属性をダブルクリックして属性エディターを開きます。

7) 対象のグループ アカウントを除外する値を設定して [OK] をクリックします。
例えば、Account Operators(0001) と  Server Operators(0010) のグループの保護を除外したい場合は、0001 + 0010 = 0011 = 0x3 となり、16番目の数字は 3 となります。そのため、dSHeuristics 属性に設定する値は 0000000001000003 となります。

8) プロパティ画面にて、[適用]、[OK] をクリックして設定を反映させます。

Active Directory ドメイン環境にて、AdminSDHolder の保護から除外する設定を反映させる場合には、Active Directory Domain Services” のサービスを再起動する必要があります
 
 
 

楽天ブックス
¥3,630 (2023/06/08 11:21時点 | 楽天市場調べ)
楽天ブックス
¥4,400 (2023/06/08 11:24時点 | 楽天市場調べ)