Gelöst Rechtekonzept: Trennung von "Simulate Persons" und "Administer Persons"
-
So getrost beiseite lassen können wir den Fall nicht. Das ist ein schwerwiegender Fall, der bei dem Feature Request beachtet werden müsste und daher sehe ich es als sehr kompliziert an, dieses Feature sicher umzusetzen.
Das Recht, dass man eine Person simulieren darf ist gedacht um Berechtigungen zu testen. Es macht daher nur sinn in Kombination, dass man Fehlkonfigurationen auch beheben kann.
Ich möchte es mal so fassen, wenn ihr den Leuten nicht vertraut, dass Sie keinen Schindluder treiben mit den Berechtigungen bzw. mit der Funktion des Simulierens, dann wird es eh schwierig hier Struktur reinzubringen.
Aber mal angenommen der Feature Request wird angenommen, dann müssen wir, egal ob Edge Case oder nicht, immer erst überprüfen, ob du die Person simulieren darfst anhand ihrere Rechte. Sobald die zu simulierende Person mehr Rechte hat als du, dann darfst du sie nicht simulieren. Und ich spreche hier nicht nur von globalen Rechten, sondern wir müssen dann auch alle Gruppeninternerechte überprüfen und das macht es ungleich schwerer.
-
@hbuerger Einen Teil dieser Prüfung gibt es aber schon, oder?
Siehe hier:
-
@hbuerger Mir ist die Elevation-Prüfung/-Begrenzung nicht so wichtig, hab sie eher aus den Kommentaren der Feature-Diskussion entnommen.
D.h. ich könnte damit leben, wenn das Recht "darf Benutzer simulieren" genau dies darstellt: Wenn das Recht vergeben ist, dann darf der damit Berechtigte eben andere Benutzer simulieren.
Dies ist immer noch besser als auch die Rechtedelegation zu erlauben (über Administer Persons), bei der sich dann der Empfänger des Rechts ja auch selbst an zusätzlichen Rechten bedienen kann.@Andy Gut beobachtet Ggf. lässt sich dies Feature ja auch verallgemeinern.
-
@root Man kann sich dann aber sehr einfach das Recht "administer persons" erschleichen. Man kann dann einfach jemanden simulieren der Rechte vergeben darf und sich selber das Recht geben.
-
@davidschilling Das wäre ja ein höherwertiges Recht und das wird ja derzeit schon abgefangen (s. o.).
-
@Andy Mir kam die von Dir zitierte Meldung schonmal unter bei der Simulation eines super-admins durch einen vielfach Berechtigten der aber kein super-admin-flag trägt.
Über welchen Weg hast Du die Meldung provoziert? -
@root Ich nutze für meine tägliche Arbeit nicht meinen Super-Admin-Account, da ich sonst nicht vernünftig im Event-Modul filtern kann. Also habe ich mit meinem normalen Account meinen Super-Admin-Account testweise simulieren wollen und da kam dann die Meldung. So soll es sein.
-
@Andy Das gilt aber nur für den Super-admin - den kann man mit "normalen" Adminrechten nicht simulieren.
Da mir die Diskussion hier keine Ruhe gelassen hat hab ich das mal ausprobiert.
Ich habe in unserer Installation auch 2 Accounts. Einer davon hat admin-Rechte (kein Super-Admin) der Andere ist ein "normaler" Account.
Mit meinem Admin-Account kann ich unseren Super-admin nicht simulieren.
Ich habe dann meinem "normalen" Account das Recht administer-persons zugewiesen.
Danach konnte ich problemlos mit diesem "normalen" Account meinen Admin-Account simulieren und auf diesem Weg die Berechtigungen meines "normalen" Accounts auch verändern.Meine Befürchtungen haben sich damit bestätigt dass man sich so Rechte "erschleichen" könnte. Für mich kommt es daher nicht in Frage dieses Feature zu nutzen falls es umgesetzt werden sollte.
-
@Andy sagte in Rechtekonzept: Trennung von "Simulate Persons" und "Administer Persons":
@davidschilling Das wäre ja ein höherwertiges Recht und das wird ja derzeit schon abgefangen (s. o.).
Das stimmt so nicht. Die einzige Abfrage / Check der in CT existiert ist, dass man keine Super Admins simulieren kann. Diese Überprüfung ist aber relativ einfach, weil die Super Admins in der Konfiguration mit ihrer ID drin stehen. Sprich, hier müssen wir nicht erst die Rechte beider Personen berechen und dann aufwendig vergleichen.
-
@hbuerger Alles klar ... ich war mir ja auch unsicher und fragte daher oben:
Einen Teil dieser Prüfung gibt es aber schon, oder?
-
Vielen Dank für die Umsetzung :-). Habe es eben zufällig bemerkt.
-
Dieses Feature wurde mit Version 3.48 eingebaut. Siehe den Blog Post dazu.
Daher schließe ich das Thema.