Google to twój przyjaciel :)
W każdym razie podział na rolę i grupę wynika z koncepcji bezpieczeństwa komputerowego (w przeciwieństwie do prostego zarządzania zasobami). Prof. Ravi Sandhu przedstawia przełomowe omówienie semantycznej różnicy między rolami a grupami.
http://profsandhu.com/workshop/role-group.pdf
Grupa to zbiór użytkowników z określonym zestawem uprawnień przypisanych do grupy (i przejściowo do użytkowników). Rola to zbiór uprawnień, a użytkownik skutecznie dziedziczy te uprawnienia, gdy działa w ramach tej roli.
Zazwyczaj członkostwo w grupie pozostaje w trakcie logowania. Z drugiej strony rolę można aktywować zgodnie z określonymi warunkami. Jeśli Twoja obecna rola to „personel medyczny”, możesz mieć możliwość wglądu do niektórych dokumentów medycznych danego pacjenta. Jeśli jednak Twoja rola jest również „lekarzem”, możesz zobaczyć dodatkowe informacje medyczne poza tym, co widzi osoba pełniąca tylko rolę „personelu medycznego”.
Role można aktywować według pory dnia, lokalizacji dostępu. Role można również ulepszyć / powiązać z atrybutami. Możesz działać jako „lekarz”, ale jeśli nie masz atrybutu „lekarza pierwszego kontaktu” lub relacji ze mną (użytkownik pełniący rolę „pacjenta”), nie możesz zobaczyć całej mojej historii medycznej.
Możesz to wszystko zrobić z grupami, ale znowu grupy mają tendencję do skupiania się na tożsamości, a nie na roli czy działaniu. A właśnie opisane aspekty bezpieczeństwa mają tendencję do lepszego dostosowywania się do późniejszych niż do poprzednich.
W wielu przypadkach, przy klasyfikowaniu rzeczy razem (i nic więcej), grupy i role funkcjonują tak samo. Jednak grupy opierają się na tożsamości, podczas gdy role mają na celu rozgraniczenie aktywności. Niestety systemy operacyjne mają tendencję do zacierania tej różnicy, traktując role jako grupy.
Widzisz znacznie wyraźniejsze rozróżnienie między rolami na poziomie aplikacji lub systemu - przenoszącymi semantykę specyficzną dla aplikacji lub systemu (jak w przypadku ról Oracle ) - w przeciwieństwie do `` ról '' realizowanych na poziomie systemu operacyjnego (które są zwykle synonimami grup).
Mogą istnieć ograniczenia dotyczące ról i modeli kontroli dostępu opartych na rolach (jak wszystko oczywiście):
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
Około dekady temu widziałem badania dotyczące kontroli dostępu opartej na atrybutach i relacjach, które zapewniają znacznie lepszą szczegółowość niż kontrola dostępu oparta na rolach. Niestety od lat nie widziałem dużej aktywności w tym królestwie.
Najważniejsza różnica między rolami a grupami polega na tym, że role zazwyczaj implementują mechanizm obowiązkowej kontroli dostępu (MAC). Nie możesz przypisywać sobie (ani innym) ról. Robi to administrator roli lub inżynier roli.
Jest to powierzchownie podobne do grup UNIX, w których użytkownik może / mógłby być w stanie przypisać się do grupy (oczywiście przez sudo). Kiedy grupy są przypisywane zgodnie z procesem inżynierii bezpieczeństwa, różnica ta jednak nieco się zaciera.
Inną ważną cechą jest to, że prawdziwe modele RBAC mogą zapewnić koncepcję wzajemnie wykluczających się ról. Natomiast grupy oparte na tożsamości są addytywne - tożsamość pryncypała jest sumą (lub koniunkcją) grup.
Inną cechą charakterystyczną modelu zabezpieczeń opartego na prawdziwym RBAC jest to, że do elementów utworzonych dla określonej roli zazwyczaj nie ma dostępu przechodniego osoba, która nie działa w tej roli.
Z drugiej strony w modelu dyskrecjonalnej kontroli dostępu (DAC) (model domyślny w systemie Unix) nie można uzyskać tego typu gwarancji w przypadku samych grup. BTW, to nie jest ograniczenie grup lub Unix, ale ograniczenie modeli DAC opartych na tożsamości (i przejściowo, z grupami opartymi na tożsamości).
Mam nadzieję, że to pomoże.
=======================
Dodanie więcej po obejrzeniu dobrze ułożonej odpowiedzi Simona. Role pomagają w zarządzaniu uprawnieniami. Grupy pomagają zarządzać obiektami i tematami. Co więcej, można by pomyśleć o rolach jako o „kontekstach”. Rola „X” może opisywać kontekst bezpieczeństwa, który reguluje sposób, w jaki podmiot Y uzyskuje dostęp (lub nie ma dostępu) do obiektu Z.
Innym ważnym rozróżnieniem (lub ideałem) jest to, że istnieje inżynier roli, osoba, która projektuje role, konteksty, które są niezbędne i / lub widoczne w aplikacji, systemie lub systemie operacyjnym. Inżynier roli zazwyczaj jest (ale nie musi) także administratorem roli (lub sysadminem). Co więcej, prawdziwa rola inżyniera roli (gra słów nie jest zamierzona) dotyczy inżynierii bezpieczeństwa, a nie administracji.
Jest to nowa grupa sformalizowana przez RBAC (nawet jeśli rzadko jest używana), która zwykle nie była obecna w systemach obsługujących grupy.