Mecanismos de control de acceso
Puede controlar el acceso de varias maneras con Windows Communication Foundation (WCF). Este tema aborda brevemente los diversos mecanismos y proporciona sugerencias sobre cuándo utilizar cada uno; está destinado a ayudarle a seleccionar el mecanismo correcto a utilizar. Las tecnologías de acceso están listadas por orden de complejidad. La más simple es PrincipalPermissionAttribute; la más compleja es el modelo de identidad.
Además de estos mecanismos, la suplantación y delegación con WCF se explican en Delegación y suplantación con WCF.
PrincipalPermissionAttribute
PrincipalPermissionAttribute se utiliza para restringir el acceso a un método de servicio. Cuando el atributo se aplica a un método, se puede utilizar para exigir la identidad de un llamador concreto o la pertenencia a un grupo de Windows o función ASP.NET. Si el cliente se autentica utilizando un certificado X.509, se le proporciona una identidad primaria que está compuesta del nombre de sujeto más la huella digital del certificado.
Utilice PrincipalPermissionAttribute para controlar el acceso a los recursos en el equipo en el que el servicio se está ejecutando y si los usuarios del servicio siempre formarán parte del mismo dominio de Windows en el que el servicio se está ejecutando. Puede crear con facilidad grupos de Windows que hayan especificado niveles de acceso (como ninguno, de sólo lectura o lectura y escritura).
Para Para obtener más información acerca de utilizar el atributo, vea Cómo restringir el acceso con la clase PrincipalPermissionAttribute. Para Para obtener más información acerca de identidad, vea Identidad del servicio y autenticación.
Proveedor de pertenencia a ASP.NET
Una característica de ASP.NET es el proveedor de pertenencia. Aunque el proveedor de pertenencia no es técnicamente un mecanismo de control de acceso, permite controlar el acceso al servicio limitando el conjunto de posibles identidades que pueden tener acceso al extremo del servicio. La característica de pertenencia incluye una base de datos que se puede rellenar con combinaciones de nombre de usuario/contraseña que permitan a los usuarios de un sitio Web establecer cuentas en el sitio. Para tener acceso a un servicio que utiliza el proveedor de pertenencia, un usuario debe registrarse en con su nombre de usuario y contraseña.
Nota
Primero debe rellenar la base de datos utilizando la característica WCF antes de que un servicio ASP.NET pueda utilizarla para los propósitos de la autorización.
También puede utilizar la característica de pertenencia si ya tiene una base de datos de pertenencias de un sitio Web ASP.NET existente y desea permitir a los mismos usuarios que utilicen su servicio, autorizándolos con los mismos nombres de usuario y contraseñas.
Para Para obtener más información acerca de utilizar la característica de pertenencia en un servicio WCF, vea Cómo: Utilizar el proveedor de suscripciones de ASP.NET.
Proveedor de funciones ASP.NET
Otra característica de ASP.NET es la capacidad de administrar la autorización mediante las funciones. El proveedor de funciones ASP.NET permite a un programador crear las funciones para los usuarios y asignar a cada usuario una función o funciones. Como con el proveedor de pertenencia, las funciones y asignaciones están almacenados en una base de datos y se pueden rellenar utilizando las herramientas proporcionadas por una implementación determinada del proveedor de funciones ASP.NET. Como con la característica de pertenencia, los programadores WCF pueden utilizar la información en la base de datos para autorizar a los usuarios del servicio mediante funciones. Por ejemplo, pueden utilizar el proveedor de funciones en combinación con el mecanismo de control de acceso PrincipalPermissionAttribute descrito anteriormente.
También puede utilizar el proveedor de funciones ASP.NET si tiene una base de datos de proveedor de funciones ASP.NET existente y desea utilizar el mismo conjunto de reglas y asignaciones de usuario en su servicio WCF.
Para Para obtener más información acerca de utilizar la característica de proveedor de funciones, vea Cómo: Utilizar el proveedor de funciones ASP.NET con un servicio.
Administrador de autorización
Otra característica combina el Administrador de autorización (AzMan) con el proveedor de funciones ASP.NET para autorizar a los clientes. Cuando ASP.NET aloja un servicio Web, AzMan se puede integrar en la aplicación para que la autorización al servicio se haga a través de AzMan. El administrador de funciones ASP.NET proporciona una API que le permite administrar las funciones de la aplicación, agregar y quitar usuarios de las funciones y comprobar la pertenencia de la función, pero no le permite consultar si un usuario está autorizado a realizar una tarea con nombre u operación. AzMan le permite definir operaciones individuales y combinarlas en tareas. Con AZMan, además de las comprobaciones de la función, también puede comprobar si un usuario puede realizar una tarea. La asignación de funciones y la autorización de tareas se pueden configurar fuera de la aplicación o se pueden realizar mediante programación dentro de la aplicación. El complemento Microsoft Management Console (MMC) de administración de AzMan permite a los administradores cambiar las tareas que una función puede realizar en tiempo de ejecución y administrar la pertenencia de funciones de cada usuario.
También puede utilizar AzMan y el proveedor de funciones ASP.NET si ya tiene el acceso a una instalación AzMan existente y desea autorizar su servicio a los usuarios utilizando las características de la combinación de AzMan/proveedor de funciones.
Para obtener más información acerca de AzMan y el proveedor de funciones de ASP.NET, consulte https://go.microsoft.com/fwlink/?LinkId=88951. Para obtener más información acerca de el uso de AzMan y el proveedor de funciones para los servicios de WCF, consulte Cómo utilizar el proveedor de funciones del administrador de autorización de ASP.NET con un servicio.
Modelo de identidad
El modelo de identidad es un conjunto de API que le permiten administrar demandas y directivas para autorizar a los clientes. Con el modelo de identidad, puede examinar cada demanda contenida en credenciales que el llamador utiliza para autenticarse a sí mismo para el servicio, comparar las demandas con el conjunto de directivas para el servicio y conceder o denegar acceso basándose en la comparación.
Utilice el modelo de identidad si necesita un control preciso y la capacidad de establecer criterios concretos antes de conceder el acceso. Por ejemplo, al utilizar PrincipalPermissionAttribute, el criterio simplemente es que la identidad del usuario se pueda autenticar y pertenezca a una función concreta. En cambio, utilizando el modelo de identidad, puede crear una directiva que establezca que el usuario debe ser mayor de 18 años y poseer una licencia de conducir válida antes de que se le permita ver un documento.
Un ejemplo donde puede beneficiarse del control de acceso basado en demandas del modelo de identidad es al utilizar credenciales de federación en el escenario token emitido. Para Para obtener más información acerca de federación y tokens emitidos, vea Federación y tokens emitidos.
Para Para obtener más información acerca de el modelo de identidad, vea Administración de notificaciones y autorización con el modelo de identidad.
Consulte también
Tareas
Cómo restringir el acceso con la clase PrincipalPermissionAttribute
Cómo: Utilizar el proveedor de funciones ASP.NET con un servicio
Cómo: Utilizar el proveedor de funciones ASP.NET con un servicio
Referencia
Conceptos
Cómo utilizar el proveedor de funciones del administrador de autorización de ASP.NET con un servicio
Administración de notificaciones y autorización con el modelo de identidad
Delegación y suplantación con WCF