‘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:
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:
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:
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 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:
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
Ejemplo 3: se puede definir varios niveles de administración en cada tenant
Es importante facilitar el acceso de los administradores a las funcionalidades de administración:
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
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
Ejemplo 2: aplicaciones comerciales SAAS usadas por varios clientes
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