DevOps y seguridad

RBAC UX: cómo diseñar permisos que la gente entienda

Por 7 min de lectura

Técnico de TI gestionando sistemas en un centro de datos, como ejemplo de UX para RBAC y gestión de accesos

El equipo de seguridad de un cliente le hizo una pregunta sencilla a uno de los nuestros: ¿quién en tu empresa puede borrar datos de producción? El admin abrió la pantalla de permisos, vio cuarenta casillas repartidas en seis roles y no pudo responder. No es que no quisiera. No pudo. La información estaba toda ahí, técnicamente, y aun así no le servía a quien la necesitaba.

Esa brecha, entre lo que un sistema hace cumplir y lo que una persona puede razonar de verdad, es donde fallan la mayoría de los modelos de permisos B2B. El control de acceso casi siempre funciona. Lo que nadie puede es leer lo que está haciendo. Y un buen UX para RBAC es el trabajo de cerrar esa brecha, para que quienes otorgan y auditan accesos vean, con palabras simples, quién puede hacer qué y por qué.

Los permisos son un problema de UX, no solo de seguridad

El control de acceso basado en roles es un problema resuelto sobre el papel. Hay usuarios, hay roles, los roles tienen permisos y los usuarios reciben roles. El NIST formalizó el modelo en los años noventa y desde entonces es el estándar de la industria. La teoría es limpia.

La interfaz es donde se complica. El admin de una empresa en crecimiento no es un ingeniero de seguridad. Es un líder de operaciones, una office manager, un líder de equipo al que le tocó la tarea. Cuando abre tu página de permisos, intenta responder preguntas muy humanas. ¿Este nuevo contratista puede ver datos personales de clientes? Si paso a Dana al rol de Finanzas, ¿qué pierde? ¿Por qué esta persona tiene acceso a la exportación de facturación y quién se lo dio?

Una grilla de casillas no responde ninguna de esas preguntas. Muestra el estado crudo del sistema y deja el razonamiento en manos del usuario. Es el mismo error que cometen los equipos con las plataformas de software complejas en general: exponer el modelo de datos en lugar de diseñar para la decisión. Con los permisos el castigo es mayor, porque equivocarse cuesta una filtración o una auditoría fallida.

Las tres preguntas que una interfaz de permisos tiene que responder

Antes de diseñar una sola pantalla, sé honesto sobre qué viene a averiguar la gente a esta parte del producto. Casi siempre es una de estas tres cosas.

¿Quién puede hacer qué?

Suena obvio y casi ningún producto lo resuelve bien. Los admins necesitan responderla de dos maneras: partir de una persona y ver todo lo que puede tocar, o partir de una acción sensible (borrar datos, exportar registros, cambiar la facturación) y ver a todos los que pueden hacerla. La mayoría de las herramientas ofrece solo la primera vista, por rol, y obliga al admin a deducir la segunda. La segunda es la que de verdad preguntan los equipos de seguridad, así que constrúyela a propósito. Una vista de “permisos efectivos”, que muestre lo que un usuario puede hacer realmente cuando se suman todos sus roles, vale más que cualquier editor de roles.

¿Por qué esta persona puede hacer esto?

Un acceso sin origen es un misterio. Cuando un admin ve que alguien llega a la exportación de facturación, la siguiente pregunta es inmediata: ¿cómo? ¿A través de qué rol, otorgado por quién, cuándo? Si tu interfaz no puede rastrear un permiso hasta su origen, cada revisión de accesos se convierte en una investigación. Muestra la cadena. “Dana puede exportar facturas porque está en Finanzas, agregada por Marco el 3 de marzo.” Esa sola línea convierte una incógnita preocupante en una decisión que alguien toma en segundos.

¿Qué pasa si cambio esto?

Editar un rol es una acción de gran alcance, y los admins suelen hacerlo a ciegas. Activan un permiso en el rol de Manager sin saber que lo tienen cuarenta personas. Antes de guardar un cambio de rol, muestra la cantidad y la consecuencia: “Esto afecta a 40 usuarios. 12 de ellos ganarán acceso a los reportes financieros.” Dale a la gente la vista previa y deja que confirme después. El mismo instinto que hace seguras las acciones irreversibles en cualquier producto se aplica de lleno a los permisos.

Roles que reflejan cómo funciona realmente la organización

Hay una trampa en la que caen muchos equipos: diseñan los roles a partir de la base de datos, no de la organización. Terminas con roles como “read_write_billing”, que calzan perfecto con los alcances del backend y no significan nada para la office manager que los asigna. O el fallo contrario: hay solo tres roles (Admin, Member, Viewer) y la mitad de la empresa es Admin porque Member no alcanza para hacer su trabajo.

Los buenos roles se leen como descripciones de puesto, porque así piensa quien los asigna. Agente de soporte. Responsable de facturación. Auditor de solo lectura. Por debajo siguen correspondiendo a alcances granulares, pero la etiqueta y la agrupación hablan el idioma del organigrama. Cuando nombras y das forma a los roles así, el mínimo privilegio deja de ser una charla de seguridad y se vuelve la opción obvia por defecto. El texto de OWASP sobre el principio de mínimo privilegio explica el beneficio con claridad: permisos más pequeños significan un radio de impacto más pequeño cuando algo sale mal. La interfaz es lo que hace que ese principio sea fácil o imposible de seguir.

Patrones que mantienen los accesos comprensibles

Unas cuantas decisiones concretas separan un sistema de permisos en el que la gente confía de uno que termina esquivando.

Empieza por las personas, no por la matriz. La pantalla por defecto debería ser una lista de usuarios y lo que cada uno puede hacer, no una grilla abstracta de roles y permisos. Deja que los admins profundicen en los roles cuando quieran, pero responde primero la pregunta de todos los días.

Haz los roles combinables y muestra el resultado. Las personas reales tienen más de un rol. En cuanto lo permites, le debes al admin una vista combinada de lo que esos roles suman, incluidos los conflictos. No lo obligues a hacer las cuentas.

Usa el mínimo privilegio por defecto y amplía bajo solicitud. Los usuarios nuevos deberían entrar con el rol más limitado que siga siendo útil. Combínalo con un flujo de solicitud y aprobación, para que pedir más acceso sea cuestión de dos clics y no un motivo para repartir Admin. Cuando el camino seguro es también el fácil, la gente lo toma.

Escribe pensando en la auditoría. Cada permiso otorgado, cambiado o retirado debería generar un registro legible que alguien sin perfil técnico pueda seguir durante una revisión SOC 2 o ISO. Los productos con mucha carga de seguridad viven o mueren por esto, un tema que ya tratamos al hablar de diseñar herramientas de seguridad usables. Un registro de auditoría que nadie puede leer es lo mismo que no tener registro.

Qué medir

Dos señales te dicen si tu UX para RBAC funciona. La primera es la tasa de sobreasignación: cuántos usuarios están en roles más amplios de lo que su trabajo necesita y, sobre todo, cuántos tienen Admin. Si ese número es alto, tus roles son demasiado gruesos o demasiado difíciles de asignar, y la gente elige la opción poderosa para evitar la fricción. La segunda es el tiempo para responder una pregunta de acceso. Hazle a un admin la pregunta de “quién puede borrar datos de producción” y obsérvalo. Si tarda más de unos segundos y un par de clics, la interfaz está escondiendo justo lo que existe para mostrar.

Los permisos son donde se pone a prueba, en silencio, la confianza en un producto B2B, por parte de la única persona del lado del cliente que responde por la seguridad. Si el modelo está bien, casi no lo nota. Si la interfaz está mal, lo siente en cada ciclo de revisión y después empieza a preguntarse si tu producto es seguro para ampliarlo.

Si estás construyendo una plataforma donde el control de acceso se vuelve más difícil de razonar a medida que agregas clientes y roles, y estás evaluando si desenredarlo internamente o sumar a un socio que ya haya entregado este tipo de UX de producto complejo en Cloud, DevOps y Seguridad, habla con delbueno™ Studio. Es más barato diseñar hoy permisos que la gente entienda que explicarle un mal permiso a un auditor más adelante.

¿Diseñando software complejo? Hablemos.

Empezamos hoy. Primeros conceptos en 48 horas.