ロール ベース セキュリティ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 のロールベースセキュリティでは、関連付けられている id から構築されたプリンシパルに関する情報を現在のスレッドで使用できるようにすることで、承認をサポートします。.NET 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 アプリケーションは、プリンシパルの id またはロールのメンバーシップ、またはその両方に基づいて承認決定を行うことができます。.NET 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 のロールベースセキュリティでは、 System.Security.Permissions.PrincipalPermission 共通言語ランタイムがコードアクセスセキュリティチェックに似た方法で承認を実行できるようにするオブジェクトを提供します。To provide ease of use and consistency with code access security, .NET 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 は、さまざまなアプリケーションのニーズを満たすのに十分な柔軟性と拡張性を備えた、ロールベースのセキュリティサポートを提供します。.NET 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 のロールベースセキュリティは、クライアントとサーバーのどちらでも使用できます。However, .NET 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.

関連項目See also