を通じて配布された .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 を使用するアプローチについてはまだ何も考えていませんが、私が読んだ少しのことから、この目的には一般的に推奨されていないと思いますか?