Active Directoryでは、グループを別のグループのメンバーとして割り当てることができます。ですから、正しく理解すれば、 "Foo"というADグループを作成し、 "Foo.Bar"と "Foo.Foobar"の2つのサブグループを作成します。これら2つのサブグループをグループ "Foo"のメンバーとして割り当てます。
次に、ユーザーが "Foo.Bar"をグループ化した場合。彼は "Foo"と "Foo.Bar"の両方の役割を果たします。つまり、そのユーザーのWindowsPrincipalを取得した場合は、WindowsPrincipal.IsInRole( "Foo")とWindowsPrincipal.IsInRole( "Foo.Bar")の両方がtrueを返します。
IsInRole()関数を使用してメンバーシップを確認するのではなく、純粋なLDAPクエリを使用している場合は、ネストされたグループ関係を簡単に調べることができません。単一のLDAPクエリ呼び出しを行う方法を実際に調べたい場合は、ADユーザーオブジェクトの "tokenGroups"属性を探してみてください。これは、オンザフライでADによって計算された計算された属性です。ネストされたグループ情報がすべて含まれます。唯一のことは、SIDを格納していることです。したがって、ADグループのSIDを見つけてLDAPバイナリ形式に変換し、クエリを実行する必要があります。
あなたはazmanの役割について話していますか?または、ADグループを役割として使用することについて話していますか? –
@Harvey ADグループ。 – Jay
ADグループParentを作成して、ADグループChild1とChild2をグループParentに追加することができます。次に、Child1に追加されたユーザーには、自動的にParentおよびChild1ロールが割り当てられます。 IsInRole()を使用している場合は、自動的に機能します。 –