Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puedes controlar el acceso de varias maneras con Windows Communication Foundation (WCF). En este tema se describen brevemente los distintos mecanismos y se proporcionan sugerencias sobre cuándo usar cada uno; está pensado para ayudarle a seleccionar el mecanismo correcto que se va a usar. Las tecnologías de acceso se enumeran en orden de complejidad. El más sencillo es PrincipalPermissionAttribute; el más complejo es el modelo de identidad.
Además de estos mecanismos, la suplantación y delegación con WCF se explica en Delegación y suplantación.
PrincipalPermissionAttribute
PrincipalPermissionAttribute se usa para restringir el acceso a un método de servicio. Cuando el atributo se aplica a un método, se puede usar para exigir la identidad o pertenencia de un llamador específico a un grupo de Windows o a un rol de ASP.NET. Si el cliente se autentica mediante un certificado X.509, se le asigna una identidad principal que consta del nombre del firmante más la huella digital del certificado.
Utilice el PrincipalPermissionAttribute para controlar el acceso a los recursos del equipo en el que se ejecuta el servicio, y si los usuarios del servicio siempre serán parte del mismo dominio de Windows en el que se ejecuta el servicio. Puede crear fácilmente grupos de Windows que tengan niveles de acceso especificados (como ninguno, solo lectura o lectura y escritura).
Para obtener más información sobre el uso del atributo , vea Cómo: Restringir el acceso con la clase PrincipalPermissionAttribute. Para obtener más información sobre la identidad, consulte Identidad de servicio y autenticación.
Proveedor de membresía de 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 identidades posibles que pueden acceder al punto de conexión del servicio. La característica de pertenencia incluye una base de datos que se puede rellenar con combinaciones de nombre de usuario y contraseña que permiten a los usuarios de un sitio web establecer cuentas con el sitio. Para acceder a un servicio que usa el proveedor de pertenencia, un usuario debe iniciar sesión con su nombre de usuario y contraseña.
Nota:
Primero debe rellenar la base de datos con la característica ASP.NET antes de que un servicio WCF pueda usarlo con fines de autorización.
También puede usar la característica de pertenencia si ya tiene una base de datos de pertenencia de un sitio web de ASP.NET existente y desea permitir que los mismos usuarios usen el servicio, autorizados con los mismos nombres de usuario y contraseñas.
Para obtener más información sobre el uso de la característica de pertenencia en un servicio WCF, vea How to: Use the ASP.NET Membership Provider.
Proveedor de roles ASP.NET
Otra característica de ASP.NET es la capacidad de administrar la autorización mediante roles. El proveedor de roles de ASP.NET permite a un desarrollador crear roles para los usuarios y asignar cada usuario a un rol o roles. Al igual que con el proveedor de pertenencia, los roles y las asignaciones se almacenan en una base de datos y se pueden rellenar mediante herramientas proporcionadas por una implementación determinada del proveedor de roles de ASP.NET. Al igual que con la característica de pertenencia, los desarrolladores de WCF pueden usar la información de la base de datos para autorizar a los usuarios del servicio por roles. Por ejemplo, pueden usar el proveedor de roles en combinación con el PrincipalPermissionAttribute
mecanismo de control de acceso descrito anteriormente.
También puede usar el proveedor de roles de ASP.NET si tiene una base de datos de proveedor de roles de ASP.NET existente y quiere usar el mismo conjunto de reglas y asignaciones de usuario en el servicio WCF.
Para obtener más información sobre el uso de la característica de proveedor de roles, vea How to: Use the ASP.NET Role Provider with a Service.
Administrador de autorización
Otra característica combina el Administrador de autorización (AzMan) con el proveedor de roles de ASP.NET para autorizar a los clientes. Cuando ASP.NET hospeda un servicio web, AzMan se puede integrar en la aplicación para que la autorización al servicio se realice a través de AzMan. ASP.NET administrador de roles proporciona una API que le permite administrar roles de aplicación, agregar y quitar usuarios de roles y comprobar la pertenencia a roles, pero no le permite consultar si un usuario está autorizado para realizar una tarea o operación con nombre. AzMan permite definir operaciones individuales y combinarlas en tareas. Con AZMan, además de las comprobaciones de roles, también puede comprobar si un usuario puede realizar una tarea. La asignación de roles y la autorización de tareas se pueden configurar fuera de la aplicación o realizar mediante programación dentro de la aplicación. El complemento AzMan administration Microsoft Management Console (MMC) permite a los administradores cambiar las tareas que un rol puede realizar en tiempo de ejecución y administrar la pertenencia de cada usuario a los roles.
También puede usar AzMan y el proveedor de roles de ASP.NET si ya tiene acceso a una instalación de AzMan existente y quiere autorizar a los usuarios del servicio mediante las características de la combinación de proveedor de roles o AzMan.
Para obtener más información sobre AzMan y el proveedor de roles de ASP.NET, consulte How To: Use Authorization Manager (AzMan) with ASP.NET 2.0. Para obtener más información sobre el uso de AzMan y el proveedor de roles para los servicios WCF, vea How to: Use the ASP.NET Authorization Manager Role Provider with a Service.
Modelo de identidad
Identity Model es un conjunto de APIs que permiten administrar reclamaciones y directivas para autorizar a los clientes. Con el modelo de identidad, puede examinar todas las afirmaciones contenidas en las credenciales que el llamante utilizó para autenticarse ante el servicio, comparar las afirmaciones con el conjunto de directivas del servicio y conceder o denegar el acceso en función de la comparación.
Use el modelo de identidad si necesita un control preciso y la capacidad de establecer criterios específicos antes de conceder acceso. Por ejemplo, al usar , PrincipalPermissionAttributeel criterio es simplemente que la identidad del usuario se autentica y pertenece a un rol específico. En cambio, con el modelo de identidad, puede crear una directiva que indique que el usuario debe tener más de 18 años de edad y posee una licencia de conducir válida antes de poder ver un documento.
Un ejemplo en el que puede beneficiarse del control de acceso basado en declaraciones del modelo de identidad es cuando se utilizan credenciales de federación en el escenario de emisión de tokens. Para obtener más información sobre la federación y los tokens emitidos, consulte Federación y tokens emitidos.
Para obtener más información sobre el modelo de identidad, consulte Administración de notificaciones y autorización con el modelo de identidad.
Consulte también
- PrincipalPermissionAttribute
- Cómo: Restringir el acceso con la clase PrincipalPermissionAttribute
- Cómo usar el proveedor de roles de ASP.NET con un servicio
- Procedimiento para usar el proveedor de roles del administrador de autorización de ASP.NET con un servicio
- Gestionando reclamaciones y autorización con el modelo de identidad
- delegación y suplantación