SessionSecurityTokenHandler 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 파생
예제
다음 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.ContextId 및 SessionSecurityToken.KeyGeneration 토큰의 속성입니다. 경우 세션 토큰은 참조 모드에 있지 않은 것입니다는 SessionSecurityToken.IsReferenceMode 속성은 false
, 그런 다음 이전에 언급 된 속성 외에도 처리기를 호출 하는 ApplyTransforms 저장소와 토큰에서 serialize 된 바이트 배열에 대 한 메서드는 도 쿠키의 결과 값입니다. 토큰이 serialize 되는 방법을 하는 방법에 대 한 자세한 내용은 참조는 SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) 메서드.
합니다 Transforms 속성에서 토큰을 세션에 적용 되는 변환의 목록을 가져옵니다는 ApplyTransforms 메서드. 파생 되는 모든 변환 된 CookieTransform 클래스입니다. 기본값은 DeflateCookieTransform 하며 ProtectedDataCookieTransform 적용 됩니다. ProtectedDataCookieTransform 쿠키 자료를 보호 하기 위해 데이터 보호 API (DPAPI)를 사용 합니다. DPAPI는 해당 보호 알고리즘에서 실행 되는 컴퓨터에 관련 된 키를 사용 합니다. 이 따라서 이러한 시나리오에서는 한 컴퓨터에서 작성 하는 토큰을 다른 컴퓨터에서 읽을 수 해야 때문에 기본 세션 토큰 처리기를 웹 팜 시나리오에서 사용 가능 하지 않습니다. 이 문제를 뚫을 수 있는 다양 한 전략을 사용할 수 있습니다. 예를 들어, 다음을 수행할 수 있습니다.
기본 바꿉니다 SessionSecurityTokenHandler 사용 하 여는 MachineKeySessionSecurityTokenHandler합니다. 합니다 MachineKeySessionSecurityTokenHandler ASP.NET에서 서명 및 암호화 키를 지정할 수 있습니다
<machineKey>
구성 파일의 요소입니다.에 대 한 처리기를 제공 합니다 FederatedAuthentication.FederationConfigurationCreated global.asax.cs 파일 바꾸기 기본 세션에서 이벤트 처리기의 인스턴스를 사용 하 여 토큰 SessionSecurityTokenHandler 포함 하는 변환 목록을 포함 합니다 RsaSignatureCookieTransform 및 RsaEncryptionCookieTransform합니다. 변환 목록을 사용 하는 생성자 중 하나를 호출 하 여 새 인스턴스를 만들 수 있습니다.
사용자 지정 변환에서 파생 된 CookieTransform 기본 클래스를 사용 하 여 위의 메서드 적용할 변환 목록에 포함 합니다.
사용자 지정 토큰 처리기를 파생 SessionSecurityTokenHandler 메커니즘을 구현 하 고 있습니다.
세션을 사용 하 여 웹 팜 시나리오에 대 한 자세한 내용은 참조 하세요. WIF 및 웹 팜합니다.
는 SessionSecurityTokenHandler 기본 토큰 처리기 컬렉션에 포함되지만, 먼저 securityTokenHandlers> 요소 아래에<remove> 요소를 지정하여< 컬렉션에서 기본 처리기를 제거한 다음 add> 요소를 사용하여< 사용자 지정 토큰 처리기를 추가하여 사용자 지정 세션 토큰 처리기로 바꿀 수 있습니다. 기본적으로 요소 아래에 <add>
sessionTokenRequirement> 요소를 포함하여< 기본 토큰 수명을 지정할 수 있습니다. 사용자 지정 구성 요소에서 수행할 사용자 지정 토큰 처리기를 디자인할 수 있습니다는 <add>
재정의 하 여 요소를 LoadCustomConfiguration 논리 처리를 제공 하는 방법입니다.
생성자
SessionSecurityTokenHandler() |
기본 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다. |
SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>) |
지정된 쿠키 변환을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다. |
SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan) |
지정된 쿠키 변환 및 토큰 수명을 사용하는 SessionSecurityTokenHandler 클래스의 새 인스턴스를 초기화합니다. |
필드
DefaultCookieTransforms |
쿠키, DeflateCookieTransform 및 ProtectedDataCookieTransform에 적용할 기본 변환 목록을 포함하고 있는 읽기 전용 컬렉션입니다. |
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) |
판독기가 |
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) |
지정된 토큰과 연결된 세션이 여전히 유효한지 여부를 확인합니다. 유효성 검사는 지정된 토큰의 ValidFrom 및 ValidTo 속성을 확인하여 결정됩니다. 세션이 더 이상 유효하지 않은 경우 예외가 throw됩니다. |
ValidateToken(SecurityToken) |
지정된 토큰의 유효성을 검사하고 해당 클레임을 반환합니다. |
ValidateToken(SessionSecurityToken, String) |
지정된 세션 토큰의 유효성을 검사하고 해당 클레임을 반환합니다. |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
파생 클래스에서 재정의되는 경우 지정한 키 식별자 절을 XML에 serialize합니다. 키 식별자 절은 파생된 클래스에서 지원되는 형식이어야 합니다. (다음에서 상속됨 SecurityTokenHandler) |
WriteToken(SecurityToken) |
파생 클래스에서 재정의되는 경우 지정한 보안 토큰을 문자열에 serialize합니다. 토큰은 파생된 클래스에서 처리되는 형식이어야 합니다. (다음에서 상속됨 SecurityTokenHandler) |
WriteToken(SessionSecurityToken) |
지정된 토큰을 바이트 배열에 serialize합니다. |
WriteToken(XmlWriter, SecurityToken) |
지정된 XML 작성기를 사용하여 지정된 토큰을 serialize합니다. |
적용 대상
추가 정보
.NET