AuthorizationContext 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
권한 부여 이벤트의 컨텍스트 정보를 제공합니다. 여기에는 호출자를 나타내는 주체, 요청 중인 리소스 및 수행 중인 작업이 포함됩니다.
public ref class AuthorizationContext
public class AuthorizationContext
type AuthorizationContext = class
Public Class AuthorizationContext
- 상속
-
AuthorizationContext
예제
에 사용 되는 코드 예제는 AuthorizationContext 항목에서 가져온 것은 Claims Based Authorization
샘플입니다. 이 샘플 구성에 지정 된 정책에 따라 주체 권한을 부여할 수 있는 사용자 지정 클레임 권한 부여 관리자를 제공 합니다. 이 사용자 지정 관리자 세 가지 기본 구성 요소로 이루어져:에서 파생 된 클래스 ClaimsAuthorizationManager 관리자를 구현 하는 ResourceAction
리소스 및 작업을 하는 클래스 및 정책 판독기를 읽고 정책에 지정 된 컴파일는 구성 파일입니다. 이 정책 수를 컴파일된 다음 리소스에 대 한 액세스 권한을 부여 하기 위해 보안 주체를 평가 하기 위해 클레임 인증 관리자에서 사용할 수 있습니다. 일부 요소는 간단히 하기 위해 표시 됩니다. 이 샘플 및 사용할 수 있는 다른 샘플에 대 한 WIF에 대 한 다운로드 위치에 대 한, 참조 WIF 코드 샘플 인덱스합니다.
다음 코드에서는 CheckAccess 메서드는 사용자 지정 클레임 권한 부여 관리자에 대 한 합니다. 보안 주체는 함수 및 기준으로 리소스에 지정 된 작업을 AuthorizationContext 가 호출 됩니다. 이 함수를 반환 하거나 true
또는 false
, 부여 또는 보안 주체에 대 한 액세스를 거부 하는 합니다.
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 구성에 지정 된 권한 부여 정책의 예를 보여 줍니다. 첫 번째 정책에서 하나 지정된 된 리소스에서 지정 된 작업을 수행 하기 위해 지정된 된 클레임 보안 주체가 있어야 합니다. 두 번째 정책에서 보안 주체 모두 클레임을 지정된 된 리소스에서 지정 된 작업을 수행할 수 있어야 합니다. 나머지 모든 보안 주체가 소유 하는 클레임에 관계 없이 액세스를 자동으로 부여 됩니다.
<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 클래스에 보안 주체 (제목)에 지정된 된 리소스에 지정 된 작업을 수행할 권한이 부여 되어야 하는지 여부를 결정 합니다. 권한 부여 컨텍스트를 평가 하는 클레임 권한 부여 관리자는 CheckAccess 메서드와 하거나 거부 하거나 사용자에 의해 표시 되는 클레임을 기반으로 액세스를 부여 합니다.
Principal 속성에는 권한 부여 요청 하는 보안 주체가 포함 되어 있습니다 합니다 Resource 는 보안 주체는 권한이 부여 될 리소스를 포함 하는 속성 및 Action 속성 동작을 포함 하는 보안 주체가 리소스에서 수행 하는입니다. 리소스와 작업을 모두 클레임의 컬렉션으로 표시 됩니다. 그러나 대부분의 경우, 각 컬렉션에 단일 클레임을 포함합니다.
생성자
AuthorizationContext(ClaimsPrincipal, Collection<Claim>, Collection<Claim>) |
지정된 보안 주체, 리소스 클레임과 작업 클레임을 사용하여 AuthorizationContext 클래스의 새 인스턴스를 초기화합니다. |
AuthorizationContext(ClaimsPrincipal, String, String) |
지정된 보안 주체, 리소스 이름과 작업 이름을 사용하여 AuthorizationContext 클래스의 새 인스턴스를 초기화합니다. |
속성
Action |
주체에 대해 권한을 부여할 작업을 가져옵니다. |
Principal |
권한 부여가 요청되는 보안 주체를 가져옵니다. |
Resource |
권한을 부여할 주체에 대한 리소스를 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |