Separazione della "funzione" da "scope" in RBAC

5

Sto provando a formulare un modello di autorizzazione RBAC che consenta la separazione tra le autorizzazioni e gli ambiti su cui vengono applicate tali autorizzazioni. Non sono stato in grado di trovare un modello standard che descriva questo.

Ecco un esempio:

  1. Un'autorizzazione consiste in un'operazione su una risorsa:
    • (View) (Ops Reports)
    • (Create) (Ops Reports)
    • (Manage) (Releases)
  2. I ruoli sono raccolte di permessi:
    • A (Product Manager) can (Manage Releases) and (View Ops Reports)
    • A (Ops Manager) can (Create Ops Reports) and (View Ops Reports)
  3. Gli utenti possono essere assegnati ai ruoli:

    (Alice) and (Bob) are (Product Manager)s

Finora, questo è RBAC-0 standard. Ora aggiungiamo un altro layer ortogonale:

  • (Alice) is a (Product Manager) for "Cool New Product (CNP)"
  • (Bob) is a (Product Manager) for "Flagship Product (FSP)"
  • (Charlie) is a (Product Manager) for ...
  • ...

Questo sembra un caso d'uso abbastanza comune.

In un'implementazione ingenua, è possibile duplicare ruoli e autorizzazioni per ogni prodotto. Quindi anziché:

  • (Product Manager)
    • (Manage) (Releases)
    • (View) (Ops Reports)

ora abbiamo:

  • (CNP Product Manager)
    • (Manage) (CNP Releases)
    • (View) (CNP Ops Reports)
  • (FSP Product Manager)
    • (Manage) (FSP Releases)
    • (View) (FSP Ops Reports)
  • ...
  • ...

Questo può rapidamente crescere di mano. Come modellare questo scenario per evitare la duplicazione esponenziale?

    
posta metacubed 24.12.2017 - 07:43
fonte

0 risposte

Leggi altre domande sui tag