Compartir a través de


Cómo crear un proveedor de tokens de seguridad personalizado

En este tema se muestra cómo crear nuevos tipos de token con un proveedor de tokens de seguridad personalizado y cómo integrar el proveedor con un administrador de tokens de seguridad personalizado.

Nota

Cree un proveedor de tokens personalizado si los tokens proporcionados por el sistema ubicados en el espacio de nombres System.IdentityModel.Tokens no coinciden con sus requisitos.

El proveedor de tokens de seguridad crea una representación de token de seguridad basada en información en el cliente o en las credenciales de servicio. Para usar el proveedor de tokens de seguridad personalizado en la seguridad Windows Communication Foundation (WCF), debe crear credenciales personalizadas e implementaciones de administrador de tokens de seguridad.

Para obtener más información acerca de credenciales personalizadas y administrador de tokens de seguridad, consulte Cómo: Crear credenciales de cliente y servicio personalizadas.

Para obtener más información acerca de credenciales, administrador de tokens de seguridad y clases de proveedor y autenticador, consulte Arquitectura de seguridad.

Para crear un proveedor de tokens de seguridad personalizado

  1. Defina una clase nueva derivada de la clase SecurityTokenProvider.

  2. Implemente el método GetTokenCore. El método es responsable de crear y devolver una instancia del token de seguridad. El ejemplo siguiente crea una clase denominada MySecurityTokenProvidere invalida el método GetTokenCore para devolver una instancia de la clase X509SecurityToken. El constructor de clase necesita una instancia de la clase X509Certificate2.

Para integrar un proveedor de tokens de seguridad personalizado con un administrador de tokens de seguridad personalizado

  1. Defina una clase nueva derivada de la clase SecurityTokenManager. (El siguiente ejemplo se deriva de la clase ClientCredentialsSecurityTokenManager, que se deriva de la clase SecurityTokenManager).

  2. Si no está ya invalidado, invalide el método CreateSecurityTokenProvider.

    El método CreateSecurityTokenProvider es responsable de devolver una instancia de la clase SecurityTokenProvider adecuada al parámetro SecurityTokenRequirement que el marco de seguridad WCF pasó al método. Modifique el método para devolver la implementación de proveedor de tokens de seguridad personalizado (creada en el procedimiento anterior) cuando se llama al método con un parámetro de token de seguridad adecuado. Para obtener más información acerca del administrador de tokens de seguridad, consulte Cómo: Crear credenciales de cliente y servicio personalizadas.

  3. Agregue la lógica personalizada al método para permitirle que devuelva su proveedor de tokens de seguridad personalizado basado en el parámetro SecurityTokenRequirement. El ejemplo siguiente devuelve el proveedor de tokens de seguridad personalizado si se cumplen los requisitos del token. Los requisitos incluyen un token de seguridad X.509 y la dirección del mensaje (que el token se utiliza para la salida del mensaje). Para todos los casos restantes, el código llama a la clase base para mantener el comportamiento proporcionado por el sistema para otros requisitos de token de seguridad.

Ejemplo

A continuación se presenta una implementación SecurityTokenProvider completa junto con una implementación SecurityTokenManager correspondiente.

Consulte también

Referencia

SecurityTokenProvider
SecurityTokenRequirement
SecurityTokenManager
X509SecurityToken

Conceptos

Cómo: Crear credenciales de cliente y servicio personalizadas
Cómo: Crear un autenticador de tokens de seguridad personalizado
Arquitectura de seguridad