Published 17 years ago
(updated 13 years ago)
Factores a Considerar en Una Solución
Prácticamente todas las aplicaciones empresariales requieren contar con capacidades de control de acceso. Es decir, restringir las operaciones que puede realizar un usuario. Uno de los esquemas más comunes es el control de acceso basado en roles, también conocido como RBAC por sus siglas en inglés (Role Based Access Control).
Es muy común que en nuestras aplicaciones implementemos nosotros mismos el control de acceso como parte de su desarrollo. Sin embargo, también existen productos listos para usarse que resuelven este problema. En este artículo explicamos las principales características que debe cumplir un buen sistema de control de acceso basado en roles.
Funcionalidad
Un sistema RBAC debe proveer como mínimo tres diferentes grupos de funcionalidad: autenticación, autorización y auditoria.
• Autenticación. Capacidad de validar la identidad de un usuario. Típicamente se realiza por medio de nombres de usuario y contraseña.
• Autorización. Es la definición de qué es lo que un usuario específico puede hacer dentro de una aplicación, es decir a qué información y operaciones tiene acceso.
• Auditoría. Se refiere a la capacidad de mantener un registro de las transacciones sensitivas de una aplicación. La auditoria permite saber quién hizo qué, cuando lo hizo, y quién le dio los permisos necesarios a ese usuario.
Componentes
• Repositorio. Se requiere de un lugar seguro para almacenar los usuarios, contraseñas, roles y permisos.
• Interfaz entre aplicación y repositorio. Este es el componente intermedio que sirve de interfaz entre una aplicación y el repositorio de seguridad.
• Consola de administración. La consola que permite administrar las cuentas de usuario, roles y permisos. Debe ser sencilla de usar, de forma que gente no técnica pueda realizar estas tareas.
• Documentación. Un elemento comúnmente olvidado, que sin embargo es necesario para tener un proceso de seguridad confiable y que no dependa de personas específicas.
Es altamente recomendable que los detalles para el control de acceso a aplicación no estén definidos dentro del código de la aplicación misma, sino que se realicen a través de un componente externo que interactúe con un repositorio de permisos, tal como se indica aquí. Esto permite tener independencia entre el código de la aplicación y el control de acceso, lo cual es deseable ya que así no necesitamos modificar la aplicación y lanzar una nueva versión cada que tengamos que hacer un cambio en la política de accesos. Otra ventaja es que no necesitamos a personas que entiendan el código de la aplicación, para poder hacer ajustes en el control de acceso.
Factores a considerar al diseñar
un sistema RBAC
Estos son algunos de los principales factores a considerar al diseñar o escoger un sistema RBAC.
• Repositorio centralizado. Considera si es que necesitas centralizar el manejo de permisos de varias aplicaciones en un solo repositorio. Incluso podrías requerir que los roles se puedan compartir entre varias aplicaciones.
• Single sign-on. Single sign-on se refiere a la capacidad de que los usuarios se autentiquen una sola vez al inicio de una sesión y posteriormente puedan utilizar varias aplicaciones sin necesidad de estarse autenticando para cada una.
• Soporte a diversas tecnologías. La mayoría de los ambientes corporativos cuentan con múltiples plataformas aplicativas, así como tipos de cliente (desktop, web, móvil). Desarrolla o escoge un sistema RBAC que funcione adecuadamente con las diferentes plataformas tecnológicas que se utilizan en tu organización.
• Granularidad. La forma más básica de control de acceso consiste en restringir el acceso a pantallas o menús. Sin embargo, frecuentemente se requiere de una mayor granularidad, como podría ser tener control a nivel de cada campo de información, o que un listado contenga datos diferentes para usuarios dependiendo del rol que tengan, o que un proceso de negocio tenga diferentes pasos dependiendo del perfil del usuario.
Opciones en el Mercado
La mayoría de las organizaciones optan por desarrollar su propia solución para control de acceso. Sin embargo, difícilmente toman en cuenta todos los aspectos que hemos mencionado en este artículo y por lo tanto terminan con soluciones que no resuelven todas las necesidades y que además son difíciles de mantener.
En el otro extremo se encuentran las plataformas empresariales para manejo de identidades y acceso. Gartner identifica como líderes en esta categoría a proveedores como IBM, CA, Oracle y Sun. Estas plataformas brindan poder y flexibilidad, pero a costa de complejidad y en la mayoría de los casos requieren in
Como un punto medio entre las soluciones desarrolladas internamente, y las plataformas empresariales, tenemos herramientas comerciales dirigidas a asegurar aplicaciones individuales, de forma sencilla y no intrusiva. Entre las opciones más notables de este segmento está Visual Guard, de la empresa francesa Novalys. Esta herramienta ofrece un muy buen balance entre el poder de sus capacidades, y su facilidad de implementación. La limitante es que solo está disponible para plataformas .Net y PowerBuilder, pero si desarrollas aplicaciones sobre estas tecnologías, bien vale la pena echarle un vistazo.
Referencias:
[ Gartner Magic Quadrant for Web Access
Management, 2H07 ]
[ Novalys Whitepaper: Role Based Access
Control for .NET applications ]
[ visual-guard.com ]
Prácticamente todas las aplicaciones empresariales requieren contar con capacidades de control de acceso. Es decir, restringir las operaciones que puede realizar un usuario. Uno de los esquemas más comunes es el control de acceso basado en roles, también conocido como RBAC por sus siglas en inglés (Role Based Access Control).
Es muy común que en nuestras aplicaciones implementemos nosotros mismos el control de acceso como parte de su desarrollo. Sin embargo, también existen productos listos para usarse que resuelven este problema. En este artículo explicamos las principales características que debe cumplir un buen sistema de control de acceso basado en roles.
Funcionalidad
Un sistema RBAC debe proveer como mínimo tres diferentes grupos de funcionalidad: autenticación, autorización y auditoria.
• Autenticación. Capacidad de validar la identidad de un usuario. Típicamente se realiza por medio de nombres de usuario y contraseña.
• Autorización. Es la definición de qué es lo que un usuario específico puede hacer dentro de una aplicación, es decir a qué información y operaciones tiene acceso.
• Auditoría. Se refiere a la capacidad de mantener un registro de las transacciones sensitivas de una aplicación. La auditoria permite saber quién hizo qué, cuando lo hizo, y quién le dio los permisos necesarios a ese usuario.
Componentes
• Repositorio. Se requiere de un lugar seguro para almacenar los usuarios, contraseñas, roles y permisos.
• Interfaz entre aplicación y repositorio. Este es el componente intermedio que sirve de interfaz entre una aplicación y el repositorio de seguridad.
• Consola de administración. La consola que permite administrar las cuentas de usuario, roles y permisos. Debe ser sencilla de usar, de forma que gente no técnica pueda realizar estas tareas.
• Documentación. Un elemento comúnmente olvidado, que sin embargo es necesario para tener un proceso de seguridad confiable y que no dependa de personas específicas.
Es altamente recomendable que los detalles para el control de acceso a aplicación no estén definidos dentro del código de la aplicación misma, sino que se realicen a través de un componente externo que interactúe con un repositorio de permisos, tal como se indica aquí. Esto permite tener independencia entre el código de la aplicación y el control de acceso, lo cual es deseable ya que así no necesitamos modificar la aplicación y lanzar una nueva versión cada que tengamos que hacer un cambio en la política de accesos. Otra ventaja es que no necesitamos a personas que entiendan el código de la aplicación, para poder hacer ajustes en el control de acceso.
Factores a considerar al diseñar
un sistema RBAC
Estos son algunos de los principales factores a considerar al diseñar o escoger un sistema RBAC.
• Repositorio centralizado. Considera si es que necesitas centralizar el manejo de permisos de varias aplicaciones en un solo repositorio. Incluso podrías requerir que los roles se puedan compartir entre varias aplicaciones.
• Single sign-on. Single sign-on se refiere a la capacidad de que los usuarios se autentiquen una sola vez al inicio de una sesión y posteriormente puedan utilizar varias aplicaciones sin necesidad de estarse autenticando para cada una.
• Soporte a diversas tecnologías. La mayoría de los ambientes corporativos cuentan con múltiples plataformas aplicativas, así como tipos de cliente (desktop, web, móvil). Desarrolla o escoge un sistema RBAC que funcione adecuadamente con las diferentes plataformas tecnológicas que se utilizan en tu organización.
• Granularidad. La forma más básica de control de acceso consiste en restringir el acceso a pantallas o menús. Sin embargo, frecuentemente se requiere de una mayor granularidad, como podría ser tener control a nivel de cada campo de información, o que un listado contenga datos diferentes para usuarios dependiendo del rol que tengan, o que un proceso de negocio tenga diferentes pasos dependiendo del perfil del usuario.
Opciones en el Mercado
La mayoría de las organizaciones optan por desarrollar su propia solución para control de acceso. Sin embargo, difícilmente toman en cuenta todos los aspectos que hemos mencionado en este artículo y por lo tanto terminan con soluciones que no resuelven todas las necesidades y que además son difíciles de mantener.
En el otro extremo se encuentran las plataformas empresariales para manejo de identidades y acceso. Gartner identifica como líderes en esta categoría a proveedores como IBM, CA, Oracle y Sun. Estas plataformas brindan poder y flexibilidad, pero a costa de complejidad y en la mayoría de los casos requieren in
Como un punto medio entre las soluciones desarrolladas internamente, y las plataformas empresariales, tenemos herramientas comerciales dirigidas a asegurar aplicaciones individuales, de forma sencilla y no intrusiva. Entre las opciones más notables de este segmento está Visual Guard, de la empresa francesa Novalys. Esta herramienta ofrece un muy buen balance entre el poder de sus capacidades, y su facilidad de implementación. La limitante es que solo está disponible para plataformas .Net y PowerBuilder, pero si desarrollas aplicaciones sobre estas tecnologías, bien vale la pena echarle un vistazo.
Referencias:
[ Gartner Magic Quadrant for Web Access
Management, 2H07 ]
[ Novalys Whitepaper: Role Based Access
Control for .NET applications ]
[ visual-guard.com ]
- Log in to post comments