Partilhar via


SecurityTokenHandler Classe

Definição

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 tópicos de SecurityTokenHandler são obtidos do exemplo de Custom Token. 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 classe SecurityTokenHandler é 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 objeto ClaimsIdentity.

  • 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 e para elementos <wsse:SecurityTokenReference>.

  • Criando tokens de segurança de um objeto SecurityTokenDescriptor passado por implementações da classe SecurityTokenService.

  • Criando cláusulas de identificador de chave de um token de segurança para implementações da classe SecurityTokenService.

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 classe SecurityTokenHandler.

Um manipulador de token de segurança pode ser adicionado ou removido de uma coleção de manipuladores de token especificando a adicionar, removerou limpar elementos no elemento securityTokenHandlers em um arquivo de configuração. O objeto SecurityTokenHandlerConfiguration que contém as configurações da coleção de manipuladores pode ser acessado por meio da propriedade Configuration e a coleção de manipuladores da qual o manipulador de token é membro pode ser acessada da propriedade ContainingCollection. Você pode substituir o método LoadCustomConfiguration para processar todos os elementos de configuração personalizados que o manipulador usa.

A classe SecurityTokenHandler expõe várias outras propriedades e métodos. Dependendo da funcionalidade que você escolher implementar, você poderá substituir alguns ou todos esses membros.

Você deve substituir a propriedade TokenType e o método GetTokenTypeIdentifiers 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:

Os métodos CreateToken e CreateSecurityTokenReference são chamados do pipeline em implementações da classe SecurityTokenService.

O método DetectReplayedToken é 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 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 do token de segurança que é processado por essa instância.

Métodos

CanReadKeyIdentifierClause(XmlReader)

Retorna um valor que indica se o elemento XML referenciado pelo leitor XML especificado é uma cláusula de identificador de chave que pode ser desserializada por essa 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 essa instância.

CanReadToken(XmlReader)

Retorna um valor que indica se o elemento XML referenciado pelo leitor XML especificado pode ser lido como um token do tipo processado por essa instância.

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Retorna um valor que indica se a cláusula de identificador de chave especificada pode ser serializada por essa 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. Esse método normalmente é 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. Esse 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 for 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 de XML.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ReadKeyIdentifierClause(XmlReader)

Quando substituído em uma classe derivada, desserializa o XML referenciado pelo leitor XML especificado para uma cláusula de identificador de chave que faz referência a 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, SecurityTokenResolver)

Quando substituído em uma classe derivada, desserializa o XML referenciado pelo leitor XML especificado para um token do tipo processado pela classe derivada usando o resolvedor de token especificado.

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.

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 de 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 especificada para XML. A cláusula do identificador de chave deve ser do tipo compatível com a classe derivada.

WriteToken(SecurityToken)

Quando substituído em uma classe derivada, serializa o token de segurança especificado para 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 para XML. O token deve ser do tipo processado pela classe derivada.

Aplica-se a

Confira também