Seguridad basada en roles
Suelen usarse roles en aplicaciones empresariales o financieras para aplicar la directiva. Por ejemplo, una aplicación puede imponer límites en el tamaño de la transacción que se va a procesar según si el usuario que realiza la solicitud es un miembro de rol especificado. Los empleados podrían tener autorización para procesar las transacciones que son inferiores a un umbral especificado, los supervisores podrían tener un límite mayor y los vicepresidentes podrían tener un límite aún mayor (o ningún límite). La seguridad basada en roles también se puede usar cuando una aplicación requiere varias aprobaciones para completar una acción. Este caso podría ser un sistema de compras en el que cualquier empleado puede generar una solicitud de compra, pero solo un agente de compras puede convertir la solicitud en un pedido de compras que se pueden enviar a un proveedor.
La seguridad basada en roles de .NET admite la autorización haciendo que la información sobre el principal, que se construye a partir de una identidad asociada, esté disponible para el subproceso actual. La identidad (y la entidad de seguridad que ayuda a definir) puede estar basada en una cuenta de Windows o puede ser una identidad personalizada no relacionada con una cuenta de Windows. Las aplicaciones de .NET pueden tomar decisiones sobre autorización basándose en la identidad de la entidad de seguridad, en su pertenencia a un rol o ambas. Un rol es un conjunto de entidades de seguridad que tienen los mismos privilegios de seguridad (como un tesorero o un administrador). Una entidad de seguridad puede ser miembro de uno o varios roles. Por lo tanto, las aplicaciones pueden usar la pertenencia a un rol para determinar si una entidad de seguridad está autorizada para realizar una acción solicitada.
Para facilitar el uso y mejorar la coherencia con la seguridad de acceso del código, la seguridad basada en roles de .NET Framework proporciona objetos System.Security.Permissions.PrincipalPermission que permiten a Common Language Runtime realizar la autorización de forma similar a las comprobaciones de seguridad de acceso del código. La clase PrincipalPermission representa la identidad o el rol con los que la entidad de seguridad debe coincidir y es compatible con las comprobaciones de seguridad declarativa e imperativa. También puede acceder directamente a la información de identidad de una entidad de seguridad y realizar las comprobaciones de identidad y de rol en el código cuando sea necesario.
.NET proporciona compatibilidad de seguridad basada en roles que es suficientemente flexible y ampliable para satisfacer las necesidades de una amplia variedad de aplicaciones. Puede elegir interoperar con infraestructuras de autenticación existentes, como los servicios COM+ 1.0, o crear un sistema de autenticación personalizado. La seguridad basada en roles está especialmente indicada para aplicaciones web de ASP.NET, que se procesan principalmente en el servidor. Sin embargo, la seguridad basada en roles de .NET puede usarse en el cliente o en el servidor.
Antes de leer esta sección, asegúrese de que comprende el material presentado en Conceptos clave de seguridad.