Separando “función” de “alcance” en RBAC

5

Estoy tratando de formular un modelo de permisos RBAC que permita la separación entre los permisos y los ámbitos en los que se aplican esos permisos. No he podido encontrar un modelo estándar que describa esto.

Aquí hay un ejemplo:

  1. Un permiso consiste en una operación en un recurso:
      
    • (Ver) (Informes de operaciones)
    •   
    • (Crear) (Informes de operaciones)
    •   
    • (Administrar) (Publicaciones)
    •   
  2. Los roles son colecciones de permisos:
      
    • Un (Gerente de producto) puede (Administrar lanzamientos) y (Ver informes de operaciones)
    •   
    • Un (Administrador de operaciones) puede (Crear informes de operaciones) y (Ver informes de operaciones)
    •   
  3. A los usuarios se les pueden asignar roles:
      

    (Alice) y (Bob) son (Product Manager) s

Hasta ahora, este es el estándar RBAC-0. Ahora agreguemos otra capa ortogonal:

  
  • (Alice) es un (Gerente de producto) para "Cool New Product (CNP)"
  •   
  • (Bob) es un (Gerente de producto) para "Producto estrella (FSP)"
  •   
  • (Charlie) es un (Gerente de producto) para ...
  •   
  • ...
  •   

Esto parece ser un caso de uso bastante común.

En una implementación ingenua, podríamos duplicar roles y permisos para cada producto. Así que en lugar de:

  
  • (Gerente de producto)      
    • (Administrar) (Publicaciones)
    •   
    • (Ver) (Informes de operaciones)
    •   
  •   

ahora tenemos:

  
  • ( CNP Product Manager)      
    • (Administrar) ( CNP Lanzamientos)
    •   
    • (Ver) ( CNP Informes de operaciones)
    •   
  •   
  • ( FSP Product Manager)      
    • (Administrar) ( FSP Lanzamientos)
    •   
    • (Ver) ( FSP Informes de operaciones)
    •   
  •   
  • ...
  •   
  • ...
  •   

Esto puede crecer rápidamente de las manos. ¿Cómo modelo este escenario para evitar la duplicación exponencial?

    
pregunta metacubed 24.12.2017 - 07:43
fuente

0 respuestas

Lea otras preguntas en las etiquetas