¿Qué es una aplicación
multi-tenant?
‘Multitenancy’ es un concepto donde une sola copia de la
aplicación corre en un servidor y es usada simultáneamente
por varios clientes (tenants). La aplicación está diseñada
para repartir su información y su configuración, para que
así cada empresa pueda trabajar con una instancia personalizada
y privada de la aplicación.
Los dos tipos de aplicaciones multi-tenant más frecuentes son:
- Aplicaciones in-house: desarrolladas por empresas
de gran tamaño y usadas a distancia por sus filiales, agencias,
subsidiarias o socios
- Aplicaciones comerciales: aplicaciones SAAS (software
as a service), albergadas en una cloud pública (public cloud)
y usadas por varios clientes
¿Cómo asegurar las aplicaciones multi-tenant?
El control de acceso para las aplicaciones multi-tenant necesita cumplir
ciertos criterios.
1 – Proteger la información de cada una de las
empresas que utilizan la aplicación
El riesgo de divulgación de la información es mayor en
las aplicaciones multi-tenant. Los usuarios deben estar seguros de que
su información está asegurada, a pesar del hecho de que
comparten la aplicación con otras empresas.
Un sistema de control de acceso robusto, que aisla la información
de cada uno de los tenant y que les provee un sistema individual de
protección, sería el adecuado. Este sistema debe proveer,
idealmente, las siguientes funcionalidades:
- Definir y administrar los tenant (set de usuarios)
- Definir y administrar las cuentas usuario como miembros de un tenant
- Restringir el acceso a la información de cada tenant
2 – Delegar los privilegios de administración
El proprietario de la información debe tener la habilidad de
decidir quién puede verla y entrar en ella. Cada empresa debe
ser capaz de personalizar de manera independiente los derechos de acceso
para cada usuario.
Por lo tanto, el sistema de control de acceso debe permitir a los usuarios:
- Delegar la seguridad de la administración a los directores
locales en el interior de cada empresa
- Proteger la confidencialidad de la información: un administrador
tenant no debe tener acceso a la información de la seguridad
de otros tenants
- Preservar la disponibilidad de los datos: mientras que la información
necesita estar segura, también necesita ser accesible y disponible
de manera oportuna. Lo mismo debe aplicar para las funcionalidades
de los administradores
Administración de tenants independientes
El sistema de control de acceso debe ser capaz de reproducir cualquier
repartición existente de los “sets de usuarios”. Visual
Guard le permite definir la jerarquía de los grupos de usuarios,
así como de los grupos que a su vez contienen usuarios u otros
subgrupos.
Este principio puede ser adaptado a la mayor parte de las situaciones:
|
Ejemplo 1:
una aplicación comercial SAAS debe poner sus “clientes”
en el primer nivel de la jerarquía. Cada cliente podrá
crear enseguida sus proprios subgrupos para recrear su estructura
organizacional.
|
| |
Ejemplo 2:
una administración puede definir un tenant para cada agencia
que usa su sistema. Si estas agencias son parte de ciertos departamentos
o de ciertas divisiones, entonces deben ser colocadas en un nivel
más bajo de la jerarquía.
|
|
| |
 |
Ejemplo 3: si una
organización necesita administrar una población mixta
de usuarios internos y externos, se pueden definir tenants que administren
cada set de usuarios de forma independiente.
Nota: en este caso, VG también le permite combinar la autenticación
por medio de las cuentas Windows (usuarios internos) y cuentas de
tipo usuario/contraseña (usuarios externos), si desea más
información de este tipo de autenticación lea, modo
de autenticación mixta.
|
Aparte de estos ejemplos básicos, Visual Guard soporta otros tipos
de configuración. Por ejemplo: usted puede autenticar sus usuarios
con sus cuentas Windows, independientemente de que cada tenant utilice
su propio Active Directory o no. En este caso, Visual Guard le permite
federar varios Active Directories que no pertenecen a la misma red. (Más
información, vea
federación de identidades). En ciertos casos, usted también
puede implementar el Single Sign-On (SSO) basado en las cuentas Windows
de los usuarios.
Usted puede definir la jerarquía de los grupos, desde:
- La consola Windows de Visual Guard
- La consola Web de Visual Guard
- Su aplicación (ASP.NET o WCF/Silverlight por ejemplo) la cual
llamará la API de Visual Guard
Cómo asegurar sus aplicaciones multi-tenant
|
|
Desarrollo
Los desarrolladores definen los permisos con la consola Win
de VG. Los permisos son guardados en un repositorio de desarrollo.
Los desarrolladores desplegarán los permisos en el repositorio
de producción con una herramienta de VG. |
|
Administración
Los administradores gestionan los usuarios y les dan permisos.
Ellos pueden pertenecer o no al tenant. La administración
de sus privilegios puede ser restringida a un tenant, a un grupo
de usuarios, a una aplicación, a un tipo de operación
o a cualquier combinación de las opciones anteriores. |
|
Implementación
Los usuarios finales pueden entrar en la aplicación,
VG asegurará la aplicación como cualquier otra
aplicación. Por defecto, los usuarios utilizarán
cuentas usuario/contraseña. Ellos también pueden
utilizar sus propias cuentas Windows (vea federación
de identidades).
Sus acciones se guardarán en el repositorio de VG. |
|
Auditoría
Los auditores pueden controlar los atributos de los usuarios,
los roles y sus privilegios a través de varios sistemas.
Ellos también pueden revisar las operaciones. Los auditores
pueden o no pertenecer al tenant. En cuanto a los administradores,
su acceso será restringido por tenant, por un grupo,
una aplicación, o una combinación de éstos.
|
|
| Nota: |
 |
 |
 |
|
- Estas funcionalidades están disponibles para cualquier
tecnología soportada por VG, en particular para las aplicaciones
.Net (Winforms, asp.Net, WPF, WCF, Silverlight...)
- Los administradores y los auditores pueden operar desde cualquier
lugar en donde tengan una acceso a Internet
|
|
|
|
|
 |
 |
 |
Restricción de los derechos de administración
de un tenant
En general, Visual Guard le permite dar privilegios a un administrador
para que este pueda administrar los usuarios y pueda darles permisos para
cada aplicación.
Los privilegios de administración también pueden ser limitados
a un grupo de usuarios. En este caso, el administrador solo ve y administra
los usuarios de su grupo.
Cuando se trabaja con una aplicación multi-tenant, se recomienda
nombrar al menos un administrador por tenant y enseguida limitar sus derechos
de administración en dicho tenant.
 |
| Ejemplo 1:
Se puede nombrar un administrador por tenant |
Sin embargo, Visual Guard puede hacer mucho más: podemos limitar
la administración de los permisos a cualquier nivel de la jerarquía.
Este sistema le ofrece una alta flexibilidad de la distribución
de los derechos de administración en cualquier entidad dentro de
los tenants.
 |
| Ejemplo
2: Se puede limitar la administración a un sub-grupo
dentro del tenant |
Acciones avanzadas:
Usted puede combinar diversos criterios para limitar la administración
de los permisos
- Como lo vimos anteriormente, se pueden limitar estos permisos a ciertos
grupos de usuarios.
- También, se pueden limitar estos permisos a ciertas aplicaciones.
- Además, se pueden limitar a ciertas operaciones administrativas
(por ejemplo, el administrador puede crear usuarios y darles roles,
pero dicho administrador no puede definir un rol)
 |
| Ejemplo 3:
se puede definir varios niveles de administración en cada tenant |
Funcionalidades de administración accesibles para
cada tenant
Es importante facilitar el acceso de los administradores a las funcionalidades
de administración:
- Las aplicaciones multi-tenant son usadas en varios sitios. La interfaz
de administración debe ser fácil de implementar así
como la aplicación.
- Para poder distribuir los derechos de administración de manera
flexible, cada usuario debe ser capaz de acceder a las funcionalidades
de administración, no importando que los mismos tengan o no competencias
técnicas.
Por defecto, existen dos soluciones principales:
1 – Consola Web de Visual Guard:
- Esta aplicación le permitirá administrar los usuarios
y sus grupos, roles, permisos, etc…
- La misma consiste en una aplicación web (asp.NET), accesible
desde cualquier navegador.
- Puede ser desplegada con la aplicación y así ser accesible
a los usuarios.
- Esta consola incluye un mecanismo de extensión: los consultores
Visual Guard pueden añadir páginas asp.net personalizadas
a la consola para cumplir con requerimientos específicos del
cliente.
- Encontrará más información de la Consola
Web de VG aquí
2 – Interfaz del administrador personalizable:
- Una interfaz de administración personalizable ASP.NET o WCF/Silverlight
puede también ser personalizada.
- Esta puede ser desplegada como una consola de admnistración
o también puede ser integrada en su aplicación.
- También se puede llamar las APIs para llevar a cabo todas
las acciones de administración. Estas API están aseguradas
como se describió anteriormente. Las mismas permiten, en particular,
administrar los tenant y delegar las restricciones de la administración
a cada tenant. Encontrará más información de
las APIs de Visual Guard aquí
- Usted puede desarrollar estos formularios o puede utilizar los servicios
de los
consultores Visual Guard
Auditoría: ¿Vista y control centralizado
o distribuído?
Semejante a los derechos de administración, también puede
ser posible tanto dar como restringir permisos para ver y controlar la
seguridad de la aplicación multi-tenant.
Dependiendo de las circunstancias, podemos desear tanto centralizar o
distribuir estos permisos.
Ejemplo 1: una aplicación in-house es usada
por varias entidades de una gran empresa
- Por defecto, este tipo de aplicación requiere un control
de seguridad centralizado.
- El auditor debe ser capaz de ver todos los derechos de acceso y
todas las operaciones sensibles que se han hecho, sin tomar en cuenta
los usuarios, los departamentos o los tenant concernidos.
- Cada cliente es libre de limitar el alcance de su auditor a ciertos
sets de usuarios o aplicaciones.
Ejemplo 2: aplicaciones comerciales SAAS usadas por
varios clientes
- El vendedor de software debe ofrecer a cada cliente la habilidad
de controlar la seguridad de sus usuarios. En este caso, el alcance
de cada auditor sera limitado a cada tenant (cliente).
- El auditor de cada tenant puede ver los derechos de acceso de sus
usuarios. Ellos también podrán controlar las acciones
realizadas por los usuarios y los administradores de su tenant.
- Si es necesario, el vendedor de software puede controlar las operaciones
realizadas por sus clientes. Esto puede ser útil en algunos
casos para el soporte técnico, por ejemplo, para entender el
uso de la aplicación o de la administración.
Referencias:
http://en.wikipedia.org/wiki/Multitenancy
http://msdn.microsoft.com/en-us/library/ff966480.aspx
http://www.intranetjournal.com/articles/200311/ij_11_10_03a.html
|