Saltar al contenido

WCF: ¿Servicio de autenticación o seguridad basada en token?

La guía paso a paso o código que hallarás en este artículo es la solución más eficiente y válida que encontramos a tu duda o dilema.

Solución:

El paso de token codificado a mano no es muy elegante. Contamina las firmas de su método y hace que se dupliquen los cheques por todas partes.

Si puede distribuir credenciales a sus clientes de servicio, o pasar credenciales que ya usan para su sistema, le sugiero que use la seguridad de mensajes con un validador de nombre de usuario y contraseña personalizado.

Los pasos para implementarlo son bastante simples. Solo necesitas implementar un UserNamePasswordValidator:

Un breve resumen de configuración del artículo vinculado:

Especifique el modo de seguridad en su enlace:


    

En su comportamiento de servicio agregue:


    

Luego, los clientes solo necesitan configurar sus credenciales directamente en los servidores proxy del servicio. Por lo tanto, no se pasan en las operaciones de servicio.

serviceClient.ClientCredentials.UserName.UserName = "username";
serviceClient.ClientCredentials.UserName.Password = "password";

Su UserNamePasswordValidator obtendrá estas credenciales para cada llamada de operación de servicio y tendrá la oportunidad de validarlas contra su almacén de credenciales.

Sin embargo, para mayor seguridad, puede consultar la autenticación de certificados. Es más confiable y no es necesario que compre un certificado de una CA. Si también puede configurarse como CA en las computadoras cliente, entonces está listo para comenzar. Es apropiado especialmente porque solo tiene unos pocos clientes, por lo que sería fácil de administrar.

Para la pregunta anterior, la respuesta anterior es lo suficientemente buena. Sin embargo, quiero sugerir otro enfoque: autenticación de token personalizado.

Es más poderoso al brindar la posibilidad de crear/apoyar Credenciales de servicio personalizadas que se crean en función del token de autenticación (Nombre de usuario).

En mi caso, tengo un token de acceso encriptado que contiene toda la información necesaria para el acceso: nombre de usuario, grupos de usuarios (información de autorización), período de validación, etc.

En su caso, puede ser Nombre de usuario y Contraseña. La Credencial contendrá la información sobre su usuario y se puede usar más adelante en el código.

Consulte el siguiente enlace para implementar la autenticación de token personalizado: https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/token-authenticator

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *