Configuración de permisos con AzMan

Administración de autorizaciones, o Authorization Manager (AzMan), es un marco de trabajo que permite definir y ejecutar políticas de seguridad para aplicaciones basadas en la definición de roles de usuarios.

Las políticas de autorización basadas en roles especifican los derechos de acceso a funcionalidades de las aplicaciones basándose en agrupaciones de requisitos necesarios para que un usuario pueda llevar a cabo un determinado tipo de tarea (roles).

Con el uso de administración de autorizaciones las políticas se definen e implementan en un entorno totalmente diferenciado del propio código de las aplicaciones a las que se les aplica.

Para que un aplicación pueda ser gestionada usando AzMan es necesario que haya sido adecuadamente programada para ello. En concreto se deben de haber definido cuáles son las operaciones a bajo nivel que puede llevar a cabo la aplicación y que se consideran sensibles desde el punto de vista de la seguridad, y se deben haber identificado también qué tareas de aplicación necesitan acceso a qué operaciones.

La herramienta administrativa para la gestión deAzMan es una consola de tipo mmc (Microsoft Management Console).


Figura 1.- Agregar el complemento AzMan a una consola mmc en Windows Server 2008 R2

Desde ella los administradores pueden seleccionar operaciones, agruparlas en tareas, y autorizar a determinados roles a realizar determinadas tareas.

Nota: AzMan también se puede gestionar mediante el uso de scripts, ya que incluye una API de programación

Hyper-V es compatible con Administración de autorizaciones, y por lo tanto es posible usar la consola de AzMan para gestionar la seguridad de Hyper-V en base a roles.

Lo primero que se necesita para poder usar AzMan es que exista un almacén de información base para la política que se va a definir.

 Este almacén se denomina almacén de autorización, y en el caso de Hyper-V puede tomar dos formas: o bien se trata de un almacén integrado y mantenido en Active Directory, en el caso de servidores miembros de un dominio, o bien se trata de un archivo XML ubicado localmente en cada servidor Hyper-V, en el caso de servidores de Hyper-V independientes.

Hyper-V incluye un almacén por defecto en formato XML, que está ubicado en la ruta "ProgramData\Microsoft\Windows\Hyper-V" de la unidad de instalación del sistema operativo, y cuyo nombre es: "InitialStore.xml".

Puesto que desde la consola de AzMan no podemos crear un almacén nuevo debemos partir de este o del almacenado en Active Directory.


Figura 2.- Apertura desde la consola de AzMan del almacén de autorización en formato XML de Hyper-V

Una vez cargado el almacén de autorización vemos que hay una sección dedicada a servicios de Hyper-V, y dentro de ella tres subsecciones: grupos, definiciones y asignaciones de roles.

- Grupos de aplicaciones: se refiere a grupos de usuarios para control de acceso a aplicaciones; es un tipo de grupo básico de los incluidos en Windows (el otro son los grupos de seguridad, que se usan para controlar el acceso de los usuarios a los recursos como ficheros, impresoras...). Una vez creado el grupo se puede poblar con usuarios locales del servidor, o con usuarios de Active Directory en caso de que estemos en un ambiente de dominio de Microsoft.

Nota: también es posible incluir en los grupos de aplicaciones de AzMan otros grupos de aplicaciones de AzMan.

- Definiciones: en esta sección es donde se pueden definir las tareas de Hyper-V que queremos controlar y los roles con los que vamos a trabajar. Las operaciones básicas de Hyper-V están incluidas en la información del almacén de autorización de Hyper-V, y no se pueden cambiar.

Por ejemplo podemos definir una tarea denominada "Añadir conectividad externa a una máquina virtual"; para que un usuario pueda llevar a cabo esta tarea es necesario que dicho usuario tenga permisos para realizar las siguientes operaciones básicas de Hyper-V: "Bind to External Ethernet Port", "Create Internal Ethernet port", "Create Virtual Switch", "Create Virtual Switch Port", "View External Ethernet Ports", "View Internal Ethernet Ports", "View LAN Endpoints", "View Switch Ports", "View Switches", "View Virtual Switch Management Service" y "View VLAN Settings".

Por lo tanto seleccionamos "Definición de nueva tarea" en el menú contextual del elemento "Definiciones de tarea" del nodo "Definiciones". Le ponemos el nombre "Añadir conectividad externa a una máquina virtual" y pulsamos agregar.

Se nos informa de que aún no hay tareas definidas; este mensaje se presenta porque a una tarea no sólo se le pueden asignar operaciones básicas de aplicación, sino también otras tareas. Aceptamos el mensaje y seleccionamos la pestaña operaciones. Aquí seleccionamos todas las operaciones básicas de Hyper-V que va a necesitar nuestra tarea, que son las enumeradas anteriormente.


Figura 3.- Ejemplo de definición de una tarea de Hyper-V para usar con AzMan

Igualmente también es posible definir un rol, el cual podrá incluir además de operaciones básicas permitidas a los usuarios del rol, tareas permitidas y reglas de autorización que les afectan.

De esta manera por ejemplo en vez de crear una tarea "Añadir conectividad externa a una máquina virtual" podríamos haber creado un rol llamado "Usuarios que pueden añadir conectividad externa a una máquina virtual", y haberle asignado las mismas operaciones básicas de aplicación permitidas que asignamos a la tarea.

Sin embargo para obtener un mayor control y un mayor grado de granularidad en la gestión de operaciones es preferible definir la tarea y luego asignarla al rol, junto con otras tareas u operaciones aisladas que competan al rol. De esta manera si es preciso corregir una tarea, por ejemplo, no hace falta tocar el rol.

- Asignaciones de rol: en este apartado se asignan usuarios y grupos de usuarios, grupos de aplicaciones y otros roles a cada rol definido. Con esta asignación se hacen efectivos los permisos.