ロール ベース セキュリティの概要
更新 : 2007 年 11 月
財務アプリケーションや業務アプリケーションでは、ポリシーを適用するためにロールが使用されることがよくあります。たとえば、要求を出しているユーザーが指定のロールのメンバかどうかに基づいて、処理するトランザクションのサイズにアプリケーションが制限を課すことがあります。たとえば、事務員には指定のしきい値よりも小さいトランザクションを処理する権限が与えられ、スーパーバイザにはより高いしきい値が与えられ、その上司にはさらに高いしきい値が与えられる (または制限がまったくない)、という場合です。アプリケーションで 1 つのアクションを完了するために複数の承認を必要とするときにも、ロール ベース セキュリティを使用できます。たとえば、どの社員も購買の要求を生成できるが、その要求を仕入先に送信できる購買発注に変換できるのは購買部門だけにする場合などが考えられます。
.NET Framework のロール ベース セキュリティでは、関連付けられた ID で構築されるプリンシパルについての情報を現在のスレッドで使用できるようにすることによって、承認をサポートします。この場合の ID (および ID を利用して定義されるプリンシパル) は、Windows アカウントに基づく ID か、または Windows アカウントとは無関係のカスタム ID です。.NET Framework アプリケーションは、プリンシパルの ID、ロール メンバシップ、またはその両方に基づいて、承認の決定を行うことができます。ロールとは、セキュリティに関して同じ特権を持つプリンシパルの名前付きセット (窓口係や責任者など) です。プリンシパルは、1 つ以上のロールのメンバであることができます。このため、アプリケーションはロール メンバシップを使用して、要求されたアクションを実行する権限がプリンシパルにあるかどうかを決定できます。
使いやすさ、およびコード アクセス セキュリティとの一貫性を実現するため、.NET Framework のロール ベース セキュリティには PrincipalPermission オブジェクトが用意されています。共通言語ランタイムは、このオブジェクトを使用することによって、コード アクセス セキュリティ チェックに似た方法で承認を実行できます。PrincipalPermission クラスは、プリンシパルが一致している必要のある ID またはロールを表し、宣言セキュリティ チェックと強制セキュリティ チェックの両方と互換性があります。必要な場合は、プリンシパルの ID 情報に直接アクセスし、コード内でロール チェックと ID チェックを実行することもできます。
.NET Framework のロール ベース セキュリティには、幅広いアプリケーションのニーズを満たせるだけの柔軟性と拡張性があります。COM+ 1.0 Services などの既存の認証インフラストラクチャと相互運用する方法と、カスタムの認証システムを作成する方法のどちらかを選択できます。ロール ベース セキュリティは、主にサーバー上で処理される ASP.NET Web アプリケーションでの使用に適しています。.NET Framework のロール ベース セキュリティは、クライアントとサーバーのどちらでも使用できます。