アクセス許可とグループが Active Directory で機能する方法は気に入っていますが、実際にはアプリケーションを AD に結び付けたくありません。
AD と同じ種類の機能を含む既存のライブラリはありますか? 特に、グループの作成、グループへのユーザーの割り当て、グループへのアクセス許可の追加、およびユーザーまたはグループに適用されたアクセス許可の表示を行う機能は?
アクセス許可とグループが Active Directory で機能する方法は気に入っていますが、実際にはアプリケーションを AD に結び付けたくありません。
AD と同じ種類の機能を含む既存のライブラリはありますか? 特に、グループの作成、グループへのユーザーの割り当て、グループへのアクセス許可の追加、およびユーザーまたはグループに適用されたアクセス許可の表示を行う機能は?
ActiveDirectoryMembershipProvider クラスは MembershipProvider を継承します。
つまり、アプリケーションを AD 自体に関連付ける必要はなく、MembershipProvider モデルに関連付ける必要があります。このモデルは .net 全体で使用され、組み込みのコントロールとクラスでうまく機能します。
ここにサンプルがあります
//Any of these will work
ActiveDirectoryMembershipProvider provider = new ActiveDirectoryMembershipProvider();
//SqlMembershipProvider provider = new SqlMembershipProvider();
//MyCustomMemebershipProvider provider = new MyCustomMemebershipProvider();
MembershipProvider membershipProvider = provider;
if (membershipProvider.ValidateUser("username", "password"))
{
MembershipUser user = membershipProvider.GetUser("username", true);
}
else
{
//Do something
}
私はこのモデルの専門家ではありませんが、MembershipProvider をサブクラス化し、IPrincipal、IIdentity などを実装した経験があります。これを行うことは非常に柔軟で、一貫したアーキテクチャを維持します。
Microsoft-s AzMan-Authorization Managerを Active Directory のラッパーとして使用できる場合があります。
アクセス許可を求めるためにプログラミングする API が含まれています。
ロールを定義して権利をマップし、それらを xml ファイルに保存できる gui (azman.msc)。
Active Directory に対して構成できます。
私が読んだライブラリの1つは、RhinoSecurityです。業務の認証だけでなく認証も処理しているようで、一見の価値があります。私は実際にそれを実装していないので、それがどれほどうまく機能するかわかりません。
これには、Windows Server の一部である Authorization Manager (AzMan) を使用できます。.NET から統合するために、Enterprise Library 5 には、使用できるクラス ライブラリ タイプがあります。
OpenLDAPなどの無料の LDAP サーバーをセットアップし、DirectoryServicesを使用してそれにアクセスし、任意の数のツールを使用して LDAP ディレクトリを管理できます。いくつかの設定が必要です!
標準のディレクトリ サービスを使用する利点は、多数の管理ツールと、任意の数のアプリケーションをサポートできることです。欠点は、ディレクトリの管理とクエリを学習することです。AD を使用したくない特別な理由はありますか? Windows で作業している場合は、ほとんどの反対意見よりも Windows を強くお勧めします。
AD が重すぎる場合は、軽い AD である ADAM を使用できます。これは、後者に付属の ADSI Edit で構成できます。ここに提供されている良いドキュメントと、SOに関する構成の質問があります。
さらに、同じ種類の .NET API (たとえばSystem.DirectoryServices.AccountManagement ) を使用して ADAM を参照できます。
2つのこと。
初め :
ディレクトリとやり取りしたい場合は、LDAP API の上でプログラミングする必要があります。私が理解している限り、ADSI は LDAP の上で動作していますが、Active Directory からそれほど独立しているようには見えません。Mono プロジェクトを開始した Novellが LDAP の上でより独立した C# ライブラリを編集していることを私は知っています。
2番 :
アクセス許可、つまりアクセス制御リスト (ACL) は非標準機能です。アクセス権が Active Directory に実装される方法は、Sun e-Directory (特殊な属性) に実装される方法とは異なります。たとえば、OpenLDAP では、パーミッションは一種のアクセス フィルターに実装されています。
私は間違っているかもしれませんが (そうであることを願っています)、ディレクトリの許可をフェデレートするライブラリについて聞いたことがありません。