다음을 통해 공유


SessionSecurityTokenHandler 클래스

정의

SecurityTokenHandler 형식의 보안 토큰을 처리하는 SessionSecurityToken입니다.

public ref class SessionSecurityTokenHandler : System::IdentityModel::Tokens::SecurityTokenHandler
public class SessionSecurityTokenHandler : System.IdentityModel.Tokens.SecurityTokenHandler
type SessionSecurityTokenHandler = class
    inherit SecurityTokenHandler
Public Class SessionSecurityTokenHandler
Inherits SecurityTokenHandler
상속
SessionSecurityTokenHandler
파생

예제

다음 XML의 인스턴스를 사용 하 여 토큰 처리기 컬렉션의 기본 세션 보안 토큰 처리기를 교체 하는 방법을 보여 줍니다는 MachineKeySessionSecurityTokenHandler 구성에서 클래스입니다.

<securityTokenHandlers>
  <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>

설명

SessionSecurityTokenHandler 클래스 직렬화, 역직렬화하 고 세션 토큰의 유효성을 검사 합니다. 세션 토큰은 토큰 형식의 SessionSecurityToken합니다. SessionSecurityTokenHandler 클래스가 쿠키 형식 토큰을 serialize 합니다. 기본적으로 클래스 Ws-secure Conversation Feb2005 또는 Ws-secure Conversation 1.3에 토큰을 serialize <wsc:SecurityContextToken> 요소입니다. 세션 토큰에서 사용 되는 WSFederationAuthenticationModule (WSFAM) 및 SessionAuthenticationModule (SAM) 세션에 대 한 정보를 저장 하이 주로 ClaimsPrincipal 인증된 된 사용자 및 세션 시작 및 만료 시간을 사용 하 여 연결 합니다.

수동 시나리오에서 합니다 WSFederationAuthenticationModule 를 호출 합니다 SessionAuthenticationModule (SAM)에서 세션 토큰을 만드는 인증 파이프라인에서는 ClaimsPrincipal 인증된 된 사용자를 나타내는입니다. SAM를 사용 하 여 해당 구성 SessionSecurityTokenHandler 토큰을 만드는 쿠키로 직렬화 (고 이후 요청에서 쿠키에서 토큰을 역직렬화할). 해당 구성의 인스턴스를 사용 하 여 SAM CookieHandler HTTP 응답에 쿠키를 다시 작성 하는 클래스입니다. 이 쿠키는 클라이언트에 반환 됩니다 하 고 이후 요청에서 클라이언트 id 공급자를 다시 보안 토큰을 가져오는으로 왕복 하는 것이 아니라 쿠키를 제공할 수 있습니다. WIF를 사용 하 여 세션을 작동 하는 방법에 대 한 자세한 내용은 참조 하세요. WIF 세션 관리합니다.

참고

<securityTokenHandlers> 구성 요소를 사용하여 애플리케이션의 세션을 보호하는 책임이 있는 을 지정할 SessionSecurityTokenHandler 수 있습니다. 개발자가 주의 기울여야이 구성 설정을 변경 하는 경우 잘못 구성 된 시스템 애플리케이션이 손상 될 수 없습니다. 예를 들어 파생된 SessionSecurityTokenHandler 를 지정하고 빈 Transforms(CookieTransform) 컬렉션을 기본으로 전달하면 사용자 ID가 보호되지 않은 쿠키로 직렬화됩니다. 이 id를 수정 하 고 따라서 권한을 변경 하는 공격자가 허용할 수 있습니다.

세션 토큰 모드에 있으면 참조, 즉, 해당 SessionSecurityToken.IsReferenceMode 속성은 true, 세션 토큰 처리기만의 해당 키를 다시 생성 하는 데 필요한 세션 토큰의 속성을 serialize 된 SessionSecurityTokenCache합니다. 기본값은 SessionSecurityTokenCacheKey 클래스는 캐시 키를 나타내는 데 쓰고 토큰 처리기는 SessionSecurityToken.ContextIdSessionSecurityToken.KeyGeneration 토큰의 속성입니다. 경우 세션 토큰은 참조 모드에 있지 않은 것입니다는 SessionSecurityToken.IsReferenceMode 속성은 false, 그런 다음 이전에 언급 된 속성 외에도 처리기를 호출 하는 ApplyTransforms 저장소와 토큰에서 serialize 된 바이트 배열에 대 한 메서드는 도 쿠키의 결과 값입니다. 토큰이 serialize 되는 방법을 하는 방법에 대 한 자세한 내용은 참조는 SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) 메서드.

합니다 Transforms 속성에서 토큰을 세션에 적용 되는 변환의 목록을 가져옵니다는 ApplyTransforms 메서드. 파생 되는 모든 변환 된 CookieTransform 클래스입니다. 기본값은 DeflateCookieTransform 하며 ProtectedDataCookieTransform 적용 됩니다. ProtectedDataCookieTransform 쿠키 자료를 보호 하기 위해 데이터 보호 API (DPAPI)를 사용 합니다. DPAPI는 해당 보호 알고리즘에서 실행 되는 컴퓨터에 관련 된 키를 사용 합니다. 이 따라서 이러한 시나리오에서는 한 컴퓨터에서 작성 하는 토큰을 다른 컴퓨터에서 읽을 수 해야 때문에 기본 세션 토큰 처리기를 웹 팜 시나리오에서 사용 가능 하지 않습니다. 이 문제를 뚫을 수 있는 다양 한 전략을 사용할 수 있습니다. 예를 들어, 다음을 수행할 수 있습니다.

세션을 사용 하 여 웹 팜 시나리오에 대 한 자세한 내용은 참조 하세요. WIF 및 웹 팜합니다.

SessionSecurityTokenHandler 기본 토큰 처리기 컬렉션에 포함되지만, 먼저 securityTokenHandlers> 요소 아래에<remove> 요소를 지정하여< 컬렉션에서 기본 처리기를 제거한 다음 add> 요소를 사용하여< 사용자 지정 토큰 처리기를 추가하여 사용자 지정 세션 토큰 처리기로 바꿀 수 있습니다. 기본적으로 요소 아래에 <add>sessionTokenRequirement> 요소를 포함하여< 기본 토큰 수명을 지정할 수 있습니다. 사용자 지정 구성 요소에서 수행할 사용자 지정 토큰 처리기를 디자인할 수 있습니다는 <add> 재정의 하 여 요소를 LoadCustomConfiguration 논리 처리를 제공 하는 방법입니다.

생성자

SessionSecurityTokenHandler()

기본 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

지정된 쿠키 변환을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

지정된 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.

필드

DefaultCookieTransforms

쿠키, DeflateCookieTransformProtectedDataCookieTransform에 적용할 기본 변환 목록을 포함하고 있는 읽기 전용 컬렉션입니다.

DefaultLifetime

쿠키의 기본 수명을 지정하는 상수(10시간)입니다.

속성

CanValidateToken

이 처리기가 형식이 SessionSecurityToken인 토큰의 유효성 검사를 지원하는지 나타내는 값을 가져옵니다.

CanWriteToken

이 처리기가 SessionSecurityToken 형식의 토큰을 쓸 수 있는지 나타내는 값을 가져옵니다.

Configuration

현재 인스턴스에 대한 구성을 제공하는 SecurityTokenHandlerConfiguration 개체를 가져오거나 설정합니다.

(다음에서 상속됨 SecurityTokenHandler)
ContainingCollection

현재 인스턴스를 포함하는 토큰 처리기 컬렉션을 가져옵니다.

(다음에서 상속됨 SecurityTokenHandler)
CookieElementName

쿠키 요소의 이름을 가져옵니다.

CookieNamespace

쿠키 요소의 네임스페이스를 가져옵니다.

DefaultTokenLifetime

기본 토큰 수명을 가져옵니다.

TokenLifetime

토큰 수명을 가져오거나 설정합니다.

TokenType

이 처리기가 처리하는 토큰의 형식을 가져옵니다.

Transforms

쿠키에 적용할 변환을 가져옵니다.

메서드

ApplyTransforms(Byte[], Boolean)

지정된 쿠키를 인코딩하거나 디코딩하기 위해 Transforms 속성으로 지정된 변환을 적용합니다.

CanReadKeyIdentifierClause(XmlReader)

지정된 XML 리더기가 키 식별자 절로 언급된 XML 요소가 이 인스턴스에 의해 역직렬화될 수 있는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 SecurityTokenHandler)
CanReadToken(String)

지정된 문자열이 이 인스턴스에 의해 처리한 형식의 토큰으로 역직렬화될 수 있는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 SecurityTokenHandler)
CanReadToken(XmlReader)

판독기가 <wsc:SecurityContextToken> 요소에 배치되었는지 여부를 나타내는 값을 반환합니다.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

이 인스턴스가 지정된 키 식별자 절을 serialize할 수 있는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

파생 클래스에서 재정의되는 경우 해당 클래스에 의해 처리되는 토큰에 대한 보안 토큰 참조를 만듭니다. 이 메서드는 STS(보안 토큰 서비스)에 의해 호출됩니다.

(다음에서 상속됨 SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

지정된 클레임 보안 주체 및 토큰이 유효한 시간 범위를 기반으로 SessionSecurityToken을 만듭니다.

CreateToken(SecurityTokenDescriptor)

지정한 토큰 설명자를 기반으로 보안 토큰을 만듭니다.

DetectReplayedToken(SecurityToken)

파생된 클래스에서 재정의된 경우 지정된 토큰이 재생 중인 것으로 검색되면 예외를 throw합니다.

(다음에서 상속됨 SecurityTokenHandler)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetTokenTypeIdentifiers()

이 처리기에서 처리할 수 있는 토큰 형식의 토큰 형식 URI를 가져옵니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
LoadCustomConfiguration(XmlNodeList)

XML에서 사용자 지정 구성을 로드합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ReadKeyIdentifierClause(XmlReader)

파생 클래스에서 재정의된 경우 지정된 XML 판독기에 의해 참조된 XML을 파생 클래스에 의해 처리된 키 식별자 절로 역직렬화합니다.

(다음에서 상속됨 SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

지정된 토큰 확인자를 사용하여 바이트의 스트림에서 SessionSecurityToken을 읽습니다.

ReadToken(String)

파생 클래스에서 재정의되는 경우 지정된 문자열을 파생된 클래스에 의해 처리된 유형의 토큰으로 역직렬화합니다.

(다음에서 상속됨 SecurityTokenHandler)
ReadToken(XmlReader)

지정된 XML 판독기를 사용하여 SessionSecurityToken을 읽습니다.

ReadToken(XmlReader, SecurityTokenResolver)

SessionSecurityToken을 지정된 XML 판독기와 토큰 해결 프로그램으로 읽습니다.

SetTransforms(IEnumerable<CookieTransform>)

쿠키에 적용될 변환을 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
TraceTokenValidationFailure(SecurityToken, String)

추적 기능이 설정된 경우 보안 토큰의 유효성 검사 중 오류 이벤트를 추적합니다.

(다음에서 상속됨 SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

추적 기능이 설정된 경우 보안 토큰 이벤트의 성공적인 유효성 검사를 추적합니다.

(다음에서 상속됨 SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

지정된 토큰과 연결된 세션이 여전히 유효한지 여부를 확인합니다. 유효성 검사는 지정된 토큰의 ValidFromValidTo 속성을 확인하여 결정됩니다. 세션이 더 이상 유효하지 않은 경우 예외가 throw됩니다.

ValidateToken(SecurityToken)

지정된 토큰의 유효성을 검사하고 해당 클레임을 반환합니다.

ValidateToken(SessionSecurityToken, String)

지정된 세션 토큰의 유효성을 검사하고 해당 클레임을 반환합니다.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

파생 클래스에서 재정의되는 경우 지정한 키 식별자 절을 XML에 serialize합니다. 키 식별자 절은 파생된 클래스에서 지원되는 형식이어야 합니다.

(다음에서 상속됨 SecurityTokenHandler)
WriteToken(SecurityToken)

파생 클래스에서 재정의되는 경우 지정한 보안 토큰을 문자열에 serialize합니다. 토큰은 파생된 클래스에서 처리되는 형식이어야 합니다.

(다음에서 상속됨 SecurityTokenHandler)
WriteToken(SessionSecurityToken)

지정된 토큰을 바이트 배열에 serialize합니다.

WriteToken(XmlWriter, SecurityToken)

지정된 XML 작성기를 사용하여 지정된 토큰을 serialize합니다.

적용 대상

추가 정보