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

  • 質問

  • いつもお世話様です。普段から VisualStudioのVisualBasic

    の方でご指導頂いております、いつもありがとうございます。

     

    ActiveDirectory関連のことでまた調べておりまして、言語によら

    ない内容につき、こちらで質問させていただく方がよいのではない

    かと思いました、何卒よろしくお願いします。

     

    ActiveDirectoryAccessRule クラス の ObjectType プロパティ

    がどのようなものであるかがわからず悩んでおります。Helpに

    よりますと、これはGUIDクラスの値とのことでそれ以上の詳しい

    説明を求めてあちこち検索してみたのですが、よく理解できません

    でした

     

    たとえば、ある DirectoryEntry オブジェクトのセキュリティ設定

    を見てみますと、

      bf967a9c-0de6-11d0-a285-00aa003049e2 ・・・(*1)

    といったような値が出ていました。これは、ある[組織単位](OU)

    において、あるアカウントの ActiveDirectoryAccessRule の

      「このオブジェクトとすべての子オブジェクト」

    という適用先に対して

      「グループオブジェクトの作成」「グループオブジェクトの削除」

    というアクセス権を設定したときに現れていたObjectType プロ

    パティでした。

     

    この場合、(*1)という値は、これらの設定内容の場合にはいつ

    も変わらない「普遍的な値」として設定されている値なのでしょう

    か?それとも、サーバーによって、またあるいはそのアカウントに

    よって、あるいは、時によって変化しまう可能性のある値でしょう

    か?

     

    ネット上で見ることができた使用例の中ですと、このプロパティに

    直に値を与えて ActiveDirectoryAccessRule オブジェクトを

    コンストラクトしている例が見られましたが、Help等の説明ですと

    「世界中で重なる可能性の少ない唯一性が保証された値」です

    といったものでしたので、何か場合によっては同じ適用先でも時

    と場合によって変化してしまうようなものなのか・・・といった疑問

    を感じてしまいました・・・、こうした心配は無用でしょうか?

     

    またこのオブジェクトのコンストラクトのためには、自分の環境で

    テストして得られたこのプロパティの値を使ってしまえばよいの

    しょうか、これらについてご指導を頂けたらと思いました。

     

    何卒よろしくお願いします。

     

     

    2008年4月13日 15:45

すべての返信

  • こんにちは。中川俊輔 です。

     

    VS2005初心者さん、フォーラムのご利用ありがとうございます。

     

    新規生成するオブジェクトにGUIDを設定する場合には、生成ツールを使用できます。

    下記サイトを参考にしてください。

    GUID の作成 (guidgen.exe)

    http://msdn2.microsoft.com/ja-jp/library/ms241442.aspx

    GUID値を生成するには?[C#、VB]

    http://www.atmarkit.co.jp/fdotnet/dotnettips/675generateguid/generateguid.html

     

    また、Active DirectoryにおけるGUIDの扱いについては下記サイトが参考になると思います。

    Active Directoryオブジェクトの識別名(DN)とは

    http://www.atmarkit.co.jp/fwin2k/win2ktips/829addn/addn.html

     

    それでは!


    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

    詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年4月18日 9:46
  • 中川様、いつもお世話様です。前回もVBの方で助けて頂き

    ました、その節は大変助かりました、ありがとうございました!

     

    また今回は、GUIDそのものを知るための解説のリンクも教えて

    頂き、まことにありがとうございました。こちらも追って確認させて

    いただきます。

     

    回教えて頂きました、こちらのリンク:

    Active Directoryオブジェクトの識別名(DN)とは

    http://www.atmarkit.co.jp/fwin2k/win2ktips/829addn/addn.html

    から、以下の情報を得ることができました。

    -----

    ■オブジェクトGUID
     これは表には現れないが、Active Directoryではすべてのオブジェクトに対して、このGUIDによる一意なID(128bitのランダムな数値)を付け、内部的に管理している。Active Directoryのツリー構造や名前の変更に伴い、識別名やActive Directory正規名は変わるが、GUIDは変わらない。
    -----

     

    ここで「表には現れない」とはなっていますが、実際にはじめ

    の質問のように、ObjectType には現実に値として現れて来

    ていました。

     

    当初の不明点については、この中の、

    「Active Directoryのツリー構造や名前の変更に伴い、識別名

    やActive Directory正規名は変わるが、GUIDは変わらない」

    を見ますと、どうやら「ActiveDirectoryシステム」上の「不変の

    値」である、ように感じられました。

     

    その後、実際にサーバー上の ADSIエディタでいろいろと

    セキュリティ設定をした場合、その ActiveDirectoryAccessRule

    の読み取りを行っていきましたが、少なくともその範囲では不変

    なことが確認されていました。

     

    これが他のサーバーでもそうであれば問題ないわけですが、

    質問中に書きました「ネット上で検索された参考ソースコードでは

    直接値が代入されて使用されていること」から考え合わせると、

    やはりここでのご説明のように不変性を信じてもよいのかと思わ

    れた次第です。ありがとうございました!

     

    そこでまた一つ疑問が出て来てしまったのですが、

     

    その確認過程において、ADSIエディタでのセキュリティ設定では、

    適用先のオブジェクトをいろいろに変えることができるのですが、

    その変えたオブジェクトの種類を示すはずのこの ObjectType 

    プロパティにその値が必ずしも反映されない場合がある、ことが

    ありました。

     

    とくに、そのオブジェクトに「フルコントロール」の権限でアクセス

    できるようにした場合に ObjectType が 

      00000000-0000-0000-0000-000000000000

    となってしまって、ここからではオブジェクトの種類を識別する

    情報を取ることができないのか、と思われました。この場合でも

    ADSIエディタでのセキュリティ設定では識別して表示されてい

    ますので、どこかにその情報があるのだろうとは思われるのです

    が、それがどこにどのように存在しているのかまだわかってい

    ません。

     

    もしよろしければこの点についてもご指導を頂ければ有難い

    です。

     

    何かご存知の方がいらっしゃいましたら、何とぞご教示のほど

    をよろしくお願いします。

     

    2008年4月24日 3:44