Uso de roles para la autorización de cliente

La seguridad basada en roles se usa para establecer una directiva de autorización, determinando qué cliente o clientes dejar entrar y con qué autoridad. Decide quién debe poder realizar las acciones y acceder a qué recursos.

Los roles facilitan esto actuando como un mecanismo de control de acceso invocado cada vez que un usuario intenta acceder a cualquier recurso de aplicación. Un rol es básicamente una lista de usuarios, más precisamente, una categoría simbólica de usuarios que comparten el mismo privilegio de seguridad. Al asignar un rol a un recurso de aplicación, va a conceder permiso de acceso para ese recurso a quien sea miembro de ese rol.

Por lo tanto, puede definir un privilegio de seguridad muy determinado declarandolo como un rol y, a continuación, asignando el rol a recursos específicos. Cuando se implementa la aplicación, el administrador del sistema puede rellenar el rol con usuarios y grupos de usuarios reales. Cuando se ejecute la aplicación, COM+ aplicará la directiva mediante la realización de comprobaciones de roles.

Fundamentalmente, los roles ayudan a proteger el código, es decir, los métodos a los que pueden llamar los clientes de una aplicación COM+. La pertenencia a roles se comprueba cada vez que un cliente intenta llamar a un método expuesto por un componente de una aplicación. Si el autor de la llamada está en un rol asignado al método o recurso llamado, la llamada se realiza correctamente; de lo contrario, se produce un error.

Seguridad de Role-Based declarativa

Con la seguridad declarativa basada en roles, se declaran de forma administrativa los roles (mediante la herramienta administrativa Servicios de componentes o las funciones administrativas) y se asignan administrativamente a los recursos de la aplicación. Dónde y cómo se establece la seguridad declarativa determinarán dónde se dibujan los límites de seguridad para la aplicación. Para más información, consulte Límites de seguridad.

Puede asignar un rol determinado a toda la aplicación, a un componente determinado, a una interfaz determinada de un componente o a un método determinado en una interfaz. Las asignaciones de roles se heredan de la cadena natural de inclusión, es decir, si asigna un rol a un componente, se asigna implícitamente a cada interfaz y método expuesto por ese componente.

Con la disponibilidad de asignaciones de roles de nivel de método, puede ayudar a proteger eficazmente los componentes e interfaces que no se han diseñado teniendo en cuenta la seguridad. Sin embargo, si los propios métodos no son protegibles con asignaciones de roles declarativas, es posible que tenga que realizar la comprobación de roles mediante programación. Por lo general, es una buena idea tener en cuenta la seguridad al decidir cómo factorizar la funcionalidad empresarial a través de métodos; de lo contrario, podría agregar código relacionado con la seguridad en el último minuto.

Para obtener procedimientos detallados para establecer la seguridad basada en roles, consulte Configuración de Role-Based Seguridad.

Seguridad mediante programación

En algunas circunstancias, es posible que quiera colocar la lógica de seguridad en componentes mientras sigue usando la seguridad basada en roles. Es posible que no sea capaz de, o no elegir, factorizar todas las decisiones de acceso a través de métodos. Por ejemplo, es posible que tenga un recurso de aplicación privada, quizás una base de datos determinada, que desee permitir que solo algunos autores de llamadas de un método accedan al mismo tiempo que excluyen a otros. O bien, es posible que tenga un único método TransferMoney y quiera restringir algunos autores de llamadas limitando la cantidad que pueden transferir.

En tales circunstancias, puede realizar la comprobación de roles en el código. Se proporciona una API sencilla, lo que le permite comprobar si la seguridad está activada y si un autor de llamada o un usuario determinado se encuentra en un rol determinado. Esta funcionalidad solo está disponible cuando se habilita la seguridad basada en roles. Esto significa que todavía puede aprovechar la seguridad declarativa basada en roles cuando sea suficiente y, a continuación, puede extenderla mediante programación a un nivel más preciso de granularidad cuando sea necesario.

Además, al usar la seguridad basada en roles, tiene acceso mediante programación a información sobre todos los autores de llamadas ascendentes de la cadena de llamadas al componente. Esto es especialmente útil cuando desea mantener un registro de auditoría detallado.

Para obtener descripciones de cómo realizar la comprobación de roles en el código y cómo acceder a la información de contexto de llamada de seguridad, consulte Seguridad de componentes mediante programación.

Autorización y autenticación

La autorización significativa presupone que está seguro de que los clientes son realmente quienes dicen que son. Un servicio de autenticación controla la comprobación de la identidad de cliente por separado. Sin autenticación, básicamente permite a los autores de llamadas entrar en el sistema de honor. Para obtener descripciones de la autenticación a medida que afecta a las aplicaciones COM+, consulte Autenticación de cliente.

Diseñar roles de forma eficaz

Límites de seguridad

Información de contexto de llamada de seguridad

Security Context (propiedad)