Video: Azure Friday | Try Azure Cosmos DB for Free 2024
Uno dei metodi più comuni per proteggere i dati in NoSQL consiste nell'assegnare ogni record (o documento o grafico, a seconda del tipo di database) con una serie di autorizzazioni collegate ai ruoli. Questo è il controllo degli accessi basato sui ruoli, o RBAC in breve.
Considera un comunicato stampa per un sito web che viene archiviato in un database NoSQL (aggregato) di documenti. Il ruolo dell'editor può avere autorizzazioni di aggiornamento per il documento, mentre un ruolo più pubblico può avere solo autorizzazioni di lettura.
Questo caso d'uso richiede l'assegnazione delle autorizzazioni ruolo , non delle autorizzazioni utente . Gli utenti possono essere assegnati a uno o più ruoli. Pertanto, gli utenti ereditano le autorizzazioni in base alla somma dei loro ruoli.
Dovendo creare un ruolo per dare a un utente il permesso di eseguire una particolare funzione può sembrare un lavoro extra, ma questo approccio è molto utile. Considera un utente che si trasferisce in un altro dipartimento o che lascia interamente.
Non si vuole dover cercare manualmente ogni documento le cui autorizzazioni menzionano questo utente e cambiarle o rimuoverle. Invece basta cambiare le assegnazioni di ruolo di quell'utente in una singola operazione. L'utilizzo del controllo degli accessi basato sui ruoli (RBAC) è molto più semplice per il mantenimento a lungo termine delle autorizzazioni di sicurezza.
Guarda come i database gestiscono le autorizzazioni e l'ereditarietà dei ruoli. Considera i sottoscrittori di una compagnia di assicurazioni, in cui possono esserci trainee, junior e underwriters senior, ciascuno con un crescente accesso a diversi tipi di informazioni.
Potresti assegnare ai sottoscrittori junior le autorizzazioni assegnate ai tirocinanti, oltre a qualche altro. Quindi è possibile assegnare tutte le autorizzazioni dei sottoscrittori junior ai sottoscrittori senior, più alcune altre ancora. Se si desidera aggiungere ulteriori autorizzazioni a tutti questi ruoli, tuttavia, è necessario apportare tre modifiche identiche.
Se hai cinque livelli di ruoli, sono cinque copie. Inoltre, ogni sistema avrà una moltitudine di ruoli come questi. C'è un modo migliore che eseguire lo stesso compito banale più e più volte: eredità dei ruoli.
Alcuni sistemi includono l'ereditarietà del ruolo. In questo caso, il ruolo JuniorUnderwriter eredita dal ruolo di TraineeUnderwriter e il ruolo SeniorUnderwriter ereditato dal ruolo JuniorUnderwiter. Ora tutto ciò che devi fare per aggiungere un'autorizzazione a tutti i ruoli è aggiungerlo solo al ruolo TraineeUnderwriter (il livello più basso di ereditarietà) e tutti i ruoli erediteranno l'autorizzazione. L'ereditarietà dei ruoli è molto più facile da capire e mantenere.
La logica del permesso di ruolo è generalmente implementata con la logica OR. Cioè, se assegni tre ruoli - RoleA, RoleB e RoleC - a un record con un'autorizzazione di lettura, un utente ha questa autorizzazione se ha RoleA OR RoleB, OR RoleC.Se non si assegnano le autorizzazioni di lettura del ruolo a un record, quindi nessun utente ha le autorizzazioni di lettura su tale record (a parte l'ereditarietà, ovviamente).