ユーザーを照会するときに Active Directory グループが表示されないのはなぜですか?

ユーザーを照会するときに Active Directory グループが表示されないのはなぜですか?

私は2つのドメインを持っていますそしてB

ドメインAセキュリティグループを含むSECこのグループは、Web アプリケーションにアクセスするために使用されます。このグループはセキュリティ グループであり、グループの種類はドメイン ローカルです。このドメインには、ほとんどのユーザーも含まれます。

ドメインB少数のユーザーが含まれており、これらのユーザーはドメインにあるセキュリティグループの直接のメンバーです。

私の Web アプリケーション (ASP.NET MVC) では、統合された Windows 認証プロバイダーを使用して、ユーザーがセキュリティ グループのメンバーであるかどうかを確認します。その後、Active Directory でユーザーを検索し、ユーザーが所属する Active Directory グループに基づいて、ユーザーに一連のロールを割り当てます。

ドメインのユーザーのtokengroupsプロパティを照会する場合彼らがメンバーであることがわかりますSECグループ。

しかし、ドメインのメンバーを照会するとBまた、tokengroupsプロパティを使用しても、SECtokengroups プロパティ内のグループ。

私の質問

  • ドメインのメンバーがB実際にはグループのメンバーであるのに、グループのメンバーではないようです。ユーザーのグループを検索するときは、tokengroups プロパティを使用します。

    私がそう思う理由は、グループのプロパティを見るとメンバーのリストにユーザーが表示されるからです。さらに、彼らはWebアプリケーションで認証されていますが、私のモジュールがドメインからメンバーのグループを見つけようとするとBSECグループは存在しません。

  • すべてのグループがセキュリティ グループであり、ドメイン ローカルである現在の設定は、本当に最善の方法でしょうか。必要なのは、複数のドメインからグループとユーザーを追加できる一連の「マーカー」グループです。

ユーザーのセキュリティグループを取得するには、tokengroupsプロパティを使用します。http://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Retrieving_the_Users_Token_Groups

答え1

Active Directory から tokenGroups を正しく取得するには、GC にバインドする必要があると思います。つまり、バインド文字列で、LDAP:// を GC:// に置き換えると、うまく動作するはずです。

関連情報