【QAコーナー】管理者ではない人に管理者グループのメンバーに対する操作の権限を与える方法

 
 
先日のAdminTech.jp勉強会に参加させていただいたとき、色々な質問をもらい、
自分でもひさしぶりに試してみようかな、と思うものを色々と情報として得ることができました。
そのなかのひとつに、次のような質問がありました。
 
 
「Active DirectoryのOUで管理権限を委任したら、パスワード変更などのユーザーに対する変更ができるはずなのに、
管理者グループのメンバーになっているユーザーに対する変更はできない、という現象が起きる」
 
 
この問題は、AdminSDHolderという属性について理解すると解決できます。
 
AdminSDHolderについては、
サポート技術情報のKB232199「Active Directory AdminSDHolderオブジェクトの説明と更新」
などで紹介されていますが、
簡単に言うと、
「管理者グループに対するアクセス許可は、AdminSDHolderオブジェクトによって管理されていて、
通常のアクセス許可設定画面から設定することができない」
という機能です。
 
 
普通、グループに対するアクセス許可はグループのプロパティを開いて、設定すれば何でも書き換えられるように思います。
しかし、Administratorsグループのような管理者グループのアクセス許可はプロパティを開いて設定しても適用されません。
これはセキュリティ上の理由から、そうなっています。
 
では、どこで管理者グループのアクセス許可は管理されているのかといえば、AdminSDHolderオブジェクトになります。
AdminSDHolderオブジェクトに対して割り当てられているアクセス許可がそのまま管理者グループにコピーされるため、
AdminSDHolderオブジェクトのアクセス許可を書き換えれば、管理者グループのアクセス許可を書き換えられます。
 
 
ここから先は、各種資料を参考にしながら、まとめてみましょう。
 
■管理者グループとはどのグループのこと?
グループの属性にAdminCountという属性がありますが、
この属性値が1になっているグループが対象です。
次のようなコマンドを実行すると、AdminCountが1のグループを見つけることができます。
(赤字部分はドメイン名にあわせて変えてください)
 

C:>ADFind.exe –b DC=example,DC=com –f “AdminCount=1” DN
 
実際に実行してみると、グループだけでなく、ユーザーもあることが確認できます。
 
どのグループをAdminSDHolderの保護対象にするかは、
CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=(ドメイン名)
コンテナのdsHeuristic属性で定義されています。
を参考にするとよいでしょう。
 
 
■いつ書き換わる?
1時間に1回、PDCエミュレーターが
SDPROP(Security Descriptor PROPagator)という機能を利用して
AdminSDHolderオブジェクトのアクセス許可を
管理者グループのアクセス許可にコピーします。
 
■ AdminSDHolderオブジェクトはどこにある?
Active DirectoryドメインパーティションのSystemコンテナの中に入っています。
 
■どうやってAdminSDHolderオブジェクトのアクセス許可を変える?
CN=AdminSDHolder,CN=System,DC=example,DC=comオブジェクトのアクセス許可を変更します。
変更には、dsacls.exeという、ADオブジェクトのアクセス許可を変更するコマンドを使います。
たとえば、exampl.comドメインでパスワードのリセットの権限をkuniiユーザーに委任したければ、
次のようなコマンドを実行します。
(このやり方は、MVPのチャブーンさんがこちらで紹介してくださってます)
 

C:>dsacls.exe CN=AdminSDHolder,CN=System,DC=example,DC=com /g examplekunii:CA;"Reset Password";
 
簡単に補足すると、ユーザー名kuniiの後に入る、CAはアクセス権の制御、Reset Passwordはパスワードのリセットの権限を与える指定です。
ちなみに、RPと入れればプロパティの読み取り、WPはプロパティの書き込み、などとなっています。
その他、指定可能な権限については前出のサポート技術情報KB232199を参考にしてください。
 
なお、AdminSDHolderについては、
TechNet Magazine 2009年9月号の「AdminSDHolderでグループとSDPROPを保護する」(ただし英語)
などでも解説されているので、興味のある方はご覧になってみてください。
 
 
なんとなく、まとめてみましたが、すべてを検証できたわけではないので、
間違っているところがあったら、ごめんなさい!