ClaimsPrincipal 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
여러 클레임 기반 ID를 지원하는 IPrincipal 구현입니다.
public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
interface IPrincipal
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ClaimsPrincipal = class
interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
- 상속
-
ClaimsPrincipal
- 파생
- 특성
- 구현
예제
다음 예제에서는 HTTP 요청에서 사용자가 제공한 클레임을 추출하고 HTTP 응답에 씁니다. 현재 사용자는 에서 HttpContextClaimsPrincipal로 읽습니다. 그런 다음 클레임을 읽은 다음 응답에 기록됩니다.
if (HttpContext.Current.User is ClaimsPrincipal principal)
{
foreach (Claim claim in principal.Claims)
{
Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");
}
}
설명
.NET Framework 4.5부터 WIF(Windows Identity Foundation) 및 클레임 기반 ID는 .NET Framework 완전히 통합됩니다. 즉, 이제 .NET Framework 보안 주체를 나타내는 많은 클래스가 단순히 인터페이스를 구현하는 IPrincipal 것이 아니라 에서 ClaimsPrincipal 파생됩니다. 인터페이스를 구현하는 IPrincipal 것 외에도 는 ClaimsPrincipal 클레임 작업에 유용한 속성과 메서드를 노출합니다.
ClaimsPrincipal 는 각각 ClaimsIdentity인 ID 컬렉션을 노출합니다. 일반적인 경우 속성을 통해 Identities 액세스되는 이 컬렉션에는 단일 요소만 있습니다.
대부분의 보안 주체 클래스가 파생되는 보안 주체로 .NET 4.5의 도입 ClaimsPrincipal 은 ID를 처리하는 방식으로 아무것도 변경하도록 강요하지 않습니다. 그러나 더 많은 가능성을 열고 더 세부적인 액세스 제어를 행사할 수 있는 더 많은 기회를 제공합니다. 예를 들면 다음과 같습니다.
애플리케이션 코드 자체는 드라이브 추가 인증, 권한 부여 및 개인 설정 작업에 대 한 현재 보안 주체에 포함 된 클레임이와 직접 협업할 수 있습니다.
실행이 코드에 도달하기 전에 인증 요청 및 권한 부여 정책을 처리할 수 있는 클레임 처리 파이프라인을 사용하여 리소스를 프런트할 수 있습니다. 파생 된 클래스의 인스턴스는 사용자 지정 클레임 인증 관리자를 사용 하 여 웹 기반 애플리케이션 또는 서비스를 구성할 수는 예를 들어를 ClaimsAuthenticationManager 클래스입니다. 이렇게 구성되면 요청 처리 파이프라인은 들어오는 요청의 Authenticate 컨텍스트를 나타내는 을 ClaimsPrincipal 전달하는 클레임 인증 관리자에서 메서드를 호출합니다. 그러면 클레임 인증 관리자가 들어오는 클레임의 값에 따라 인증을 수행할 수 있습니다. 들어오는 클레임 집합에 클레임을 필터링, 변환 또는 추가할 수도 있습니다. 예를 들어 로컬 사용자 프로필과 같은 로컬 데이터 원본에서 만든 새 클레임으로 들어오는 클레임 집합을 보강하는 데 사용할 수 있습니다.
파생 된 클래스의 인스턴스는 사용자 지정 클레임 권한 부여 관리자를 사용 하 여 웹 기반 애플리케이션을 구성할 수 있습니다는 ClaimsAuthorizationManager 클래스입니다. 이렇게 구성되면 요청 처리 파이프라인은 들어오는 ClaimsPrincipal 를 AuthorizationContext 패키지하고 클레임 권한 부여 관리자에서 메서드를 호출합니다 CheckAccess . 그러면 클레임 권한 부여 관리자가 들어오는 클레임에 따라 권한 부여를 적용할 수 있습니다.
인라인 코드 클레임 기반 액세스 검사는 사용자 지정 클레임 권한 부여 관리자를 사용 하 여 애플리케이션을 구성 하 고 하나를 사용 하 여 수행할 수 있습니다 합니다 ClaimsPrincipalPermission 명령적 액세스 검사를 수행 하는 클래스 또는 ClaimsPrincipalPermissionAttribute 선언적 액세스 하려면 확인합니다. 코드 클레임 기반 액세스 검사 처리 파이프라인 외부에서 수행 인라인와 함께 모든 애플리케이션에 사용할 수 있는으로 클레임 권한 부여 관리자가 구성 되어 있습니다.
속성을 ClaimsPrincipal로 캐스팅 Thread.CurrentPrincipal 하여 RP(신뢰 당사자) 애플리케이션에서 요청과 연결된 보안 주체 또는 스레드가 실행 중인 보안 주체에 대한 instance 가져올 ClaimsPrincipal 수 있습니다. 개체와 ClaimsPrincipal 연결된 클레임은 해당 Claims 속성을 통해 사용할 수 있습니다. 속성은 Claims 보안 주체와 연결된 ID에 포함된 모든 클레임을 반환합니다. 에서 여러 ClaimsIdentity 인스턴스를 포함 하는 ClaimsPrincipal 드문 경우는 속성을 사용 Identities 하거나 사용 하 여 기본 ID에 액세스할 수 있습니다는 Identity 속성입니다. ClaimsPrincipal 는 이러한 클레임을 검색하고 LINQ(언어 통합 쿼리)를 완전히 지원하는 여러 메서드를 제공합니다. ID는 또는 AddIdentity 메서드를 사용하여 AddIdentities 보안 주체에 추가할 수 있습니다.
참고
에 ID를 ClaimsPrincipal추가하려면 호출자에게 완전한 신뢰가 있어야 합니다.
기본적으로 WIF는 WindowsIdentity 속성을 통해 반환할 기본 ID를 선택할 때 개체의 Identity 우선 순위를 지정합니다. 속성을 통해 PrimaryIdentitySelector 대리자를 제공하여 선택을 수행하여 이 동작을 수정할 수 있습니다. 속성에 ClaimsPrincipalSelector 대 한 비슷한 기능을 제공 하는 Current 속성입니다.
클레임 기반 모델에서 보안 주체가 지정된 역할에 있는지 여부는 기본 ID에서 제공하는 클레임에 의해 결정됩니다. 메서드는 IsInRole 기본적으로 보안 주체와 연결된 각 ID를 검사하여 지정된 역할 값을 가진 클레임이 있는지 여부를 확인합니다. 역할 검사 중에 검사해야 하는 클레임을 결정하는 데 사용되는 클레임 형식(해당 Claim.Type 속성으로 표시됨)은 해당 ClaimsIdentity.RoleClaimType 속성을 통해 ID에 지정됩니다. 따라서 역할 검사 중에 검사되는 클레임은 보안 주체와 연결된 다른 ID에 대해 다른 형식일 수 있습니다.
생성자
ClaimsPrincipal() |
ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
ClaimsPrincipal(BinaryReader) |
지정된 ClaimsPrincipal을 사용하여 BinaryReader의 인스턴스를 초기화합니다. |
ClaimsPrincipal(IEnumerable<ClaimsIdentity>) |
지정된 클레임 ID를 사용하여 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
ClaimsPrincipal(IIdentity) |
지정된 ID에서 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
ClaimsPrincipal(IPrincipal) |
지정된 보안 주체에서 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
ClaimsPrincipal(SerializationInfo, StreamingContext) |
사용되지 않음.
ISerializable을 사용하여 만든 serialize된 스트림으로부터 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
속성
Claims |
이 클레임 보안 주체와 연결된 모든 클레임 ID의 모든 클레임을 포함하는 컬렉션을 가져옵니다. |
ClaimsPrincipalSelector |
Current 속성에 의해 반환된 클레임 보안 주체를 선택하는 데 사용된 대리자를 가져오거나 설정합니다. |
Current |
현재 클레임 주체를 가져옵니다. |
CustomSerializationData |
파생된 형식에서 제공하는 추가 데이터를 포함합니다. 일반적으로 WriteTo(BinaryWriter, Byte[])를 호출할 때 설정합니다. |
Identities |
이 클레임 보안 주체와 연결된 모든 클레임 ID를 포함하는 컬렉션을 가져옵니다. |
Identity |
이 클레임 보안 주체와 연결된 기본 클레임 ID를 가져옵니다. |
PrimaryIdentitySelector |
Identity 속성에 의해 반환된 클레임 ID를 선택하는 데 사용된 대리자를 가져오거나 설정합니다. |
메서드
AddIdentities(IEnumerable<ClaimsIdentity>) |
이 클레임 주체에 지정된 클레임 ID를 추가합니다. |
AddIdentity(ClaimsIdentity) |
이 클레임 보안 주체에 지정된 클레임 ID를 추가합니다. |
Clone() |
이 인스턴스의 복사본을 반환합니다. |
CreateClaimsIdentity(BinaryReader) |
새 클레임 ID를 만듭니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
FindAll(Predicate<Claim>) |
지정된 조건자와 일치하는 클레임을 모두 검색합니다. |
FindAll(String) |
모든 클레임 또는 지정된 클레임 형식을 갖는 클레임을 검색합니다. |
FindFirst(Predicate<Claim>) |
지정된 조건자와 일치하는 첫 번째 클레임을 검색합니다. |
FindFirst(String) |
지정된 클레임 형식으로 첫 번째 클레임을 검색합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
현재 SerializationInfo 개체를 serialize하는 데 필요한 데이터로 ClaimsPrincipal를 채웁니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
HasClaim(Predicate<Claim>) |
이 클레임 보안 주체와 연결된 클레임 ID에 지정된 조건자와 일치하는 클레임이 들어 있는지 여부를 확인합니다. |
HasClaim(String, String) |
이 클레임 보안 주체와 연결된 클레임 ID에 지정된 클레임 형식 및 값을 갖는 클레임이 들어 있는지 여부를 확인합니다. |
IsInRole(String) |
이 클레임 보안 주체가 나타내는 엔터티(사용자)가 지정된 역할에 속하는지 여부를 나타내는 값을 반환합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
WriteTo(BinaryWriter) |
BinaryWriter를 사용하여 직렬화합니다. |
WriteTo(BinaryWriter, Byte[]) |
BinaryWriter를 사용하여 직렬화합니다. |
적용 대상
추가 정보
.NET