SecurityTokenHandler Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A classe base abstrata para manipuladores de token de segurança.
public ref class SecurityTokenHandler abstract : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public abstract class SecurityTokenHandler : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type SecurityTokenHandler = class
interface ICustomIdentityConfiguration
Public MustInherit Class SecurityTokenHandler
Implements ICustomIdentityConfiguration
- Herança
-
SecurityTokenHandler
- Derivado
- Implementações
Exemplos
Os exemplos de código em todos os SecurityTokenHandler tópicos são obtidos do Custom Token
exemplo. Este exemplo fornece classes personalizadas que permitem o processamento de SWT (Tokens Web Simples). Para obter informações sobre este exemplo e outros exemplos disponíveis para WIF e onde baixá-los, consulte Índice de exemplo de código WIF. O XML a seguir mostra como adicionar o manipulador de token SWT à coleção de manipuladores de token.
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
<issuerTokenResolver type="SimpleWebToken.CustomIssuerTokenResolver, SimpleWebToken">
<AddAudienceKeyPair symmetricKey="wAVkldQiFypTQ+kdNdGWCYCHRcee8XmXxOvgmak8vSY=" audience="http://localhost:19851/" />
</issuerTokenResolver>
<issuerNameRegistry type="RelyingParty.TrustedIssuerNameRegistry, RelyingParty"/>
<audienceUris>
<add value="http://localhost:19851/"/>
</audienceUris>
<securityTokenHandlers>
<add type="SimpleWebToken.SimpleWebTokenHandler, SimpleWebToken" />
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
Comentários
A SecurityTokenHandler classe é a classe base da qual todos os manipuladores de token de segurança derivam. Um manipulador de token de segurança é responsável por:
Validando tokens de segurança (SecurityToken) do tipo que ele foi projetado para processar e empacotar as declarações contidas no token em um ClaimsIdentity objeto .
Serializando e desserializando tokens de segurança do tipo que ele foi projetado para processar.
Serializando e desserializando cláusulas de identificador de chave (SecurityKeyIdentifierClause) que se referem a tokens do tipo que ele foi projetado para processar de
<wsse:SecurityTokenReference>
e para elementos.Criando tokens de segurança de um SecurityTokenDescriptor objeto passado por implementações da SecurityTokenService classe .
Criando cláusulas de identificador de chave de um token de segurança para implementações da SecurityTokenService classe .
O WINDOWS Identity Foundation (WIF) envia os seguintes manipuladores de token de segurança prontos para uso:
A maioria dessas classes expõe membros adicionais que implementam a funcionalidade específica para o processamento dos tokens para os quais a classe foi projetada. Em muitos casos, pode ser melhor derivar de uma dessas classes em vez de diretamente da SecurityTokenHandler classe .
Um manipulador de token de segurança pode ser adicionado ou removido de uma coleção de manipuladores de token especificando os <elementos add>, <remove> ou <clear> sob o <elemento securityTokenHandlers> em um arquivo de configuração. O SecurityTokenHandlerConfiguration objeto que contém as configurações da coleção de manipuladores pode ser acessado por meio da Configuration propriedade e a coleção de manipuladores da qual o manipulador de token é membro pode ser acessada da ContainingCollection propriedade . Você pode substituir o método para processar todos os LoadCustomConfiguration elementos de configuração personalizados que o manipulador usa.
A SecurityTokenHandler classe expõe várias outras propriedades e métodos. Dependendo da funcionalidade que você optar por implementar, você pode substituir alguns ou todos esses membros.
Você deve substituir a TokenType propriedade e o GetTokenTypeIdentifiers método para fornecer à infraestrutura wif informações sobre o tipo de token de segurança que sua classe foi projetada para processar.
A funcionalidade de validação, serialização e desserialização é exposta por meio de propriedades ou métodos que indicam se o manipulador pode executar uma função específica combinada com o método ou métodos que implementam a funcionalidade. A lista a seguir emparelha as propriedades ou métodos que indicam a funcionalidade com os métodos que implementam essa funcionalidade:
A CanValidateToken propriedade e o ValidateToken método: valida um token e empacota as declarações contidas no token em um ClaimsIdentity.
A CanWriteToken propriedade e os WriteToken métodos: serialização de token.
Os CanReadToken métodos e os ReadToken métodos: desserialização de token.
O CanReadKeyIdentifierClause método e o ReadKeyIdentifierClause método: desserializando cláusulas de identificador de chave.
O CanWriteKeyIdentifierClause método e o WriteKeyIdentifierClause método: serializando cláusulas de identificador de chave.
Os CreateToken métodos e CreateSecurityTokenReference são chamados do pipeline em implementações da SecurityTokenService classe .
O DetectReplayedToken método é chamado pela infraestrutura wif para determinar se o token especificado já foi recebido. Por padrão, esse método retorna false
, o que indica que o token ainda não foi recebido. Você pode substituir o método e fornecer lógica para detectar tokens reproduzidos.
Construtores
SecurityTokenHandler() |
Chamado de construtores em classes derivadas para inicializar a classe SecurityTokenHandler. |
Propriedades
CanValidateToken |
Obtém um valor que indica se o manipulador dá suporte à validação de tokens de segurança. |
CanWriteToken |
Obtém um valor que indica se o manipulador pode serializar tokens de segurança. |
Configuration |
Obtém ou define o objeto SecurityTokenHandlerConfiguration que fornece a configuração para a instância atual. |
ContainingCollection |
Obtém a coleção de manipuladores de token que contém a instância atual. |
TokenType |
Quando substituído em uma classe derivada, obtém o tipo de token de segurança que é processado por esta instância. |
Métodos
CanReadKeyIdentifierClause(XmlReader) |
Retorna um valor que indica que se o elemento XML consultado pelo leitor de XML especificado é uma cláusula de identificador de chave que pode ser desserializada por esta instância. |
CanReadToken(String) |
Retorna um valor que indica se a cadeia de caracteres especificada pode ser desserializada como um token do tipo processado por esta instância. |
CanReadToken(XmlReader) |
Retorna um valor que indica se o elemento XML referenciado pelo leitor de XML especificado pode ser lido como um token do tipo processado por esta instância. |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Retorna um valor que indica se a cláusula de identificador de chave especificada pode ser serializada por esta instância. |
CreateSecurityTokenReference(SecurityToken, Boolean) |
Quando substituído em uma classe derivada, cria a referência de token de segurança para tokens processados por essa classe. Este método é geralmente chamado por um STS (serviço de token de segurança). |
CreateToken(SecurityTokenDescriptor) |
Quando substituído em uma classe derivada, cria um token de segurança usando o descritor de token especificado. Este método é chamado por um STS (serviço de token de segurança). |
DetectReplayedToken(SecurityToken) |
Quando substituído em uma classe derivada, gera uma exceção se o token especificado é detectado como sendo reproduzido. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetTokenTypeIdentifiers() |
Quando substituído em uma classe derivada, retorna o conjunto de URIs que são usados em solicitações para identificar um token do tipo processado pela classe derivada. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
LoadCustomConfiguration(XmlNodeList) |
Quando substituído em uma classe derivada, carrega a configuração personalizada do XML. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ReadKeyIdentifierClause(XmlReader) |
Quando substituído em uma classe derivada, desserializa o XML referenciado pelo leitor de XML especificado para uma cláusula de identificador de chave que referencia um token processado pela classe derivada. |
ReadToken(String) |
Quando substituído em uma classe derivada, desserializa a cadeia de caracteres especificada para um token do tipo processado pela classe derivada. |
ReadToken(XmlReader) |
Quando substituído em uma classe derivada, desserializa o XML referenciado pelo leitor XML especificado para um token do tipo processado pela classe derivada. |
ReadToken(XmlReader, SecurityTokenResolver) |
Quando substituído em uma classe derivada, desserializa o XML referenciado pelo leitor de XML especificado para um token do tipo processado pela classe derivada usando o resolvedor de token especificado. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TraceTokenValidationFailure(SecurityToken, String) |
Rastreia o evento de falha durante a validação dos tokens de segurança quando o rastreamento está habilitado. |
TraceTokenValidationSuccess(SecurityToken) |
Rastreia a validação bem-sucedida do evento de tokens de segurança quando o rastreamento está habilitado. |
ValidateToken(SecurityToken) |
Quando substituído em uma classe derivada, valida o token de segurança especificado. O token deve ser do tipo processado pela classe derivada. |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Quando substituído em uma classe derivada, serializa a cláusula de identificador de chave especificado no XML. A cláusula do identificador de chave deve ser do tipo com suporte na classe derivada. |
WriteToken(SecurityToken) |
Quando substituído em uma classe derivada, serializa o token de segurança especificado em uma cadeia de caracteres. O token deve ser do tipo processado pela classe derivada. |
WriteToken(XmlWriter, SecurityToken) |
Quando substituído em uma classe derivada, serializa o token de segurança especificado no XML. O token deve ser do tipo processado pela classe derivada. |