ロール ベース セキュリティRole-Based Security

財務アプリケーションや業務アプリケーションでは、ポリシーを適用するためにロールが使用されることがよくあります。Roles are often used in financial or business applications to enforce policy. たとえば、要求を出しているユーザーが指定のロールのメンバーかどうかに基づいて、処理するトランザクションのサイズにアプリケーションが制限を課すことがあります。For example, an application might impose limits on the size of the transaction being processed depending on whether the user making the request is a member of a specified role. たとえば、事務員には指定のしきい値よりも小さいトランザクションを処理する権限が与えられ、スーパーバイザにはより高いしきい値が与えられ、その上司にはさらに高いしきい値が与えられる (または制限がまったくない)、という場合です。Clerks might have authorization to process transactions that are less than a specified threshold, supervisors might have a higher limit, and vice-presidents might have a still higher limit (or no limit at all). アプリケーションで 1 つのアクションを完了するために複数の承認を必要とするときにも、ロール ベース セキュリティを使用できます。Role-based security can also be used when an application requires multiple approvals to complete an action. たとえば、どの社員も購買の要求を生成できるものの、その要求を仕入先に送信できる購買発注に変換できるのは購買部門だけにする場合などが考えられます。Such a case might be a purchasing system in which any employee can generate a purchase request, but only a purchasing agent can convert that request into a purchase order that can be sent to a supplier.

.NET Framework のロール ベース セキュリティでは、関連付けられた ID で構築されるプリンシパルについての情報を現在のスレッドで使用できるようにすることによって、承認をサポートします。.NET Framework role-based security supports authorization by making information about the principal, which is constructed from an associated identity, available to the current thread. この場合の ID (および ID を利用して定義されるプリンシパル) は、Windows アカウントに基づく ID か、または Windows アカウントとは無関係のカスタム ID です。The identity (and the principal it helps to define) can be either based on a Windows account or be a custom identity unrelated to a Windows account. .NET Framework アプリケーションは、プリンシパルの ID、ロール メンバーシップ、またはその両方に基づいて、承認の決定を行うことができます。.NET Framework applications can make authorization decisions based on the principal's identity or role membership, or both. ロールとは、セキュリティに関して同じ特権を持つプリンシパルの名前付きセット (窓口係や責任者など) です。A role is a named set of principals that have the same privileges with respect to security (such as a teller or a manager). プリンシパルは、1 つ以上のロールのメンバーであることができます。A principal can be a member of one or more roles. このため、アプリケーションはロール メンバーシップを使用して、要求されたアクションを実行する権限がプリンシパルにあるかどうかを決定できます。Therefore, applications can use role membership to determine whether a principal is authorized to perform a requested action.

使いやすさ、およびコード アクセス セキュリティとの一貫性を実現するため、.NET Framework のロール ベース セキュリティには System.Security.Permissions.PrincipalPermission オブジェクトが用意されています。共通言語ランタイムは、このオブジェクトを使用することによって、コード アクセス セキュリティ チェックに似た方法で承認を実行できます。To provide ease of use and consistency with code access security, .NET Framework role-based security provides System.Security.Permissions.PrincipalPermission objects that enable the common language runtime to perform authorization in a way that is similar to code access security checks. PrincipalPermission クラスは、プリンシパルが一致している必要のある ID またはロールを表し、宣言セキュリティ チェックと強制セキュリティ チェックの両方と互換性があります。The PrincipalPermission class represents the identity or role that the principal must match and is compatible with both declarative and imperative security checks. プリンシパルの ID 情報に直接アクセスし、必要なときに、コード内でロール チェックと ID チェックを実行することもできます。You can also access a principal's identity information directly and perform role and identity checks in your code when needed.

.NET Framework のロール ベース セキュリティには、幅広いアプリケーションのニーズを満たせるだけの柔軟性と拡張性があります。The .NET Framework provides role-based security support that is flexible and extensible enough to meet the needs of a wide spectrum of applications. COM+ 1.0 Services などの既存の認証インフラストラクチャと相互運用する方法と、カスタムの認証システムを作成する方法のどちらかを選択できます。You can choose to interoperate with existing authentication infrastructures, such as COM+ 1.0 Services, or to create a custom authentication system. ロール ベース セキュリティは、主にサーバー上で処理される ASP.NET Web アプリケーションでの使用に適しています。Role-based security is particularly well-suited for use in ASP.NET Web applications, which are processed primarily on the server. とはいえ、.NET Framework のロール ベース セキュリティは、クライアントとサーバーのどちらでも使用できます。However, .NET Framework role-based security can be used on either the client or the server.

このセクションを読む前で説明されている内容を理解することを確認セキュリティの基本概念します。Before reading this section, make sure that you understand the material presented in Key Security Concepts.

タイトルTitle 説明Description
プリンシパル オブジェクトと ID オブジェクトPrincipal and Identity Objects Windows ID と Windows プリンシパル、汎用 ID と汎用プリンシパルの両方について、セットアップと管理方法を説明します。Explains how to set up and manage both Windows and generic identities and principals.
セキュリティの基本概念Key Security Concepts .NET Framework のセキュリティを使用する前に理解しておく必要のある、基本的な概念について説明します。Introduces fundamental concepts you must understand before using .NET Framework security.

参照Reference

System.Security.Permissions.PrincipalPermission