2

を通じて配布された .NET アプリケーションがありますClickOnce。アプリケーション内のセキュリティはWindowsPrincipal.IsInRole(GroupName)、グループのセットをリソースとして使用する方法で実装されます。この構造は、グループと同じドメイン内のユーザーに対してうまく機能します。残念ながら、マシン上で動作するアプリケーションを使用し、ドメインによって信頼されているが同じフォレストにはない別のドメインのユーザー アカウントを使用する必要があるユーザーがいます。

IsInRole()グループ メンバーシップのローカル マシン上の AD チケットをクエリするようです。残念ながら、このチケットには、マシンのドメインのドメイン ローカル グループと、他の信頼できるドメインのグローバルおよびユニバーサル グループしか含まれていません。私たちのグループは、最初のドメインのドメイン ローカル グループです。キャッチ 22 の状況は、AD がグローバル グループまたはユニバーサル グループのいずれかで外部セキュリティ プリンシパルを許可していないため、2 番目のドメインのユーザーがクエリを実行することはできますが、そのメンバーになることはできません (少し無意味です! )

説明: DOM1 と DOM2 の 2 つのドメインがあり、その間に信頼関係が設定されていますが、それらは同じフォレスト内にはありません。

DOM1\User1
DOM2\User2  

2人のユーザーです。

と の両方を、両方のユーザーに表示され、両方を含むことができる 1 つのグループUser1に入れたいと思います。User2

現在確認できる唯一の方法は次のとおりです ({} は、グループのメンバーを示します。DL=Domain Local および GLO=GlobalGroup です)。

2 つのグローバル グループを各ドメインに 1 つずつ作成します。

DOM1\GLOGroup1 : {DOM1\User1}  
DOM2\GLOGroup1 : {DOM2\User2}

および 2 つのグローバル グループを含む 2 つのドメイン ローカル グループ:

DOM1\DLGroup1 : {DOM1\GLOGroup1, DOM2\GLOGroup1}  
DOM2\DLGroup1 : {DOM1\GLOGroup1, DOM2\GLOGroup1}

しかし、実際には 2 つ以上のドメインと、グループの階層を含めて約 70 のグループを管理する必要があり、他のドメインのグループの管理を直接制御できないため、これは実際には受け入れられません。

LDAP を使用するアプローチについてはまだ何も考えていませんが、私が読んだ少しのことから、この目的には一般的に推奨されていないと思いますか?

4

3 に答える 3

1

代わりに LDAP を使用することもできますが、クエリを実行する LDAP サーバーを知っておく必要があります。サンプルコードについては、この回答を参照してください

于 2008-11-18T04:44:23.040 に答える
0

複数の信頼できるドメインからのユーザーを許可するのは、ユニバーサル グループであるべきではありませんか?

AD をチェックしているユーザー アカウントも、各広告グループ ou を読み取ることができる必要があります。

マウロ

于 2008-11-17T17:13:18.973 に答える
0

ドキュメントには次のように記載されています(文字列のオーバーロードについて):

ロールは、現在のプリンシパルのドメインに対してのみ決定できます。

しかし、それは SecurityIdentifier オーバーロードについては述べていません。したがって、おそらく機能します(テストしていません)。sid は wmi で取得できます。例は見当たりません。

于 2008-11-17T20:49:04.373 に答える