Reflexiones y apuntes sobre arquitectura, consultoría y gestión proyectos CRM

Seguridad: usuarios y roles en Dynamics CRM

El modelo de seguridad de Microsoft Dynamics CRM apenas ha cambiado desde la versión 3.0 dónde ya se basaba en roles y usuarios ubicados en determinadas unidades de negocio.

Seguridad

Seguridad

Este artículo no pretende explicar cómo es este modelo, lo cual es un tremendo alivio porque, inicialmente, es un modelo muy potente, pero también puede llegar a ser bastante complicado de entender. Y también porque ya hay publicada documentación abundante para entender este modelo.

Pero sí pretende explicar cuál es la práctica habitual en proyectos dónde los requerimientos de seguridad son altos lo cuál ocurre en la mayoría de las implementaciones dónde interviene el área comercial.

Qué hacer con los roles por defecto

Lo habitual es no utilizar ningún rol de los que ofrece el sistema por defecto dado que son roles estándar y no suelen adaptarse ‘out-of-the-box’ a los requerimientos concretos de ninguna proyecto.

Y por cuestiones de higiene se suele renombrar los roles para hacer explícito que no sean utilizados (serán manías propias pero lo explícito no tiene discusión y personalmente me he evitado alguna con esta ‘buena práctica’).

Roles de seguridad

Roles de seguridad

También es una práctica muy recomendable crear roles como copia de un rol existente, que suele ser el rol de ‘Administrador del sistema’, dado que hay privilegios ‘ocultos’ en los roles que no se pueden configurar a través del mismo formulario.

Cuántos roles crear

La recomendación es obvia: cuántos menos roles más fácil va a resultar su mantenimiento.

Y realmente no es necesario crear muchos teniendo en cuenta que la ‘profundidad del rol’ asigna los privilegios en función de la ubicación del usuario al que se le otorga en un lugar (y solo uno) de la jerarquía de unidades de negocio.

Profundidad del rol

Profundidad del rol

Enfoque incremental

Por eso suele ser práctica habitual crear un rol con los permisos imprescindibles para poder acceder al sistema: CRM – USUARIO BÁSICO, que no por llamarse ‘básico’ lo es porque realmente es el que otorga el mayor número de privilegios en todas las entidades necesarias para que un usuario ‘básico’ puede comenzar a utilizar el sistema.

Formulario de rol

Formulario de rol

Y crear a continuación sucesivos roles que agreguen a este rol privilegios adicionales de forma incremental, por ejemplo CRM-COMERCIAL/ATENCIÓN AL CLIENTE, que en este ejemplo apenas incrementa el nivel de profundidad de las acciones sobre la entidad ‘Actividad’ de ‘Usuario’ a ‘Primario: unidades de negocio secundarias’, permitiendo así que los usuarios a los que se les otorgue compartan las actividades con otros usuarios en su unidad de negocio o en alguna unidad ‘inferior’.

Seguridad incremental

Seguridad incremental

Roles por funciones y nivel de profundidad

Con este enfoque lo recomendado es crear muy pocos roles y siempre orientados de forma funcional, diferenciando en su caso el ‘nivel de profundidad’ que otorga cada uno para diferenciar usuarios ‘normales’ versus usuarios con mayor visibilidad (Directores). Por ejemplo:

  • CRM – COMERCIAL,
  • CRM – DIRECCIÓN COMERCIAL,
  • CRM – DIRECCIÓN DE MARKETING
  • CRM – MARKETING,

Roles para privilegios diversos

Finalmente para los privilegios muy específicos, normalmente no relacionados con entidades ni con funciones concretas, es recomendable crear roles que específicamente otorguen un privilegio u otro de forma puntual. Por ejemplo:

  • CRM – EXPORTACIÓN EXCEL,
  • CRM – ELIMINACIÓN EN MASA E IMPORTACIÓN EXCEL.

Conclusiones

Dar con los roles de seguridad más adecuados para satisfacer los requerimientos de un sistema CRM es una tarea siempre complicada porque un solo clic de más o de menos en la configuración de un rol puede dar al traste con los requisitos establecidos (y hay miles de combinaciones posibles entre entidades, privilegios y niveles de profundidad).

Por esto es recomendable otorgar la mayoría de los privilegios en un solo rol, a asignar por defecto a todos los usuarios del sistema, y crear a continuación el menor número posible de roles (funcionales o específicos) para, de forma incremental, ir asignando mayores privilegios a los usuarios del sistema.

De este modo, manteniendo la complejidad en un solo rol (USUARIO BÁSICO) y controlando que el resto de roles no sea incrementen demasiado, resulta más sencillo a medio y largo plazo el mantenimiento de la seguridad de un sistema CRM.

Sobre Juan Ribes

Director de Servicios CRM en ENCAMINA. Responsable de la implantación los proyectos CRM en ENCAMINA desde 2005, principalmente con Microsoft Dynamics.
Esta entrada ha sido publicada en Arquitectura, Consultoría, Diseño, Estrategia, Gestión de proyectos. Enlace permanente.
ENCAMINA, piensa en colores