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 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:

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.

Aplica-se a

Confira também