Groupe vs rôle (une vraie différence?)


126

Quelqu'un peut-il me dire quelle est la vraie différence entre groupe et rôle? J'essaie de comprendre cela depuis un certain temps maintenant et plus je lis d'informations, plus j'ai l'impression que cela est évoqué juste pour semer la confusion et qu'il n'y a pas de réelle différence. Les deux peuvent faire le travail de l'autre. J'ai toujours utilisé un groupe pour gérer les utilisateurs et leurs droits d'accès.

Récemment, je suis tombé sur un logiciel d'administration, où se trouve un groupe d'utilisateurs. Chaque utilisateur peut avoir attribué un module (l'ensemble du système est divisé en quelques parties appelées modules, c'est-à-dire module d'administration, module d'enquête, module commandes, module client). En plus de cela, chaque module a une liste de fonctionnalités, qui peuvent être autorisées ou refusées pour chaque utilisateur. Disons donc qu'un utilisateur John Smith peut accéder au module Commandes et modifier n'importe quelle commande, mais n'a donné le droit de supprimer aucune d'entre elles.

S'il y avait plus d'utilisateurs avec la même compétence, j'utiliserais un groupe pour gérer cela. Je regrouperais ces utilisateurs dans le même groupe et attribuerais des droits d'accès aux modules et à leurs fonctions au groupe. Tous les utilisateurs du même groupe auraient les mêmes droits d'accès.

Pourquoi l'appeler un groupe et non un rôle? Je ne sais pas, je le ressens comme ça. Il me semble que cela n'a pas vraiment d'importance:] Mais j'aimerais quand même connaître la vraie différence.

Avez-vous des suggestions pour lesquelles cela devrait être plutôt appelé rôle que groupe ou l'inverse?



VOIR LE DUPLICAT mentionné ci-dessus. ses deux premières réponses courtes sont toutes deux meilleures que toutes celles présentées ici. (+ techniquement, les groupes et les rôles fonctionnent de la même manière, c'est la façon dont ils sont utilisés)
FastAl

2
Je ne suis pas d'accord avec @FastAl, j'ai trouvé les réponses à cette question meilleures que celles du double.
Alex Oliveira

Réponses:


148

Google est ton ami :)

Quoi qu'il en soit, le fossé entre le rôle et le groupe provient des concepts de sécurité informatique (par opposition à la simple gestion des ressources). Le professeur Ravi Sandhu fournit une couverture fondamentale de la différence sémantique entre les rôles et les groupes.

http://profsandhu.com/workshop/role-group.pdf

Un groupe est un ensemble d'utilisateurs avec un ensemble donné d'autorisations attribué au groupe (et de manière transitoire, aux utilisateurs). Un rôle est un ensemble d'autorisations, et un utilisateur hérite effectivement de ces autorisations lorsqu'il agit sous ce rôle.

En règle générale, votre adhésion à un groupe reste pendant la durée de votre connexion. Un rôle, par contre, peut être activé selon des conditions spécifiques. Si votre rôle actuel est «personnel médical», vous pourrez peut-être consulter certains des dossiers médicaux d'un patient donné. Si, toutefois, votre rôle est également celui de «médecin», vous pourrez peut-être voir des informations médicales supplémentaires au-delà de ce qu'une personne ayant juste un rôle de «personnel médical» peut voir.

Les rôles peuvent être activés par heure de la journée, lieu d'accès. Les rôles peuvent également être améliorés / associés à des attributs. Vous travaillez peut-être en tant que «médecin», mais si vous n'avez pas d'attribut de «médecin principal» ou de relation avec moi (un utilisateur avec le rôle de «patient»), vous ne pouvez pas voir l'intégralité de mes antécédents médicaux.

Vous pouvez faire tout cela avec des groupes, mais encore une fois, les groupes ont tendance à se concentrer sur l'identité, pas sur le rôle ou l'activité. Et le type d'aspects de sécurité que nous venons de décrire ont tendance à mieux s'aligner sur le plus tardif que sur l'ancien.

Dans de nombreux cas, pour l'utilisation de la classification des choses ensemble (et rien de plus), les groupes et les rôles fonctionnent de la même manière. Les groupes, cependant, sont basés sur l'identité, tandis que les rôles sont censés délimiter l'activité. Malheureusement, les systèmes d'exploitation ont tendance à brouiller la distinction, traitant les rôles comme des groupes.

Vous voyez une distinction beaucoup plus claire entre les rôles au niveau de l'application ou du système - porteurs d'une sémantique spécifique à l'application ou au système (comme dans les rôles Oracle ) - par opposition aux `` rôles '' implémentés au niveau du système d'exploitation (qui sont généralement synonymes de groupes).

Il peut y avoir des limitations aux rôles et aux modèles de contrôle d'accès basés sur les rôles (comme avec tout bien sûr):

http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx

Il y a environ dix ans, j'ai vu des recherches sur le contrôle d'accès basé sur les attributs et les relations qui offrent une bien meilleure granularité que le contrôle d'accès basé sur les rôles. Malheureusement, je n'ai pas vu beaucoup d'activité dans ce domaine depuis des années.

La différence la plus importante entre les rôles et les groupes est que les rôles implémentent généralement un mécanisme de contrôle d'accès obligatoire (MAC). Vous ne pouvez pas vous attribuer (ou attribuer aux autres) des rôles. Un administrateur de rôle ou un ingénieur de rôle fait cela.

Ceci est superficiellement similaire aux groupes UNIX où un utilisateur peut / pourrait être en mesure de s’attribuer à un groupe (via sudo bien sûr).

Une autre caractéristique importante est que les vrais modèles RBAC peuvent fournir le concept de rôles mutuellement exclusifs. En revanche, les groupes basés sur l'identité sont additifs - l'identité d'un mandant est la somme (ou la conjonction) des groupes.

Une autre caractéristique d'un modèle de sécurité basé sur RBAC est que les éléments créés pour un rôle particulier ne peuvent généralement pas être accédés de manière transitoire par une personne qui n'agit pas sous ce rôle.

D'un autre côté, sous un modèle de contrôle d'accès discrétionnaire (DAC) (le modèle par défaut sous Unix), vous ne pouvez pas obtenir ce type de garantie avec les groupes seuls. BTW, ce n'est pas une limitation des groupes ou Unix, mais une limitation des modèles DAC basés sur l'identité (et de manière transitoire, avec des groupes basés sur l'identité.)

J'espère que ça aide.

========================

Ajouter un peu plus après avoir vu la réponse bien faite de Simon. Les rôles vous aident à gérer les autorisations. Les groupes vous aident à gérer les objets et les sujets. De plus, on pourrait considérer les rôles comme des «contextes». Un rôle 'X' peut décrire un contexte de sécurité qui règle comment le sujet Y accède (ou n'accède pas) à l'objet Z.

Une autre distinction (ou idéal) importante est qu'il existe un ingénieur de rôle, une personne qui conçoit les rôles, les contextes, qui sont nécessaires et / ou évidents dans une application, un système ou un système d'exploitation. Un ingénieur de rôle est généralement (mais n'est pas obligé) également un administrateur de rôle (ou administrateur système). De plus, le véritable rôle (sans jeu de mots) d'un ingénieur de rôle est dans le domaine de l'ingénierie de sécurité, pas dans l'administration.

Il s'agit d'un nouveau groupe formalisé par RBAC (même s'il est rarement utilisé), un groupe qui n'a généralement pas été présent avec les systèmes capables de gérer les groupes.


4
En gros, ce que vous dites, c'est que: si vous obtenez la liste des autorisations d'un groupe, vous regardez le rôle et si vous obtenez la liste des utilisateurs d'un rôle, vous regardez un groupe.
Natim

Non. Ce qui se passe, c'est que de nombreux systèmes implémentent les rôles en tant que groupes (ou pire, appellent des groupes "rôles".) Lorsque cela se produit, vous voyez l'équivalence que vous venez de décrire. Voyons si je peux mieux expliquer cela avec une réponse de suivi.
luis.espinal

L'une des principales différences est que l'appartenance à un groupe reste indépendante de votre session (votre session de journalisation). Votre appartenance à un groupe change uniquement lorsque quelqu'un (votre ou quelqu'un avec suffisamment de privilèges) la change.
luis.espinal

Un rôle, pas une notion de groupe vendue comme un "rôle", mais un vrai rôle, ce rôle est associé au principal (alias "le rôle étant actif") lorsque le principal démarre une session (session de connexion ou session spécifique à l'application) sous ce rôle.
luis.espinal

1
De manière analogique, pouvons-nous dire que les groupes sont comme des arbres et que les rôles sont comme des balises?
ton

26

Un groupe est un moyen d'organiser les utilisateurs, alors qu'un rôle est généralement un moyen d'organiser les droits.

Cela peut être utile de plusieurs manières. Par exemple, un ensemble d'autorisations regroupées dans un rôle peut être attribué à un ensemble de groupes ou à un ensemble d'utilisateurs indépendamment de leur groupe.

Par exemple, un CMS peut avoir des autorisations telles que Lire la publication, Créer une publication, Modifier la publication. Un rôle d'éditeur peut être capable de lire et de modifier, mais pas de créer (je ne sais pas pourquoi!). Un message peut être en mesure de créer et de lire, etc. le groupe ne le fait pas.

Ainsi, alors que dans un système simple, les groupes et les rôles sont souvent étroitement alignés, ce n'est pas toujours le cas.


Donc, si je comprends bien, vous ne pouvez pas attribuer des utilisateurs à des rôles, mais vous pouvez affecter des utilisateurs à des groupes. Après cela, vous pouvez attribuer des rôles au groupe d'utilisateurs.
Ondrej

Pas nécessairement Ondrej. Une application, un système ou un système d'exploitation peut implémenter un mécanisme pour assigner un utilisateur à un rôle (cela peut cependant devenir très rapide). La réponse de Simon est juste avec les rôles comme moyen de gérer les autorisations (par opposition aux groupes comme moyen de gérer les sujets et les objets.)
luis.espinal

Merci les gars, c'est beaucoup plus clair pour moi maintenant. Dans le système décrit ci-dessus, je viens de le remarquer, il existe un autre mécanisme pour distinguer les utilisateurs. Chaque utilisateur affecté à n'importe quel module se distingue davantage par sa compétence en tant qu'UTILISATEUR, SUPERVISEUR et ADMINISTRATEUR, ce qui, je suppose, c'est le système ROLE:] Encore une fois, merci à vous deux! ;)
Ondrej

j'aime votre explication, mais pour une raison quelconque, personne ici n'a écrit sur la possibilité pour un utilisateur d'appartenir à plus d'un groupe ... n'est-il pas également possible pour les groupes d'appartenir à d'autres groupes et rôles qui permettent d'attribuer des rôles, et quoi sur les ressources? les ressources ne peuvent-elles pas également appartenir à des groupes? les ressources ne peuvent-elles pas avoir des rôles?
inor

19

Bien qu'il existe une différence sémantique entre les rôles et les groupes (comme décrit ci-dessus par d'autres réponses), techniquement, les rôles et les groupes semblent être les mêmes. Rien ne vous empêche d'attribuer des autorisations directement aux utilisateurs et aux groupes (cela peut être considéré comme un contrôle d'accès de réglage fin). De manière équivalente, lorsque l'utilisateur se voit attribuer un rôle, il peut être considéré comme un membre de rôle, dans le même sens lorsque l'utilisateur devient membre d'un groupe.

Nous pouvons donc nous retrouver sans réelle différence entre les rôles et les groupes. Les deux peuvent être pris en compte pour regrouper les utilisateurs ET / OU les autorisations. Ainsi la différence n'est que sémantique: - si elle est sémantiquement utilisée pour regrouper les Permissions, c'est alors un Rôle; - s'il est utilisé sémantiquement pour regrouper les Utilisateurs, il s'agit alors d'un Groupe. Techniquement, il n'y a aucune différence.


En fait, il existe une différence entre les langages informatiques tels que c # dans les classes attribuées pour accéder aux groupes et celles pour accéder aux rôles. Ils ont des noms de propriété différents et des méthodes différentes, comme prévu d'un rôle (en tant qu'ensemble d'autorisations), par rapport à un groupe (en tant qu'ensemble d'utilisateurs).
pashute

Si vous ajoutez un groupe en tant que membre d'un autre groupe et que les deux ont des autorisations associées, des autorisations supplémentaires fonctionneront correctement. Voilà comment fonctionne NTFS. Cependant, lorsque nous parlons de systèmes, je pense que les utilisateurs pensent en termes de "laissez-moi ouvrir une session en tant que financier", "laissez-moi me connecter en tant qu'invité", et dans ce cas, je pense que les rôles hiérarchiques seraient déroutants. Je n'autoriserais rien d'autre que les groupes de niveau supérieur à avoir des autorisations associées.
drizin le

18

Un «groupe» est un ensemble d'utilisateurs. Un «rôle» est une collection d'autorisations. Cela signifie que lorsque le groupe alpha inclut le groupe beta , alpha reçoit tous les utilisateurs de beta et beta reçoit toutes les permissions d'alpha. À l'inverse, on pourrait dire que le rôle bêta inclut le rôle alpha et que les mêmes conclusions s'appliqueraient.

Un exemple concret rend les choses plus claires. Pensez au "support client" et au "support client senior". Si vous considérez ces collections comme des groupes, il est clair que les utilisateurs du support client "incluent" les utilisateurs seniors du support client. Cependant, si vous les considérez comme des rôles, il est clair que les autorisations de support client senior "incluent" les autorisations de support client.

En théorie, vous pourriez simplement avoir un type de collection. Cependant, il serait ambigu si vous disiez que «la collection alpha inclut la collection beta» . Dans ce cas, vous ne pouvez pas dire si les utilisateurs en alpha sont en version bêta (comme un rôle) ou si les utilisateurs en version bêta sont en alpha (comme un groupe). Afin de rendre la terminologie comme "inclut" et les éléments visuels comme les arborescences sans ambiguïté, la plupart des systèmes rbac exigent que vous spécifiiez si la collection en question est un "groupe" ou un "rôle" au moins pour des raisons de discussion.

Certaines analogies pourraient aider. Encadré en termes de théorie des ensembles , lorsque le groupe alpha est un sous-ensemble du groupe beta, alors les permissions alpha sont un sur-ensemble des permissions beta. Par rapport à la généalogie , si les groupes sont comme un arbre de descendants, alors les rôles sont comme un arbre d'ancêtres.


Votre explication explique exactement pourquoi nous ne pouvons pas simplement traiter les groupes comme des rôles (comme le suggère la réponse de Mileta). Exemple parfait.
drizin le

2
En fait, nous pouvons traiter les groupes comme des rôles (comme le dit Mileta Cekovic ). Par exemple, nous pouvons simplement attribuer un rôle unique à chaque groupe (relation 1: 1). Mais nous ne pouvons pas interpréter les relations entre groupes comme des relations entre rôles correspondants. Par exemple, si le groupe «support client» inclut le groupe «support client senior», cela ne signifie pas que le rôle «support client» inclut le rôle «support client senior».
ruvim

3

NOTE - les divagations suivantes n'ont de sens que si l'on essaie d'imposer la sécurité au sein d'une organisation - c'est-à-dire d'essayer de limiter l'accès à l'information ...

Les groupes sont empiriques - ils répondent à la question «quoi». Ils sont le «est» dans le sens où ils reflètent la réalité existante de l'accès. Les informaticiens adorent les groupes - ils sont très littéraux et faciles à définir. Finalement, tout contrôle d'accès revient finalement (comme nous l'avons tous appris au collège ...) à répondre à la question "À quel groupe appartenez-vous?"

Les rôles, cependant, sont plus normatifs - ils guident ce qui «devrait être». Les bons managers et les RH aiment les «rôles» - ils ne répondent pas - ils posent la question «Pourquoi?». Malheureusement, les rôles peuvent aussi être vagues et ce «flou» peut rendre les gens (informatiques) fous.

Pour utiliser l'exemple médical ci - dessus, si le rôle du « médecin de soins primaires » a plus de droits (accès à des groupes plus) que le rôle d'un « technicien à rayons X », c'est parce que les gens ( les gestionnaires et les ressources humaines) ont décidé pourquoi que nécessaire pour arriver. En ce sens, ils sont «la sagesse collective» d'une organisation.

Disons qu'un médecin a accès (adhésion à un groupe avec accès) aux dossiers financiers des patients. Ceci est normalement en dehors du «rôle» d'un médecin et devrait être débattu. Ainsi, personne (aussi qualifié soit-il) ne devrait avoir un accès complet à tous les groupes - cela invite à des abus de pouvoir. C'est pourquoi «l'ingénierie des rôles» est si importante - sans elle, vous avez juste un accès de groupe distribué comme tellement de bonbons. Les gens auront accès à des groupes (et parfois à une horde) sans discuter des dangers d'une trop grande puissance.

Pour conclure, la sagesse de rôles bien définis aide à atténuer les dangers d'un accès incontrôlé aux groupes. N'importe qui dans une organisation peut plaider pour l'accès à un groupe particulier. Mais une fois que cet accès est fourni, il est rarement abandonné. L'ingénierie des rôles (ainsi que les meilleures pratiques telles que des descriptions de groupe bien définies et des gestionnaires d'accès de groupe habilités) peuvent limiter les conflits d'intérêts au sein d'une organisation, décentraliser la prise de décision et contribuer à rendre la gestion de la sécurité plus rationnelle.


3

Les réponses précédentes sont toutes merveilleuses. Comme cela a été dit, le concept de Groupe vs Rôle est plus conceptuel que technique. Nous avons pris la position que les groupes sont utilisés pour contenir des utilisateurs (un utilisateur peut être dans plus d'un groupe: c'est-à-dire que Joe est dans le groupe Managers ainsi que le groupe informatique [il est un gestionnaire en informatique]) et pour attribuer de larges privilèges (c'est-à-dire que notre système de carte mag permet à tous les utilisateurs du groupe informatique d'accéder à la salle des serveurs). Les rôles étaient désormais utilisés pour ajouter des privilèges à des utilisateurs spécifiques (c'est-à-dire que les personnes du groupe informatique peuvent RDP sur les serveurs mais ne peuvent pas attribuer d'utilisateurs ou modifier les autorisations, les personnes du groupe informatique ayant le rôle d'administrateur peuvent attribuer des utilisateurs et modifier les autorisations). Les rôles peuvent également être constitués d'autres rôles (Joe a le rôle d'administrateur pour ajouter des utilisateurs / privilèges et a également le rôle de DBA pour apporter des modifications de base de données au SGBD sur le serveur). Les rôles peuvent également être très spécifiques en ce sens que nous pouvons créer des rôles d'utilisateur individuels (c'est-à-dire JoesRole) qui peuvent être très spécifiques pour un utilisateur. Donc, pour récapituler, nous utilisons des groupes pour gérer les utilisateurs et attribuer des rôles généraux et des rôles pour gérer les privilèges. Ceci est également cumulatif. Le groupe dans lequel l'utilisateur se trouve peut avoir des rôles attribués (ou une liste de rôles disponibles) qui donneront des privilèges très généraux (c'est-à-dire que les utilisateurs du groupe informatique ont le rôle ServerRDP qui leur permet de se connecter aux serveurs) de manière à être attribué à l'utilisateur. Ensuite, tous les rôles auxquels l'utilisateur appartient seront ajoutés dans l'ordre dans lequel ils sont définis, le dernier rôle ayant le dernier mot (les rôles peuvent autoriser, refuser ou ne pas appliquer de privilèges, de sorte que chaque rôle étant appliqué, il remplacera les paramètres précédents pour un privilège. ou ne pas le changer). Une fois que tous les rôles au niveau du groupe et les rôles au niveau de l'utilisateur ont été appliqués,


+1 pour fournir un exemple très réel, car le chevauchement de ces concepts signifie qu'il n'y a pas de réelle différence sauf dans des implémentations spécifiques. Cependant, les avantages que vous avez obtenus en ajoutant des rôles ne sont pas très clairs: votre exemple d'utilisateurs informatiques avec le rôle d'administrateur pourrait tout aussi facilement être réalisé en plaçant les utilisateurs dans les groupes d' utilisateurs informatiques et d'administrateurs . Il n'y a pas de réelle distinction entre la "permission" implicite "autorisée à RDP pour" et le "rôle": "peut affecter des utilisateurs". Vous dites également que les rôles peuvent être constitués d'autres rôles, mais votre exemple est Joe qui a 2 rôles, pas un rôle qui en combine d'autres
Rhubarb

1

Les utilisateurs se voient attribuer des rôles en fonction de la responsabilité qu'ils jouent dans n'importe quel système. Par exemple, les utilisateurs du rôle Sales Manager peuvent effectuer certaines actions telles que fournir une remise supplémentaire pour un produit.

Les groupes sont utilisés pour «grouper» des utilisateurs ou des rôles dans un système pour une gestion aisée de la sécurité. Par exemple, un groupe nommé «Groupe de direction» peut avoir ses membres avec des rôles de gestionnaires, directeurs et architectes et des utilisateurs individuels qui sont également hors de ces rôles. Vous devriez maintenant pouvoir attribuer certains privilèges à ce groupe.


1

L'objectif des groupes et des rôles varie dans les applications, mais ce que j'ai compris est principalement comme suit, les groupes (ensemble d'utilisateurs) sont statiques tandis que les rôles (ensemble d'autorisations) sont dynamiques avec des politiques, par exemple en fonction du temps de (9 à 6) a un groupe ou un utilisateur peut avoir ce rôle mais pas celui-là.


0

Vous pouvez attribuer un rôle au groupe. Vous pouvez attribuer un utilisateur à un groupe et attribuer un rôle à un utilisateur individuel dans n'importe quel utilisateur de rôle. Sens. Jean Doe peut être dans Group of SalesDeptartment avec le rôle off ReportWritter qui permet d'imprimer nos rapports depuis SharePoint, mais dans le groupe SalesDepartment, d'autres peuvent ne pas avoir le rôle de ReportWritter. - En d'autres termes, les rôles sont des privilèges spéciaux auxquels sont attribués des groupes. J'espère que cela fera des scènes.

À votre santé!!!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.