AdminSDHolderに関して検証する

Technet フォーラム や 国井さんのブログを読んでいて、AdminSDHolderについての話が書いてありました。おはずかしながら、私はその存在自体知りませんでした。そもそもAdminSDHolderって何から勉強してみました。

シナリオから

AdminSDHolder

まずはOU1というOUを作成し、User1とUser2が存在します。OU_Adminsグループに対して委任の設定を行い、OU1の管理者とする。その際にOU1内のユーザーパスワードリセットの権限を付与した。

ou1adminはOU_adminsのメンバーなのでOU1の管理者である。よって、User1及びUser2のパスワードリセットができるはず・・・

しかし、実際にはUser2のパスワードリセットができない

このようなシナリオがあります。

これはなぜ?ということろから話を始めます。

実はUser2がAccount Operatorsのメンバーになっていることが原因なんです。

これは管理者グループのメンバーに対して、1時間に1回PDCエミュレーターがSDPROP(Security Descriptor PROPagator)という機能を利用してAdminSDHolderオブジェクトのアクセス許可を管理者グループのアクセス許可にコピーすることによるものです。

*AdminSDHolderオブジェクトは、管理者グループに対するアクセス許可を管理しています。そのことから管理者グループのアクセス許可設定は、通常のアクセス許可画面から設定することができません。

AdminSDHolderオブジェクトはActive DirectoryドメインパーティションのSystemコンテナの中にあります。そのセキュリティ設定が管理者グループのアクセス権のひな型になるのです。

WS000082

よって、このアクセス権が管理者グループにコピーされます。

WS000083

では管理者グループとは一体どのグループかというと、グループの属性にAdminCountという属性がありますが、この属性値が1になっているグループが対象になります

これは国井さんのブログで紹介されていました~

ADFind
http://joeware.net/freetools/tools/adfind/index.htm

WS000086

このようなコマンドをたたくと

Using server: london.contoso.com:389
Directory: Windows Server 2008 R2

dn:CN=Administrator,CN=Users,DC=contoso,DC=com

dn:CN=Administrators,CN=Builtin,DC=contoso,DC=com

dn:CN=Print Operators,CN=Builtin,DC=contoso,DC=com

dn:CN=Backup Operators,CN=Builtin,DC=contoso,DC=com

dn:CN=Replicator,CN=Builtin,DC=contoso,DC=com

dn:CN=krbtgt,CN=Users,DC=contoso,DC=com

dn:CN=Domain Controllers,CN=Users,DC=contoso,DC=com

dn:CN=Schema Admins,CN=Users,DC=contoso,DC=com

dn:CN=Enterprise Admins,CN=Users,DC=contoso,DC=com

dn:CN=Domain Admins,CN=Users,DC=contoso,DC=com

dn:CN=Server Operators,CN=Builtin,DC=contoso,DC=com

dn:CN=Account Operators,CN=Builtin,DC=contoso,DC=com

dn:CN=Read-only Domain Controllers,CN=Users,DC=contoso,DC=com

dn:CN=clientpush,OU=SCCM,DC=contoso,DC=com

dn:CN=user2,OU=OU1,DC=contoso,DC=com

dn:CN=ac1user,OU=OU1,DC=contoso,DC=com


16 Objects returned

このような結果が・・・ユーザーも入っていますが、管理者グループの一員になるとAdminCount=1となり、アクセス権もコピーされるということになります。

ちなみにUser1とUser2の属性を比べてみます

WS000085 WS000084

User2のadminCount属性が1になっていることが確認できます。

このような理屈によって、上記シナリオのような現象が起きているのですね!

さて、次のシナリオとしてはOU_Adminsの権限が管理者グループのユーザーに対して継承されないので、これをどうするか?

どうしてもOU管理者に管理者グループのユーザーも管理させたい場合にはAdminSDHolderに対して権限を付与する必要があります。今回の例ではこんな感じですね。

dsacls.exe CN=AdminSDHolder,CN=System,DC=contoso,DC=com /g contosoou1_admins:CA;”Reset Password”;

ただし、考慮しなくてはいけないのが全ての管理者グループにこの権限がコピーされることです。更にadministratorがもしこのOU1に存在する場合は、administratorのパスワードリセットもできてしまうということ。このようなリスクを認識して運用する必要がありますね。

ですので、通常はこのAdminSDHolderの権限変更は行わないと考えます。

更に注意点があります。

今回の例では、User2をAccount OperatorsのメンバーからはずせばUser1と同様にパスワードリセットができるはずですが、これができません。なぜなら、adminCount属性が変わらず、継承もブロックされたままだからです。

委任されたアクセス許可を利用できず継承が自動的に無効になる
http://support.microsoft.com/default.aspx/kb/817433/ja

一旦管理者グループに入れたユーザーは、単に管理者グループから削除しても元に戻らないので、上記KBに書いてあるような方法を使用して元に戻す必要があります。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください