AuthorizationContext AuthorizationContext AuthorizationContext AuthorizationContext Class

정의

권한 부여 이벤트의 컨텍스트 정보를 제공합니다.Provides context information of an authorization event. 여기에는 호출자를 나타내는 주체, 요청 중인 리소스 및 수행 중인 작업이 포함됩니다.This includes the principal that represents the caller, the resource that is being requested, and the action that is being performed.

public ref class AuthorizationContext
public class AuthorizationContext
type AuthorizationContext = class
Public Class AuthorizationContext
상속
AuthorizationContextAuthorizationContextAuthorizationContextAuthorizationContext

예제

에 사용 되는 코드 예제는 AuthorizationContext 항목에서 가져온 것은 Claims Based Authorization 샘플입니다.The code example that is used in the AuthorizationContext topic is taken from the Claims Based Authorization sample. 이 샘플 구성에 지정 된 정책에 따라 주체 권한을 부여할 수 있는 사용자 지정 클레임 권한 부여 관리자를 제공 합니다.This sample provides a custom claims authorization manager that can authorize subjects based on a policy that is specified in configuration. 이 사용자 지정 관리자 세 가지 기본 구성 요소로 이루어져:에서 파생 된 클래스 ClaimsAuthorizationManager 관리자를 구현 하는 ResourceAction 리소스 및 작업을 하는 클래스 및 정책 판독기를 읽고 정책에 지정 된 컴파일는 구성 파일입니다.This custom manager consists of three basic components: a class derived from ClaimsAuthorizationManager that implements the manager, the ResourceAction class that pairs a resource and an action, and a policy reader that reads and compiles policy that is specified in the configuration file. 이 정책 수를 컴파일된 다음 리소스에 대 한 액세스 권한을 부여 하기 위해 보안 주체를 평가 하기 위해 클레임 인증 관리자에서 사용할 수 있습니다.This compiled policy can then be used by the claims authorization manager to evaluate a principal in order to authorize access to resources. 일부 요소는 간단히 하기 위해 표시 됩니다.Not all elements are shown for the sake of brevity. 이 샘플 및 사용할 수 있는 다른 샘플에 대 한 WIF에 대 한 다운로드 위치에 대 한, 참조 WIF 코드 샘플 인덱스합니다.For information about this sample and other samples available for WIF and about where to download them, see WIF Code Sample Index.

다음 코드에서는 CheckAccess 메서드는 사용자 지정 클레임 권한 부여 관리자에 대 한 합니다.The following code shows the CheckAccess method for the custom claims authorization manager. 보안 주체는 함수 및 기준으로 리소스에 지정 된 작업을 AuthorizationContext 가 호출 됩니다.A function that evaluates the principal based on the resource and action specified in the AuthorizationContext is invoked. 이 함수를 반환 하거나 true 또는 false, 부여 또는 보안 주체에 대 한 액세스를 거부 하는 합니다.This function returns either true or false, which either grants or denies access to the principal.

static Dictionary<ResourceAction, Func<ClaimsPrincipal, bool>> _policies = new Dictionary<ResourceAction, Func<ClaimsPrincipal, bool>>();
PolicyReader _policyReader = new PolicyReader();
    /// <summary>
    /// Checks if the principal specified in the authorization context is authorized to perform action specified in the authorization context 
    /// on the specified resoure
    /// </summary>
    /// <param name="pec">Authorization context</param>
    /// <returns>true if authorized, false otherwise</returns>
    public override bool CheckAccess(AuthorizationContext pec)
    {
        //
        // Evaluate the policy against the claims of the 
        // principal to determine access
        //
        bool access = false;
        try
        {
            ResourceAction ra = new ResourceAction(pec.Resource.First<Claim>().Value, pec.Action.First<Claim>().Value);

            access = _policies[ra](pec.Principal);
        }
        catch (Exception)
        {
            access = false;
        }

        return access;
    }
}

다음 XML 구성에 지정 된 권한 부여 정책의 예를 보여 줍니다.The following XML shows an example of the authorization policy that was specified in configuration. 첫 번째 정책에서 하나 지정된 된 리소스에서 지정 된 작업을 수행 하기 위해 지정된 된 클레임 보안 주체가 있어야 합니다.In the first policy, the principal must possess one of the specified claims in order to perform the specified action on the specified resource. 두 번째 정책에서 보안 주체 모두 클레임을 지정된 된 리소스에서 지정 된 작업을 수행할 수 있어야 합니다.In the second policy, the principal must possess both claims to be able to perform the specified action on the specified resource. 나머지 모든 보안 주체가 소유 하는 클레임에 관계 없이 액세스를 자동으로 부여 됩니다.In all others, the principal is automatically granted access regardless of the claims it possesses.

<system.identityModel>  
  <identityConfiguration>  
    <claimsAuthorizationManager type="ClaimsAuthorizationLibrary.MyClaimsAuthorizationManager, ClaimsAuthorizationLibrary">  
      <policy resource="http://localhost:28491/Developers.aspx" action="GET">  
        <or>  
          <claim claimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" claimValue="developer" />  
          <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Administrator" />  
        </or>  
      </policy>  
      <policy resource="http://localhost:28491/Administrators.aspx" action="GET">  
        <and>  
          <claim claimType="http://schemas.xmlsoap.org/claims/Group" claimValue="Administrator" />  
          <claim claimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country" claimValue="USA" />  
        </and>  
      </policy>  
      <policy resource="http://localhost:28491/Default.aspx" action="GET">  
      </policy>  
      <policy resource="http://localhost:28491/" action="GET">  
      </policy>  
      <policy resource="http://localhost:28491/Claims.aspx" action="GET">  
      </policy>  
    </claimsAuthorizationManager>  
  
    ...  
  
  </identityConfiguration>  
</system.identityModel>  

설명

AuthorizationContext 클래스는 클레임 권한 부여 관리자의 구현에서 사용 되는 컨텍스트를 나타냅니다는 ClaimsAuthorizationManager 클래스에 보안 주체 (제목)에 지정된 된 리소스에 지정 된 작업을 수행할 권한이 부여 되어야 하는지 여부를 결정 합니다.The AuthorizationContext class represents the context that is used by a claims authorization manager, an implementation of the ClaimsAuthorizationManager class, to determine whether a principal (subject) should be authorized to perform a specified action on a given resource. 권한 부여 컨텍스트를 평가 하는 클레임 권한 부여 관리자는 CheckAccess 메서드와 하거나 거부 하거나 사용자에 의해 표시 되는 클레임을 기반으로 액세스를 부여 합니다.The claims authorization manager evaluates the authorization context in the CheckAccess method and either denies or grants access based on the claims presented by the principal.

Principal 속성에는 권한 부여 요청 하는 보안 주체가 포함 되어 있습니다 합니다 Resource 는 보안 주체는 권한이 부여 될 리소스를 포함 하는 속성 및 Action 속성 동작을 포함 하는 보안 주체가 리소스에서 수행 하는입니다.The Principal property contains the principal for which authorization is being requested, the Resource property contains the resource on which the principal is being authorized, and the Action property contains the actions that the principal intends to perform on the resource. 리소스와 작업을 모두 클레임의 컬렉션으로 표시 됩니다. 그러나 대부분의 경우, 각 컬렉션에 단일 클레임을 포함합니다.Both the resource and the action are represented as a collection of claims; however, in most cases, each collection contains a single claim.

생성자

AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>) AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>) AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>) AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>)

지정된 보안 주체, 리소스 클레임과 작업 클레임을 사용하여 AuthorizationContext 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AuthorizationContext class with the specified principal, resource claim, and action claim.

AuthorizationContext(ClaimsPrincipal, String, String) AuthorizationContext(ClaimsPrincipal, String, String) AuthorizationContext(ClaimsPrincipal, String, String) AuthorizationContext(ClaimsPrincipal, String, String)

지정된 보안 주체, 리소스 이름과 작업 이름을 사용하여 AuthorizationContext 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AuthorizationContext class with the specified principal, resource name, and action name.

속성

Action Action Action Action

주체에 대해 권한을 부여할 작업을 가져옵니다.Gets the action for which the principal is to be authorized.

Principal Principal Principal Principal

권한 부여가 요청되는 보안 주체를 가져옵니다.Gets the principal (subject) for which authorization is being requested.

Resource Resource Resource Resource

권한을 부여할 주체에 대한 리소스를 가져옵니다.Gets the resource on which the principal is to be authorized.

메서드

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

적용 대상