SessionSecurityTokenHandler 클래스

정의

SecurityTokenHandler 형식의 보안 토큰을 처리하는 SessionSecurityToken입니다.A SecurityTokenHandler that processes security tokens of type 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 구성에서 클래스입니다.The following XML shows how to replace the default session security token handler in a token handler collection with an instance of the MachineKeySessionSecurityTokenHandler class in configuration.

<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 클래스 serialize, deserialize 하 고 세션 토큰의 유효성을 검사 합니다.The SessionSecurityTokenHandler class serializes, deserializes, and validates session tokens. 세션 토큰은 토큰 형식의 SessionSecurityToken합니다.Session tokens are tokens of type SessionSecurityToken. SessionSecurityTokenHandler 클래스가 쿠키 형식 토큰을 serialize 합니다.The SessionSecurityTokenHandler class serializes the tokens to and from cookie format. 기본적으로 클래스 Ws-secure Conversation Feb2005 또는 Ws-secure Conversation 1.3에 토큰을 serialize <wsc:SecurityContextToken> 요소입니다.By default, the class serializes tokens into WS-Secure Conversation Feb2005 or WS-Secure Conversation 1.3 <wsc:SecurityContextToken> elements. 세션 토큰에서 사용 되는 WSFederationAuthenticationModule (WSFAM) 및 SessionAuthenticationModule (SAM) 세션에 대 한 정보를 저장 하이 주로 ClaimsPrincipal 인증된 된 사용자 및 세션 시작 및 만료 시간을 사용 하 여 연결 합니다.Session tokens are used by the WSFederationAuthenticationModule (WSFAM) and the SessionAuthenticationModule (SAM) to store information about a session, this is primarily the ClaimsPrincipal associated with the authenticated user and the session start and expiration times.

수동 시나리오에서 합니다 WSFederationAuthenticationModule 를 호출 합니다 SessionAuthenticationModule (SAM)에서 세션 토큰을 만드는 인증 파이프라인에서는 ClaimsPrincipal 인증된 된 사용자를 나타내는입니다.In passive scenarios, the WSFederationAuthenticationModule calls into the SessionAuthenticationModule (SAM) from the authentication pipeline to create a session token from the ClaimsPrincipal that represents the authenticated user. SAM를 사용 하 여 해당 구성 SessionSecurityTokenHandler 토큰을 만드는 쿠키로 serialize (고 이후 요청에서 쿠키에서 토큰을 deserialize 할).The SAM uses its configured SessionSecurityTokenHandler to create the token and to serialize it into a cookie (and to deserialize the token from a cookie on subsequent requests). 해당 구성의 인스턴스를 사용 하 여 SAM CookieHandler HTTP 응답에 쿠키를 다시 작성 하는 클래스입니다.The SAM uses an instance of its configured CookieHandler class to write the cookie back to the HTTP Response. 이 쿠키는 클라이언트에 반환 됩니다 하 고 이후 요청에서 클라이언트 id 공급자를 다시 보안 토큰을 가져오는으로 왕복 하는 것이 아니라 쿠키를 제공할 수 있습니다.This cookie is then returned to the client and on subsequent requests the client can present the cookie rather than making a round trip back to the identity provider to re-obtain a security token. WIF를 사용 하 여 세션을 작동 하는 방법에 대 한 자세한 내용은 참조 하세요. WIF 세션 관리합니다.For more information about how sessions operate with WIF, see WIF Session Management.

참고

<securityTokenHandlers > 구성 요소를 지정 하려면 사용할 수는 SessionSecurityTokenHandler 애플리케이션의 세션을 보호 하기 위한 책임 있는 합니다.The <securityTokenHandlers> configuration element can be used to specify a SessionSecurityTokenHandler that has the responsibility for securing the application's sessions. 개발자가 주의 기울여야이 구성 설정을 변경 하는 경우 잘못 구성 된 시스템 애플리케이션이 손상 될 수 없습니다.Developers should use caution when changing this configuration setting, as a misconfigured system could result in application compromise. 예를 들어, 파생 SessionSecurityTokenHandler 을 지정 하 고 기본에 빈 변환 (CookieTransform) 컬렉션을 전달 하면 사용자 id가 보호 되지 않는 쿠키로 serialize 됩니다.For example, specifying a derived SessionSecurityTokenHandler and passing an empty Transforms (CookieTransform) collection to the base, would result in the users identity being serialized into a cookie that was not protected. 이 id를 수정 하 고 따라서 권한을 변경 하는 공격자가 허용할 수 있습니다.This could allow an attacker to modify the identity and therefore change access privileges.

세션 토큰 모드에 있으면 참조, 즉, 해당 SessionSecurityToken.IsReferenceMode 속성은 true, 세션 토큰 처리기만의 해당 키를 다시 생성 하는 데 필요한 세션 토큰의 속성을 serialize 된 SessionSecurityTokenCache합니다.If the session token is in reference mode, that is, its SessionSecurityToken.IsReferenceMode property is true, the session token handler only serializes properties of the session token that are needed to regenerate its key in the SessionSecurityTokenCache. 기본값은 SessionSecurityTokenCacheKey 클래스는 캐시 키를 나타내는 데 쓰고 토큰 처리기는 SessionSecurityToken.ContextIdSessionSecurityToken.KeyGeneration 토큰의 속성입니다.In the default case, the SessionSecurityTokenCacheKey class is used to represent cache keys, and the token handler writes the SessionSecurityToken.ContextId and SessionSecurityToken.KeyGeneration properties of the token. 경우 세션 토큰은 참조 모드에 있지 않은 것입니다는 SessionSecurityToken.IsReferenceMode 속성은 false, 그런 다음 이전에 언급 된 속성 외에도 처리기를 호출 하는 ApplyTransforms 저장소와 토큰에서 serialize 된 바이트 배열에 대 한 메서드는 도 쿠키의 결과 값입니다.If the session token is not in reference mode, that is, the SessionSecurityToken.IsReferenceMode property is false, then, in addition to the properties mentioned previously, the handler invokes the ApplyTransforms method on a byte array serialized from the token and stores the resulting value in the cookie as well. 토큰이 serialize 되는 방법을 하는 방법에 대 한 자세한 내용은 참조는 SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) 메서드.For more details about how the token is serialized, see the SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) method.

합니다 Transforms 속성에서 토큰을 세션에 적용 되는 변환의 목록을 가져옵니다는 ApplyTransforms 메서드.The Transforms property gets the list of transforms that are applied to the session token in the ApplyTransforms method. 파생 되는 모든 변환 된 CookieTransform 클래스입니다.All transforms derive from the CookieTransform class. 기본값은 DeflateCookieTransform 하며 ProtectedDataCookieTransform 적용 됩니다.In the default case the DeflateCookieTransform and the ProtectedDataCookieTransform are applied. ProtectedDataCookieTransform 쿠키 자료를 보호 하기 위해 데이터 보호 API (DPAPI)를 사용 합니다.The ProtectedDataCookieTransform uses the Data Protection API (DPAPI) to protect the cookie material. DPAPI는 해당 보호 알고리즘에서 실행 되는 컴퓨터에 관련 된 키를 사용 합니다.DPAPI uses a key that is specific to the computer on which it is running in its protection algorithms. 이 따라서 이러한 시나리오에서는 한 컴퓨터에서 작성 하는 토큰을 다른 컴퓨터에서 읽을 수 해야 때문에 기본 세션 토큰 처리기를 웹 팜 시나리오에서 사용 가능 하지 않습니다.For this reason, the default session token handler is not usable in Web farm scenarios because, in such scenarios, tokens written on one computer may need to be read on another computer. 이 문제를 뚫을 수 있는 다양 한 전략을 사용할 수 있습니다.You can use many strategies to circumvent this issue. 예를 들어 다음 작업을 할 수 있습니다.For example, you can:

세션을 사용 하 여 웹 팜 시나리오에 대 한 자세한 내용은 참조 하세요. WIF 및 웹 팜합니다.For more information about using sessions in Web farm scenarios, see WIF and Web Farms.

SessionSecurityTokenHandler 기본 토큰 처리기 컬렉션에 포함 되어 있지만 바꿀 수 있습니다는 사용자 지정 세션 토큰 처리기를 사용 하 여 첫 번째 지정 하 여는 <제거> 요소를 <securityTokenHandlers> 요소를 다음 사용 하 여 사용자 지정 토큰 처리기를 추가 하 고 컬렉션에서 기본 처리기를 제거 합니다 <추가> 요소입니다.The SessionSecurityTokenHandler is included in the default token handler collection; however, you can replace it with a custom session token handler by first specifying a <remove> element under the <securityTokenHandlers> element to remove the default handler from the collection and then adding your custom token handler using the <add> element. 기본적으로 포함 하 여 기본 토큰 수명을 지정할 수는 <sessionTokenRequirement> 요소 아래에 있는 <add> 요소입니다.By default, you can specify the default token lifetime by including the <sessionTokenRequirement> element under the <add> element. 사용자 지정 구성 요소에서 수행할 사용자 지정 토큰 처리기를 디자인할 수 있습니다는 <add> 재정의 하 여 요소를 LoadCustomConfiguration 논리 처리를 제공 하는 방법입니다.You can design a custom token handler to take custom configuration elements under the <add> element by overriding the LoadCustomConfiguration method to provide the logic to process them.

생성자

SessionSecurityTokenHandler()

기본 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SessionSecurityTokenHandler class that uses the default cookie transforms and token lifetime.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

지정된 쿠키 변환을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

지정된 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SessionSecurityTokenHandler class that uses the specified cookie transforms and token lifetime.

필드

DefaultCookieTransforms

쿠키, DeflateCookieTransformProtectedDataCookieTransform에 적용할 기본 변환 목록을 포함하고 있는 읽기 전용 컬렉션입니다.A read only collection that contains the list of default transforms to be applied to cookies, the DeflateCookieTransform and the ProtectedDataCookieTransform.

DefaultLifetime

쿠키의 기본 수명을 지정하는 상수(10시간)입니다.A constant that specifies the default lifetime for cookies, ten hours.

속성

CanValidateToken

이 처리기가 형식이 SessionSecurityToken인 토큰의 유효성 검사를 지원하는지 나타내는 값을 가져옵니다.Gets a value that indicates whether this handler supports validation of tokens of type SessionSecurityToken.

CanWriteToken

이 처리기가 SessionSecurityToken 형식의 토큰을 쓸 수 있는지 나타내는 값을 가져옵니다.Gets a value that indicates whether this handler can write tokens of type SessionSecurityToken.

Configuration

현재 인스턴스에 대한 구성을 제공하는 SecurityTokenHandlerConfiguration 개체를 가져오거나 설정합니다.Gets or sets the SecurityTokenHandlerConfiguration object that provides configuration for the current instance.

(다음에서 상속됨 SecurityTokenHandler)
ContainingCollection

현재 인스턴스를 포함하는 토큰 처리기 컬렉션을 가져옵니다.Gets the token handler collection that contains the current instance.

(다음에서 상속됨 SecurityTokenHandler)
CookieElementName

쿠키 요소의 이름을 가져옵니다.Gets the name for the cookie element.

CookieNamespace

쿠키 요소의 네임스페이스를 가져옵니다.Gets the namespace for the cookie element.

DefaultTokenLifetime

기본 토큰 수명을 가져옵니다.Gets the default token lifetime.

TokenLifetime

토큰 수명을 가져오거나 설정합니다.Gets or sets the token lifetime.

TokenType

이 처리기가 처리하는 토큰의 형식을 가져옵니다.Gets the type of the tokens that this handler processes.

Transforms

쿠키에 적용할 변환을 가져옵니다.Gets the transforms that will be applied to the cookie.

메서드

ApplyTransforms(Byte[], Boolean)

지정된 쿠키를 인코딩하거나 디코딩하기 위해 Transforms 속성으로 지정된 변환을 적용합니다.Applies the transforms specified by the Transforms property to either encode or decode the specified cookie.

CanReadKeyIdentifierClause(XmlReader)

지정된 XML 리더기가 키 식별자 절로 언급된 XML 요소가 이 인스턴스에 의해 역직렬화될 수 있는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the XML element referred to by the specified XML reader is a key identifier clause that can be deserialized by this instance.

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

지정된 문자열이 이 인스턴스에 의해 처리한 형식의 토큰으로 역직렬화될 수 있는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the specified string can be deserialized as a token of the type processed by this instance.

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

판독기가 <wsc:SecurityContextToken> 요소에 배치되었는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the reader is positioned at a <wsc:SecurityContextToken> element.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

이 인스턴스가 지정된 키 식별자 절을 serialize할 수 있는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the specified key identifier clause can be serialized by this instance.

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

파생 클래스에서 재정의되는 경우 해당 클래스에 의해 처리되는 토큰에 대한 보안 토큰 참조를 만듭니다.When overridden in a derived class, creates the security token reference for tokens processed by that class. 이 메서드는 STS(보안 토큰 서비스)에 의해 호출됩니다.This method is typically called by a security token service (STS).

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

지정된 클레임 보안 주체 및 토큰이 유효한 시간 범위를 기반으로 SessionSecurityToken을 만듭니다.Creates a SessionSecurityToken based on the specified claims principal and time range during which the token is valid.

CreateToken(SecurityTokenDescriptor)

지정한 토큰 설명자를 기반으로 보안 토큰을 만듭니다.Creates a security token based on the specified token descriptor.

DetectReplayedToken(SecurityToken)

파생된 클래스에서 재정의된 경우 지정된 토큰이 재생 중인 것으로 검색되면 예외를 throw합니다.When overridden in a derived class, throws an exception if the specified token is detected as being replayed.

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

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

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

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

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

이 처리기에서 처리할 수 있는 토큰 형식의 토큰 형식 URI를 가져옵니다.Gets the token type URIs for the token types that can be processed by this handler.

GetType()

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

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

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

MemberwiseClone()

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

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

파생 클래스에서 재정의된 경우 지정된 XML 판독기에 의해 참조된 XML을 파생 클래스에 의해 처리된 키 식별자 절로 deserialize합니다.When overridden in a derived class, deserializes the XML referenced by the specified XML reader to a key identifier clause that references a token processed by the derived class.

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

지정된 토큰 확인자를 사용하여 바이트의 스트림에서 SessionSecurityToken을 읽습니다.Reads the SessionSecurityToken from a stream of bytes by using the specified token resolver.

ReadToken(String)

파생 클래스에서 재정의되는 경우 지정된 문자열을 파생된 클래스에 의해 처리된 유형의 토큰으로 deserialize합니다.When overridden in a derived class, deserializes the specified string to a token of the type processed by the derived class.

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

지정된 XML 판독기를 사용하여 SessionSecurityToken을 읽습니다.Reads the SessionSecurityToken using the specified XML reader.

ReadToken(XmlReader, SecurityTokenResolver)

SessionSecurityToken을 지정된 XML 판독기와 토큰 해결 프로그램으로 읽습니다.Reads the SessionSecurityToken using the specified XML reader and token resolver.

SetTransforms(IEnumerable<CookieTransform>)

쿠키에 적용될 변환을 설정합니다.Sets the transforms that will be applied to cookies.

ToString()

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

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

추적 기능이 설정된 경우 보안 토큰의 유효성 검사 중 오류 이벤트를 추적합니다.Traces the failure event during the validation of security tokens when tracing is enabled.

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

추적 기능이 설정된 경우 보안 토큰 이벤트의 성공적인 유효성 검사를 추적합니다.Traces the successful validation of security tokens event when tracing is enabled.

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

지정된 토큰과 연결된 세션이 여전히 유효한지 여부를 확인합니다.Determines whether the session associated with the specified token is still valid. 유효성 검사는 지정된 토큰의 ValidFromValidTo 속성을 확인하여 결정됩니다.Validity is determined by checking the ValidFrom and ValidTo properties of the specified token. 세션이 더 이상 유효하지 않은 경우 예외가 throw됩니다.An exception is thrown if the session is no longer valid.

ValidateToken(SecurityToken)

지정된 토큰의 유효성을 검사하고 해당 클레임을 반환합니다.Validates the specified token and returns its claims.

ValidateToken(SessionSecurityToken, String)

지정된 세션 토큰의 유효성을 검사하고 해당 클레임을 반환합니다.Validates the specified session token and returns its claims.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

파생 클래스에서 재정의되는 경우 지정한 키 식별자 절을 XML에 serialize합니다.When overridden in a derived class, serializes the specified key identifier clause to XML. 키 식별자 절은 파생된 클래스에서 지원되는 형식이어야 합니다.The key identifier clause must be of the type supported by the derived class.

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

파생 클래스에서 재정의되는 경우 지정한 보안 토큰을 문자열에 serialize합니다.When overridden in a derived class, serializes the specified security token to a string. 토큰은 파생된 클래스에서 처리되는 형식이어야 합니다.The token must be of the type processed by the derived class.

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

지정된 토큰을 바이트 배열에 serialize합니다.Serializes the specified token into a byte array.

WriteToken(XmlWriter, SecurityToken)

지정된 XML 작성기를 사용하여 지정된 토큰을 serialize합니다.Serializes the specified token by using the specified XML writer.

적용 대상

추가 정보