SecurityTokenHandler Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La clase base abstracta para los controladores de token de seguridad.
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
- Herencia
-
SecurityTokenHandler
- Derivado
- Implementaciones
Ejemplos
Los ejemplos de código de todos los SecurityTokenHandler temas se toman del Custom Token
ejemplo. En este ejemplo se proporcionan clases personalizadas que permiten el procesamiento de tokens web simples (SWT). Para obtener información sobre este ejemplo y otros ejemplos disponibles para WIF y dónde descargarlos, consulte Índice de ejemplo de código WIF. El siguiente XML muestra cómo agregar el controlador de tokens SWT a la colección de controladores de tokens.
<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>
Comentarios
La SecurityTokenHandler clase es la clase base de la que se derivan todos los controladores de token de seguridad. Un controlador de tokens de seguridad es responsable de:
Validar tokens de seguridad (SecurityToken) del tipo que está diseñado para procesar y empaquetar las notificaciones contenidas en el token en un ClaimsIdentity objeto .
Serialización y deserialización de tokens de seguridad del tipo que está diseñado para procesarse.
Serialización y deserialización de cláusulas de identificador de clave (SecurityKeyIdentifierClause) que hacen referencia a tokens del tipo que está diseñado para procesar y desde
<wsse:SecurityTokenReference>
elementos.Crear tokens de seguridad a partir de un SecurityTokenDescriptor objeto pasado por implementaciones de la SecurityTokenService clase .
Creación de cláusulas de identificador de clave a partir de un token de seguridad para implementaciones de la SecurityTokenService clase .
Windows Identity Foundation (WIF) incluye los siguientes controladores de token de seguridad de fábrica:
La mayoría de estas clases exponen miembros adicionales que implementan la funcionalidad específica del procesamiento de los tokens para los que está diseñada la clase. En muchos casos, puede ser mejor derivar de una de estas clases en lugar de directamente de la SecurityTokenHandler clase .
Un controlador de tokens de seguridad se puede agregar o quitar de una colección de controladores de tokens especificando los <elementos add>, <remove> o <clear> en el <elemento securityTokenHandlers> de un archivo de configuración. Se SecurityTokenHandlerConfiguration puede tener acceso al objeto que contiene los valores de configuración de la colección de controladores a través de la Configuration propiedad y la colección de controladores de la que es miembro el controlador de tokens desde la ContainingCollection propiedad . Puede invalidar el LoadCustomConfiguration método para procesar los elementos de configuración personalizados que toma el controlador.
La SecurityTokenHandler clase expone otras propiedades y métodos. En función de la funcionalidad que decida implementar, puede invalidar algunos o todos estos miembros.
Debe invalidar la TokenType propiedad y el GetTokenTypeIdentifiers método para proporcionar a la infraestructura WIF información sobre el tipo de token de seguridad que la clase está diseñada para procesarse.
La funcionalidad de validación, serialización y deserialización se expone a través de propiedades o métodos que indican si el controlador puede realizar una función específica combinada con el método o los métodos que implementan la funcionalidad. En la lista siguiente se emparejan las propiedades o métodos que indican la funcionalidad con los métodos que implementan esa funcionalidad:
La CanValidateToken propiedad y el ValidateToken método : valida un token y empaqueta las notificaciones contenidas en el token en .ClaimsIdentity
La CanWriteToken propiedad y los WriteToken métodos: serialización de tokens.
Los CanReadToken métodos y los ReadToken métodos: deserialización de tokens.
Método CanReadKeyIdentifierClause y método ReadKeyIdentifierClause : Deserialización de cláusulas de identificador de clave.
Método CanWriteKeyIdentifierClause y método WriteKeyIdentifierClause : Serialización de cláusulas de identificador de clave.
Los CreateToken métodos y CreateSecurityTokenReference se llaman desde la canalización en implementaciones de la SecurityTokenService clase .
La DetectReplayedToken infraestructura de WIF llama al método para determinar si el token especificado ya se ha recibido. De forma predeterminada, este método devuelve false
, que indica que el token aún no se ha recibido. Puede invalidar el método y proporcionar lógica para detectar tokens reproducidos.
Constructores
SecurityTokenHandler() |
Se llama desde constructores de clases derivadas para inicializar la clase SecurityTokenHandler. |
Propiedades
CanValidateToken |
Obtiene un valor que indica si el identificador admite la validación de tokens de seguridad. |
CanWriteToken |
Obtiene un valor que indica si el identificador puede serializar tokens de seguridad. |
Configuration |
Obtiene o establece el objeto SecurityTokenHandlerConfiguration que proporciona la configuración de la instancia actual. |
ContainingCollection |
Obtiene la colección controladores de token que contiene la instancia actual. |
TokenType |
Cuando se invalida en una clase derivada, obtiene el tipo del token de seguridad que procesa esta instancia. |
Métodos
CanReadKeyIdentifierClause(XmlReader) |
Devuelve un valor que indica si el elemento XML al que hace referencia el lector XML especificado es una cláusula de identificador de clave que esta instancia puede deserializar. |
CanReadToken(String) |
Devuelve un valor que indica si la cadena especificada se puede deserializar como token del tipo procesado por esta instancia. |
CanReadToken(XmlReader) |
Devuelve un valor que indica si el elemento XML al que el lector XML especificado hace referencia se puede leer como token del tipo procesado por esta instancia. |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Devuelve un valor que indica si la instancia puede serializar la cláusula de identificador de clave especificada. |
CreateSecurityTokenReference(SecurityToken, Boolean) |
Cuando se reemplaza en una clase derivada, crea la referencia del token de seguridad para tokens procesados por esa clase. Un servicio de token de seguridad (STS) llama normalmente a este método. |
CreateToken(SecurityTokenDescriptor) |
Cuando se reemplaza en una clase derivada, crea un token de seguridad usando el descriptor del token especificado. Un servicio de token de seguridad (STS) llama a este método. |
DetectReplayedToken(SecurityToken) |
Cuando se reemplaza en una clase derivada, produce una excepción si el token especificado se detecta como que se está volviendo a reproducir. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetTokenTypeIdentifiers() |
Cuando se reemplaza en una clase derivada, devuelve el conjunto de identificadores URI que se usan en solicitudes para identificar un token del tipo procesado por la clase derivada. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
LoadCustomConfiguration(XmlNodeList) |
Cuando se reemplaza en una clase derivada, carga la configuración personalizada de XML. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ReadKeyIdentifierClause(XmlReader) |
Cuando se reemplaza en una clase derivada, deserializa el código XML al que hace referencia el lector XML especificado en una cláusula de identificador de clave que hace referencia a un token procesado por la clase derivada. |
ReadToken(String) |
Cuando se reemplaza en una clase derivada, deserializa la cadena especificada a un token del tipo procesado por la clase derivada. |
ReadToken(XmlReader) |
Cuando se reemplaza en una clase derivada, deserializa el código XML al que hace referencia el lector XML a un token del tipo procesado por la clase derivada. |
ReadToken(XmlReader, SecurityTokenResolver) |
Cuando se reemplaza en una clase derivada, deserializa el código XML al que hace referencia el lector XML especificado en token del tipo procesado por la clase derivada mediante el solucionador de token especificado. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
TraceTokenValidationFailure(SecurityToken, String) |
Hace un seguimiento del evento de error durante la validación de tokens de seguridad cuando está habilitado el seguimiento. |
TraceTokenValidationSuccess(SecurityToken) |
Hace un seguimiento de la validación correcta del evento de tokens de seguridad cuando está habilitado el seguimiento. |
ValidateToken(SecurityToken) |
Cuando se reemplaza en una clase derivada, valida el token de seguridad especificado. El token debe ser del tipo procesado por la clase derivada. |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Cuando se invalida en una clase derivada, serializa la cláusula del identificador de clave especificada a XML. La cláusula de identificador de clave debe ser del tipo admitido por la clase derivada. |
WriteToken(SecurityToken) |
Cuando se reemplaza en una clase derivada, serializa el token de seguridad especificado en una cadena. El token debe ser del tipo procesado por la clase derivada. |
WriteToken(XmlWriter, SecurityToken) |
Cuando se reemplaza en una clase derivada, serializa el token de seguridad especificado en XML. El token debe ser del tipo procesado por la clase derivada. |