- PR -

ActiveDirectoryAccessRule の ObjectType プロパティについて

1
投稿者投稿内容
VS2005唸習者
会議室デビュー日: 2008/05/11
投稿数: 2
投稿日時: 2008-05-11 13:08
初めまして、VS2005唸習者と申します。別所では「VS2005初心者」
でした。1年経ちまして「唸習者」ぐらいにするべきかとは思われました次第です。
お世話をお掛け致しますが、何卒よろしくお願いします。

今回は ActiveDirectoryAccessRule の ObjectType プロパティ
についてご指導いただけましたらありがたく存じます。

本件はこちらのフォーラムにてお聞きしておりました、
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3200151&SiteID=7
においてなんとなく安心していたということはありましたものの
この中の後半の点を含めてすっきりと解決させておくべきと思われ
ました。よろしければこちらのフォーラムにてもご指導を賜れば
誠に幸いに存じます。

(1) ActiveDirectoryAccessRule クラス の ObjectType プロパティ

あちらのフォーラムで教えて頂きましたこちらのリンク:
Active Directoryオブジェクトの識別名(DN)とは
http://www.atmarkit.co.jp/fwin2k/win2ktips/829addn/addn.html
から、以下の情報を得ることができました。
-----
■オブジェクトGUID
 これは表には現れないが、Active Directoryではすべての
オブジェクトに対して、このGUIDによる一意なID(128bitのランダムな数値)
を付け、内部的に管理している。Active Directoryのツリー構造や
名前の変更に伴い、識別名やActive Directory正規名は変わるが、
GUIDは変わらない。
-----
からしますと、この ActiveDirectoryAccessRule クラスの
ObjectType プロパティというものは、おそらくサーバーの
固体が変わってもOSの固体が変わっても、
  ActiveDirectory サービスであれば、
  どこでも同じオブジェクト([組織単位OU]や[グループ]など)
  であれば、同じGUIDが使われる
ということで受け取ってよいのではないか、とは思われましたが、
このことの確認の件が一つと、もう一点は、

(2) オブジェクトの種類を示すはずのこの ObjectType プロパティ
  にその値が必ずしも反映されない場合があること

についてでした。ADSIエディタでのセキュリティ設定では適用先の
オブジェクトをいろいろに変えることができるのですが、
プログラム上から見ますと、その変えたオブジェクトの種類を示す
はずのこの ObjectType プロパティには、その値が必ずしも反映され
ない場合があることがわかりました。

とくにそのオブジェクトに「フルコントロール」の権限でアクセス
できるようにした場合に ObjectType が 

  00000000-0000-0000-0000-000000000000

となり、ここからではオブジェクトの種類を識別する情報を取る
ことができないように思われました。しかし、ADSIエディタでの
セキュリティ設定では識別して表示されていますので、どこかに
その情報があるのだろうとは思われるのですが、それがどこに
どのように存在しているのかまだわかりません。

よろしければこれらの点についてご指導を頂ければ有難く、何か
ご存知の方がいらっしゃいましたら何とぞご教示のほどお願い
致します。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-05-11 16:21
ActiveDirectoryAccessRule property はおそらく IADsAccessControlEntry interface の wrapper ですね。

IADsAccessControlEntry interface はその名が示すように ACE を扱う class ですね。単純に ACE といっても内部ではいろいろ種類があります。こちらに関しては下記を参照してください。

Access Control Entries
ACE Data Type

ObjectAccessRule.ObjectType property が利用できるのは Object-specific ACEs と呼ばれるものですね。Link先で説明されていますけど、これは AD の Attributes を個々に制御するため用意されているものだと思います。ADSI Edit では [アクセス許可エントリ] window に [プロパティ] tab が存在すると思います。ちゃんと検証していないけどおそらくこれだと思いますね。

ということで ObjectAccessRule.ObjectType propety が示すのは ActiveDirectory schema の attributes を表す GUID でしょう。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-05-11 16:26
追伸。ここら辺を扱う .NET Framework の class は、Windows native API の wraaper であることが多いのです。情報が足りないと思ったら Win32 and COM Development の方を参照するべきですね。
VS2005唸習者
会議室デビュー日: 2008/05/11
投稿数: 2
投稿日時: 2008-05-12 00:43
ちゃっぴ様、大変お世話になります。
ご指導に感謝します!

>Link先で説明されていますけど、これは AD の Attributes を
>個々に制御するため用意されているものだと思います。
>ADSI Edit では [アクセス許可エントリ] window に
>[プロパティ] tab が存在すると思います。

>ということで ObjectAccessRule.ObjectType propety が示すのは
>ActiveDirectory schema の attributes を表す GUID でしょう。

この辺は調査すべき内容が多岐にわたっていて、当方にとって
難解な部分があるところでした。ヒント、参照先を多数上げて
頂きましたので、落ち着いてこれらを調べてみます。

調べてわかったことから対策して結果が出たところで報告させて
頂きます!

さっそくのご指導、ありがとうございました。
まずはお礼まで!
1

スキルアップ/キャリアアップ(JOB@IT)