Ankündigung

Einklappen
Keine Ankündigung bisher.

Rechtesystem: Rollen vs Gruppen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rechtesystem: Rollen vs Gruppen

    Hi Leute,

    ich habe ein Verständnisproblem, um den Unterschied zwischen Rolle und Gruppe im Kontext eines Berechtigungssystem festzumachen.

    Für mich sind beide Begriffe synonym und der einzige Unterschied besteht in der abstrakten Betrachtungsweise, sozusagen der Definition des Benutzers bzw. dessen Funktionen. Aus Rollen sind keine Gruppen konnte ich z.B. entnehmen:
    Ein großer Unterschied zu Gruppen ist jedoch, dass jetzt nur noch der Rolle Rechte zugewiesen werden, und dem Benutzer nur noch Rollen.
    Jetzt frage ich mich, ob das der einzige Unterschied ist. Man kann doch auch einem Benutzer neben der Rolle zusätzliche Rechte zuweisen? Heißt es dann "Gruppe" - im Sinne von „Raider heißt jetzt Twix, … sonst ändert sich nix“, oder wie ist das zu verstehen?

    Ich suche also nach einem prägnanten Unterscheidunsmerkmal, auch im Sinne einer Implementierung eines Rechtesystems - könnt ihr mir dabei weiterhelfen?


  • #2
    Man kann doch auch einem Benutzer neben der Rolle zusätzliche Rechte zuweisen?
    Nein eben nicht. Dies gilt es zu vermeiden. Ein „Gast“ der plötzlich Artikel editieren darf ist halt kein Gast mehr.

    Frage in die Runde: Hat jemand das schon mal nach der angegebenen Quelle implemenmtiert?
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      Nein eben nicht. Dies gilt es zu vermeiden. Ein „Gast“ der plötzlich Artikel editieren darf ist halt kein Gast mehr.
      Egal ob Rolle oder Gruppe, ein Gast darf es bei beiden Definitionen sicherlich nicht. Ansonsten sind die Berechtigungen falsch zugewiesen.

      Kommentar


      • #4
        Naja, klar. Aber ihm wäre halt die Rolle „Gast“ zugewiesen, obwohl die Rechteeinschränkung gar nicht wirkt. Daher darf es halt den Bypass zur direkten Rechtezuweisung nicht geben.

        https://de.wikipedia.org/wiki/Benutzerrolle
        Rollen sind eine konzeptionelle Weiterentwicklung von Benutzergruppen. Ein Benutzer kann mehrere Rollen haben und seine Rechte ergeben sich dann durch die Vereinigung der Rechte aller Rollen. Moderne Softwaresysteme stellen dem Benutzer eine an seine Benutzerrollen angepasste grafische Benutzeroberfläche bereit.
        Besitzt der Benutzer also eine zweite zugewiesene Rolle, bspw. Autor, so darf er halt editieren. Aber eben nicht als Gast, sondern in seiner Rolle als Autor.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Ich halte mich an RBAC. Als Quasi-Standard. Und hierbei sind die Begriffe Rolle und Gruppe Synonyme. RBAC sagt letzlich aus, dass die fachliche Frage, also was die jeweilige Rolle bedeuten soll, NICHT in die Verantwortung des Rechtesystems fällt. Ob man nun wörtlich Gruppen bildet (Abteilungen, Arbeitsteams) oder ob man es wörtlich als Rolle begreift (Softwareentwickler, Systemadministrator) soll dem Rechtesystem egal sein.

          Rein sprachlich und logisch gibt es zwischen Gruppen und Rollen durchaus unterschiede. Das merkt man, wenn man Hierarchien reinbringt, also Rollen von Rollen erben lässt.

          Was bedeutet es, wenn die Rolle "Abteilung XYZ" als Mitglied die Rolle "Softwareentwickler" hat. Bedeutet das, dass jeder in der Abteilung XYZ ein Softwareentwickler ist oder bedeutet das, dass ein mitglied der Softwareentwickler automatisch die Rechte der Abteilung XYZ erbt? Welche Rolle erbt also welche Rechte?

          Die Frage, ob man auf Benutzerebene zusätzliche Rechte erlaubt ist eine Frage der Praxis. Manche Rechtesysteme erlauben das, vor allem Betriebssysteme. Da gibt es Rollenbasierte Rechte und Benutzerbasierte Rechte. Da sich RBAC an den vor grauer Vorzeit existierenden Vorbildern (also vor allem Dateisystemen und Co.) orientiert, erlaubt RBAC sowas. Ob man es umsetzt...
          Es gibt rein parktisch immer Gründe für Rechte auf Benutzerebene. Zumindest teilweise.

          rechte auf Rollnebene sind deswegen schön, weil die Benutzer austauschbar sind. Ordne einen neuen benutzer zu und automatisch hat er alle rechte ohne sie ihm einzeln zuzuweisen. Aber es gibt Rechte, die dürfen niemals als Rollenrechte festgelegt sein. Stell dir vor, die Rechte beziehen sich auf eine Person, also beispielsweise das persönliche Benutzerverzeichnis eines Benutzers. Dieses Recht verändert sich nicht nur weil man in eine neue Gruppe wechselt.
          [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
          Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

          Kommentar


          • #6
            Mit anderen Worten: „Raider (Rolle) heißt jetzt Twix (Gruppe), … sonst ändert sich nix“. Sehe ich nämlich genauso, aber sollte das wirkich schon alles gewesen sein?

            [EDIT]
            Die Antwort galt nikosch, da war mepeisens Post, den ich gleich lese, noch nicht da.

            Kommentar


            • #7
              https://de.wikipedia.org/wiki/Role_Based_Access_Control
              Eine Gruppe ist also nicht zwingend einer Rolle gleichzusetzen. Der Grund dafür ist, dass sich die Unterteilung der Benutzer danach richtet, in welcher Rolle, also in Ausübung welcher Aufgaben, sie auf den Computer zugreifen. Das englische Wort „Role“ wird im IT-bezogenen deutschen Sprachgebrauch unter anderem für Webmaster, Postmaster, Newsmaster, Netzwerkadministratoren, Systemadministratoren und ähnliches verwendet und soll verdeutlichen, dass es sich nicht zwangsläufig um verschiedene Personen handelt, sondern dass zum Beispiel ein- und dieselbe Person mal in der Rolle des Webmasters Webseiten aktualisiert, dann in der Rolle des Postmasters Beschwerden über sein offenes Mail-Relay liest und als nächstes in der Rolle des Systemadministrators Software installiert. Für die Ausübung sind dabei je nach Rolle möglicherweise unterschiedliche Zugriffberechtigungen notwendig, die auch eine Zuordnung eines Benutzers zu mehr als einer Gruppe erforderlich machen.
              Darin liegt ein weiteres Wesensmerkmal.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Ich halte mich an RBAC. Als Quasi-Standard. Und hierbei sind die Begriffe Rolle und Gruppe Synonyme.
                Das lese ich aus dem Wikipedia-Artikel anders heraus.
                Wegen der dreistufigen Gliederung in Benutzer, Rollen und Gruppen ist es möglich, Zugriffsrechte eines Benutzers über eine Rollenzuordung und daran gebundene Gruppenzuordnungen zu kontrollieren.
                Aber es gibt Rechte, die dürfen niemals als Rollenrechte festgelegt sein. Stell dir vor, die Rechte beziehen sich auf eine Person, also beispielsweise das persönliche Benutzerverzeichnis eines Benutzers. Dieses Recht verändert sich nicht nur weil man in eine neue Gruppe wechselt.
                Versteh ich nicht.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Person - Group - Roles

                  * A person is a member of one or more groups.
                  * A group is assigned multiple roles.

                  Example:

                  * Two roles exist in a system stock_purchaser, timecard_supervisor.
                  * Two groups exist in a system shift_supervisor, regional_manager.
                  * regional_manager has the stock_purchaser and timecard_supervisor role.
                  * shift_supervisor has the timecard_supervisor role.

                  In the event a new role (e.g. review_leave_requests) is created - this can be added to all those groups who require this role. In a system only having roles it may be a laborious task adding the role to all people that require it.
                  Quelle:
                  http://stackoverflow.com/questions/3...oups-and-roles

                  Kommentar


                  • #10
                    Es gibt einen weiteren Fallstrick. Beim Versuch, weitere logische Ebenen reinzubringen. Hier kann es Gedankenknoten bei Hierarchien geben. Beispielsweise wenn du Gruppen im Sinne von gruppierten Freundeslisten begreifst, also "Familie", "Saufkumpels", "Klassenkameraden". Auch hier wieder die Frage: Was bedeutet es, wenn du darüber eine Obergruppe hast "Freunde von XYZ".
                    Was bedeutet es nun, eine Mail an die Gruppe "Freunde von XYZ" zu senden? Wäre logisch die Mail an alle Mitglieder der einzelnen Untergruppen zu senden. Was aber, wenn du eine Gruppe "Administrator" hast, dort die einzelnen Administrator-User hast. Sendest du eine Mail an diese virtuelle Administrator-Gruppe, dann soll sie an die Gruppe selbst gehen und der, der Zeit hat, bearbeitet sie.

                    Also: Rolle als Begriff zu verwenden ist deutlich klarer aus Sicht des Rechtesystems. dann vermeidet man gedankliche Knoten. Eine klare regel, wie hierarchien zu interpretieren sind, vermeidet Irritationen, wenn man in anderem fachlichen Kontext von einer Gruppe redet.
                    [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
                    Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

                    Kommentar


                    • #11
                      Das lese ich aus dem Wikipedia-Artikel anders heraus.
                      RBAC erlaubt auch zweistufige Systeme, wo dann Gruppe und Rolle als Synonyme zu verstehen sind. Wenn der Wikipedia-Artikel nur auf drei Stufen erklärt, ist er etwas unscharf. Ich habe mich Berufswegen 6 jahre mit Berechtigungssystemen auseinandergesetzt (und drüber gekotzt, aber anderes Thema *g)

                      Versteh ich nicht.
                      Der Benutzer ist in der Regel eine Eins-zu-Eins-Beziehung zu einer Person, einem Menschen. Oder sollte als solches verstanden werden. Gerade bei persönlichem Besitz der Person (eigene Dokumente usw.) handelt es sich um persönliche Berechtigungen, die keiner Gruppe/Rolle zugeordnet sind. Sie gehören an den Benutzer.
                      Natürlich kann man sich behelfen, indem man eine Rolle "Rechte der Person XYZ" anfertigt. Grob fragwürdig und blickt irgendwann keiner mehr.
                      Weiteres Beispiel wären Kundenberater. Der Groß der Kundenberater kümmert sich um den Pool an Kunden. Nun gibt es aber VIP-Kunden. Diese sollen immer von der gleichen Person betreut werden und auch nur die Person hat gesonderte Zugriffsrechte für die Daten dieses VIP-Kunden. Auch dies ist ein personenbezogenes Recht.
                      [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
                      Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

                      Kommentar


                      • #12
                        Alternativ zu meinem obigen Post eine längere, ausführlichere Antwort mit wissenschaftlichen Hintergrundwissen woher diese zwei Begrifflichkeiten kommen:
                        http://stackoverflow.com/questions/7...eal-difference

                        Kurz & knapp:
                        A group is a collection of users with a given set of permissions assigned to the group (and transitively, to the users). A role is a collection of permissions, and a user effectively inherits those permissions when he acts under that role.

                        {...}

                        groups tend to focus on identity, not role or activity

                        {...}

                        For many cases, for the usage of classifying things together (and nothing more), groups and roles function just the same. Groups, however, are based on identity, whereas roles are meant to demarcate activity.

                        {...}

                        Kommentar


                        • #13
                          @mepeisen

                          Du bist der Experte aber wäre dieser spezielle Fall nicht eher eine AUfgabe, die nicht das Berechtigunssystem abbildet, sondern die Implementierung der Berechtigung. Also AC nennt nur User -darf- editieren_eigene_Daten. Die Daten erhalten einen Userbezug (z.B. die Eigenschaft „Besitzer“) und der dynamische Aspekt „gehört dieses Datum zum anfordernden User“ löst erst der Zugriff auf. Ich denke so würde ich es implementieren. Für administive Rollen gäbe es analog eine Berechtigung wie -darf- editierem_alle_Daten oder -darf- editieren_Daten_von(Rolle XY).
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            Tja, es gibt genug Beispiele, wo diese Begrifflichkeiten ziemlich verschwimmen. Also Beispiele, wo man die Wahl "Darf_Editieren_Eigenes_Zeugs" wählt und wiederum Beispiele, wo man die Wahl "Darf_XYZ_editieren" trifft. Dann gibt es noch eine Komplexitätsebene: Stellen Recht nur Ja/Nein Rechte dar oder sind sie komplexer? Sind Rechte abstrakt oder sind sie objektbezogen?
                            [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
                            Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

                            Kommentar


                            • #15
                              Der Thread ist zwar schon älter, aber ich lese gerade auch was zum Thema. Ein Recht ist mMn atomar und keine Ja/Nein-Entscheidung sondern ein Recht existiert, oder eben nicht. Nach meinem Verständnis handelt es sich nicht um die Rechte auf Objekte, sondern es sind ja die Operationen (CRUD), die mit entsprechendem Recht auf ein Objekt, Objektmenge oder auf Bestandteile eines Objektes (Attribute) angewendet werden (ein Attribut ist hier auch als Objekt zu betrachten, auf das Operationen angewendet werden).

                              Weitere Links:
                              http://www.deron.de/identity-management/rbac/
                              http://www.deron.de/identity-managem...ole-wann-rule/
                              http://dbis.ipd.uni-karlsruhe.de/dow...sarbeitung.pdf
                              http://lernenzweinull.de/wp-content/...tung-ILIAS.pdf

                              Kommentar

                              Lädt...
                              X