다음을 통해 공유


SecurityTokenService.GetOutputClaimsIdentity 메서드

정의

파생된 클래스에서 재정의된 경우 이 메서드는 발급된 토큰에 포함될 출력 주제 컬렉션을 반환합니다.

protected:
 abstract System::Security::Claims::ClaimsIdentity ^ GetOutputClaimsIdentity(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request, System::IdentityModel::Scope ^ scope);
protected abstract System.Security.Claims.ClaimsIdentity GetOutputClaimsIdentity (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, System.IdentityModel.Scope scope);
abstract member GetOutputClaimsIdentity : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken * System.IdentityModel.Scope -> System.Security.Claims.ClaimsIdentity
Protected MustOverride Function GetOutputClaimsIdentity (principal As ClaimsPrincipal, request As RequestSecurityToken, scope As Scope) As ClaimsIdentity

매개 변수

principal
ClaimsPrincipal

토큰 요청자의 ID를 나타내는 ClaimsPrincipal입니다.

request
RequestSecurityToken

보안 토큰 요청을 나타내는 RequestSecurityToken입니다. 여기에는 요청 메시지 뿐만 아니라 권한 부여 컨텍스트 등의 기타 클라이언트 관련 정보가 포함되어 있습니다.

scope
Scope

요청과 연결된 신뢰 당사자에 대한 정보가 포함된 Scope입니다. Scope 메서드에서 반환된 GetScope(ClaimsPrincipal, RequestSecurityToken) 개체입니다.

반환

발급된 보안 토큰에 배치될 클레임의 컬렉션을 포함하는 ClaimsIdentity입니다.

예제

이 항목에 사용 되는 코드 예제에서 가져온 것은 Custom Token 샘플입니다. 이 샘플에서는 간단한 웹 토큰 (SWT)의 처리를 사용 하도록 설정 하는 사용자 지정 클래스를 제공 하 고 SWT 토큰 서비스를 제공할 수 있는 패시브 STS 구현의 포함 되어 있습니다. 액티브 STS를 구현 하는 방법의 예 참조는 Federation Metadata 샘플입니다. 이러한 샘플 및 다른 샘플을 제공 하는 방법에 대 한 WIF에 대 한 다운로드 위치에 대 한, 참조 WIF 코드 샘플 인덱스합니다. 다음 코드를 재정의 하는 방법을 보여 줍니다는 GetOutputClaimsIdentity STS에 대 한 클레임을 반환 하는 방법입니다. 이 예제에서는 요청 보안 토큰 (RST) 메시지는 무시 하 고 STS에서 인증 된 것으로 사용자를 기반으로 하는 클레임의 컬렉션 반환 됩니다.

/// <summary>
/// This method returns the content of the issued token. The content is represented as a set of
/// IClaimIdentity intances, each instance corresponds to a single issued token. Currently, the Windows Identity Foundation only
/// supports a single token issuance, so the returned collection must always contain only a single instance.
/// </summary>
/// <param name="scope">The scope that was previously returned by GetScope method</param>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST, we don't use this in our implementation</param>
/// <returns></returns>
protected override ClaimsIdentity GetOutputClaimsIdentity( ClaimsPrincipal principal, RequestSecurityToken request, Scope scope )
{
    //
    // Return a default claim set which contains a custom decision claim
    // Here you can actually examine the user by looking at the IClaimsPrincipal and 
    // return the right decision based on that. 
    //
    ClaimsIdentity outgoingIdentity = new ClaimsIdentity();
    outgoingIdentity.AddClaims(principal.Claims);

    return outgoingIdentity;
}

설명

합니다 GetOutputClaimsIdentity 에서 구현 하는 토큰 발급 파이프라인에서 메서드를 호출 합니다 Issue 메서드. 반환 합니다는 ClaimsIdentity 기반으로 토큰 요청자에 게 발급 된 보안 토큰에 포함할 클레임을 포함 하는 (합니다 principal 매개 변수), 들어오는 RST (는 request 매개 변수)는 토큰은 신뢰 당사자 (하며 scope 매개 변수). 이 메서드의 논리는 다음 질문에 대답 보장과 관련:

  • 클레임 유형을 위한는 RP에 따라 응답에 포함 되어야? 일반적으로이 요청 별로 또는 각 RP에 필요한 클레임 형식 목록에서 RP 당 기준에 의해 결정 검사는 Claims 요청의 속성입니다. 그러나 논리 및 응답에 포함할 클레임을 결정 하는 것에 대 한 세부 정보에 게 달려 완전히 구현 합니다.

  • 응답의 클레임에는 클레임 값을 할당 해야? Id 공급자 (IP-STS)에 대 한 일반적으로 즉, 하나 이상의 클레임 요청자에서 사용 하 여 ClaimsPrincipal (제공한를 principal 매개 변수) 필요한 클레임 형식에 대 한 값을 반환 하는 저장소 (또는 다른 엔터티)에 액세스할 수 있습니다. 페더레이션 공급자 (R STS)에 대 한 일반적으로 즉; 요청을 처리 하는 요청자의 들어오는 클레임에 일종의 처리를 수행 합니다. 아마도 일부 클레임 요청자에 의해 수정 되지 않은 다른 사용자가를 통해 전달 하는 동안에 필터링 또는 변환을 수행 합니다. 물론, 응답에 포함할 클레임을 결정 하는 경우와 같이 세부 정보 및 이러한 클레임의 값을 결정 하는 방법의 논리에 게 달려 구현 합니다.

구현자 참고

SecurityTokenService 클래스의 구현에서 이 메서드를 재정의해야 합니다.

적용 대상

추가 정보