Google è tuo amico :)
Ad ogni modo, il divario tra ruolo e gruppo deriva dai concetti di sicurezza informatica (in opposizione alla semplice gestione delle risorse). Il Prof. Ravi Sandhu fornisce una copertura seminale della differenza semantica tra ruoli e gruppi.
http://profsandhu.com/workshop/role-group.pdf
Un gruppo è una raccolta di utenti con un determinato insieme di autorizzazioni assegnate al gruppo (e in modo transitorio, agli utenti). Un ruolo è una raccolta di autorizzazioni e un utente eredita effettivamente tali autorizzazioni quando agisce con quel ruolo.
In genere l'appartenenza al gruppo rimane per tutta la durata del tuo accesso. Un ruolo, invece, può essere attivato secondo condizioni specifiche. Se il tuo ruolo attuale è "personale medico" potresti essere in grado di vedere alcune delle cartelle cliniche di un dato paziente. Se, tuttavia, il tuo ruolo è anche "medico", potresti essere in grado di vedere ulteriori informazioni mediche oltre a ciò che può vedere una persona con solo un ruolo di "personale medico".
I ruoli possono essere attivati in base all'ora del giorno e al luogo di accesso. I ruoli possono anche essere migliorati / associati agli attributi. Potresti operare come "medico", ma se non hai un attributo o una relazione di "medico primario" con me (un utente con ruolo di "paziente"), non puoi vedere la mia intera storia medica.
Potresti fare tutto questo con i gruppi, ma ancora una volta, i gruppi tendono a concentrarsi sull'identità, non sul ruolo o sull'attività. E il tipo di aspetti di sicurezza appena descritti tendono ad allinearsi meglio con il secondo che con il primo.
Per molti casi, per l'uso di classificare le cose insieme (e niente più), i gruppi ei ruoli funzionano allo stesso modo. I gruppi, tuttavia, sono basati sull'identità, mentre i ruoli hanno lo scopo di delimitare l'attività. Sfortunatamente, i sistemi operativi tendono a offuscare la distinzione, trattando i ruoli come gruppi.
Si vede una distinzione molto più chiara con i ruoli a livello di applicazione o di sistema - che trasportano semantica specifica dell'applicazione o del sistema (come nei ruoli Oracle ) - in contrapposizione ai "ruoli" implementati a livello di sistema operativo (che in genere sono sinonimi di gruppi).
Possono esserci limitazioni ai ruoli e ai modelli di controllo degli accessi basati sui ruoli (come con qualsiasi cosa ovviamente):
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
Circa dieci anni fa ho assistito ad alcune ricerche sul controllo degli accessi basato sugli attributi e sulla relazione che forniscono una granularità molto migliore rispetto al controllo degli accessi basato sui ruoli. Sfortunatamente, non vedo molta attività in quel regno da anni.
La differenza più importante tra ruoli e gruppi è che i ruoli in genere implementano un meccanismo di controllo dell'accesso obbligatorio (MAC). Non puoi assegnare te stesso (o gli altri) ai ruoli. Un amministratore del ruolo o un ingegnere del ruolo lo fa.
Questo è superficialmente simile ai gruppi UNIX in cui un utente può / potrebbe essere in grado di assegnarsi a un gruppo (tramite sudo ovviamente.) Quando i gruppi vengono assegnati in base a un processo di ingegneria della sicurezza, la distinzione tuttavia si confonde un po '.
Un'altra caratteristica importante è che i veri modelli RBAC possono fornire il concetto di ruoli che si escludono a vicenda. Al contrario, i gruppi basati sull'identità sono additivi: l'identità di un principale è la somma (o congiunzione) dei gruppi.
Un'altra caratteristica di un vero modello di sicurezza basato su RBAC è che gli elementi creati per un particolare ruolo in genere non possono essere accessibili in modo transitorio da qualcuno che non agisce in quel ruolo.
D'altra parte, in un modello di controllo di accesso discrezionale (DAC) (il modello predefinito in Unix), non è possibile ottenere quel tipo di garanzia con i soli gruppi. A proposito, questa non è una limitazione dei gruppi o Unix, ma una limitazione dei modelli DAC basati sull'identità (e transitivamente, con gruppi basati sull'identità).
Spero che sia d'aiuto.
=======================
Aggiungendo un po 'di più dopo aver visto la risposta ben formulata di Simon. I ruoli ti aiutano a gestire le autorizzazioni. I gruppi ti aiutano a gestire oggetti e soggetti. Inoltre, si potrebbe pensare ai ruoli come a "contesti". Un ruolo "X" può descrivere un contesto di sicurezza che regola il modo in cui il soggetto Y accede (o non accede) all'oggetto Z.
Un'altra importante distinzione (o ideale) è che esiste un ingegnere di ruolo, una persona che ingegnerizza i ruoli, i contesti, che sono necessari e / o evidenti in un'applicazione, sistema o OS. Un ingegnere di ruolo in genere è (ma non deve essere) anche un amministratore di ruolo (o amministratore di sistema). Inoltre, il vero ruolo (nessun gioco di parole) di un ingegnere di ruolo è nel regno dell'ingegneria della sicurezza, non dell'amministrazione.
Questo è un nuovo gruppo formalizzato da RBAC (anche se viene utilizzato raramente), uno che tipicamente non è stato presente con sistemi capaci di gruppo.