AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerrechte?

Ein Thema von OrNEC · begonnen am 23. Dez 2014 · letzter Beitrag vom 24. Dez 2014
Antwort Antwort
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Benutzerrechte?

  Alt 23. Dez 2014, 13:39
Wie du das nun genau umsetzt, bleibt natürlich dir überlassen.
Und wie hast Du das umgesetzt? Damit ich wenigsten eine Idee habe wie es gehen könnte.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Benutzerrechte?

  Alt 23. Dez 2014, 16:03
Was genau verstehst du denn an obiger Skizze nicht? Oder anders gefragt: Was erwartest du jetzt? Quellcode?
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Benutzerrechte?

  Alt 23. Dez 2014, 17:08
Such mal nach Bei Google suchenRBAC (Role Based Access Control). Im Gegensatz zu anderen gängigen Programmiersprachen/Frameworks (siehe z.B. Bei Google suchenC sharp RBAC oder Bei Google suchenRBAC node.js) sind mir für Delphi keine Beispiel-Implementierungen bekannt.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Benutzerrechte?

  Alt 23. Dez 2014, 17:15
Ich habe es bei mir ähnlich wie Perlsau: Es gibt Benutzer und die gehören einer Gruppe an. Eine Gruppe hat einen numerischen Wert (zwischen 0 und 100) der ausdrückt, wieviel sie dürfen. Manche Dinge gehen ab einem Rechtewert von 30, andere ab 70.

Für komplexere Dinge hat mir schlicht die Zeit gefehlt. Der Ansatz hat auf jeden Fall den Schwachpunkt den ein schlauer Mann hier bestens auf den Punkt gebracht hat:
Ich würde sagen, erstmal ok, aber ich stelle mir vor, dass in der Praxis kein User in einer unternehmesweiten "Fachlichkeit" überall einen bestimmten/gleichen Level hat/ erreicht.
Du bekommst also irgendwann Probleme, weil der Müller (der König aus dem Lager), die Feinheiten in der Produktion justiert...
Das entsprechende Thema aus dem das Zitat stammt ist vielleicht auch noch eine Lektüre wert.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Benutzerrechte?

  Alt 23. Dez 2014, 17:45
Man könnte z.B. ein Byte mit den Benutzerrechten mitschleppen und mit entsprechender Maskierung das Rechtelevel feststellen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Benutzerrechte?

  Alt 23. Dez 2014, 18:00
Ich speichere mir die Benutzerrechte eines Benutzers als Integer-Wert in der Datenbank. Der Wert wird dann beim Anmelden wieder in seine binären Bestandteile zerlegt. Die Zerlegung erfolgt mit Bitverschiebung. Wenn das niederwertigste Bit eine 1 ist, dann wird das entsprechende Recht hinzugefügt, ist es 0 dann eben nicht. Die möglichen Rechte sind in einem bzw. mehreren Type(s) hinterlegt. Die Rechte, die der Benutzer nach der Anmeldung bekommt, sind in einem Set of Permissions abgelegt.

Bei Bedarf kann ich auch gerne mal ein wenig Quellcode posten, der diese Vorgehensweise deutlich macht. Ob es der beste Weg ist weiß ich nicht, aber er hat sich bei mir auf jeden Fall bewährt. So hab ich z.B. auch die Möglichkeit, jedem Benutzer individuell alle möglichen Kombinationen von Rechten zu geben.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Benutzerrechte?

  Alt 23. Dez 2014, 20:51
Delphi liefert da glaub ich wenig systematische Ansätze. Am ehesten sind vielleicht die schon erwähnten Actionlists oder auch die Form (als Maske) zu nennen.
Letztlich dreht sich alles um die Funktionen, die Deine Anwendung bereitstellt.
Die Funktionen kannst Du beliebig mit Berechtigungsverfahren kreuzen.
Funktion gegen Benutzergruppe oder -Level
Funktion gegen Skill
usw. usf.
Dabei kann man ein Verfahren wählen wie hier bereits genannt, man kann sich an SQL orientieren (Select, Execute, Insert, Update, Delete) bis hin zu dem Recht, Rechte zu vergeben.
Man kann diese Rechte auf Objekt oder bis hin zu Attributen oder Volumen ausdehnen, anhand einer Mandantendimension aufteilen und man kann auch Sichheits- oder Datenschutzaspekte berücksichtigen (was schon sehr professionell ist)
Man kann in Berechtigungsverwaltung auch Object Lifecycles einbinden, womit das Recht zur Ausführung nicht mehr nur am Benutzerrecht hängt, sondern auch am Zustand des Objekts.

Am Ende muss man noch berücksichtigen, dass all das auch zu verwalten ist (neben dem Coding) und man muss einen Mittelweg zwischen Aufwand und Nutzen finden.

Wir haben mal ein solches System entwickelt und der Kunde hat irgendwann gefragt, ob man nicht die Mandantenebene weglassen kann und eine Rechtedefinition je Benutzer für alle Mandanten gilt. Es war ihm zuviel Aufwand.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Benutzerrechte?

  Alt 24. Dez 2014, 09:01
Wichtig für das Handling ist es auf jeden Fall eine Trennung zwischen Personen und Rollen zu ermöglichen. Die Rollen sind Gruppen, denen Personen oder Gruppen angehören können und die Rechte von den Rollen mitbekommen.

Ziel muss es sein, dass die Berechtigungs-Struktur damit abgebildet werden kann. Da gibt es dann Abteilungsleiter, Sachbearbeiter, Chefs, Technische Leiter, ... die alle mehr oder weniger können dürfen oder sollen. Die einzelnen Personen können dann der ein oder anderen Rolle zugewiesen werden oder wieder entfernt werden.

Trifft allerdings die Realität auf die Theorie, dann wird alles ganz schön blass. (siehe XP wo alle Administratoren sind). Ein so fein gestaltetes System mit Berechtigungen bis runter auf die einzelnen Objekte wird in den meisten Fällen eingestellt nach dem Weg des geringsten Widerstandes.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Benutzerrechte?

  Alt 24. Dez 2014, 10:10
Hallo,

die Art und Weise wie man eine Benutzerrechteverwaltung (mit Delphi) realisiert ist die technische Seite. Leider wird dabei - wie viel zu oft auch in anderen Bereichen ersichtlich - von den Entwicklern die Praxistauglichkeit nur unzureichend berücksichtigt.

Ich empfehle daher jedem Programmierer, das was er kocht auch selber zu essen. Sprich, die Benutzerrechteverwaltung auch auf seinem Entwickler-PC zu aktivieren. Spätestens wenn der Programmierer sich in zweistelliger Anzahl von Login's an seiner eigenen Software angemeldet hat, müsste das nachfolgend angesprochene Potential zur Optimierung bzw. Verbesserung ersichtlich werden.

In meiner Benutzerverwaltung gibt es die Option (d.h. es ist Sache des Admin's das pro Benutzer zu aktivieren), einen Benutzer mit einem PC zu verknüpfen. Zusätzlich besteht bei dieser Option die Möglichkeit der automatischen Anmeldung. D.h. der Admin kann beispielsweise festlegen, wenn "Lieschen Müller" am PC "PC-Mueller" angemeldet ist, dann bekommt sie auch beim Start der SW automatisch die ihr zugewiesenen Rechte. Dieses Scenario ist besonders bei Arbeitsplätzen die nur von einer einzigen Person genutzt werden sehr weit verbreitet. In diesem Fall kann also der klassische Anmelde-Dialog entfallen, was in Folge mehrere positive Aspekte hat:

- Benutzerfreundlichkeit: der aus Sicht des Anwenders "unsinnige" Anmeldedialog entfällt.
- Der psychologische Effekt, dass der Benutzer gar nicht das Gefühl hat, seine Rechte sind eingeschränkt.
- Akzeptanz: Benutzer empfinden die Benutzerverwaltung nicht als Gängelung oder Bevormundung.

Zum sicherheitstechnischen Aspekt: Wenn der betreffende Benutzer in der Software eingeschränkte Benutzerrechte hat, spielt die automatische Anmeldung in der Praxis auch keinerlei sicherheitsrelevante Rolle. Mein Anmelde-Dialog ist dann zusätzlich in der Software integriert, d.h. erst wenn ein Admin administrative Arbeiten erledigen muss, meldet er sich beim Aufruf der "gesperrten" Funktion in der Software an. In dieser Situation kann dann in der Benutzerrechteverwaltung definiert werden, ob der Admin angemeldet bleibt, oder nach Aufruf der entsprechenden Funktion automatisch wieder abgemeldet werden soll.

Mein Resümee aus jahrelanger praktischer Anwendung und Programmierung von Benutzerverwaltung ist daher: Die beste Benutzerverwaltung ist diejenige, die man nicht sieht. Infolge davon wird die Benutzerverwaltung sowohl von Anwendern als auch von Kunden/Administratoren nicht als notwendiges Übel, sondern vielmehr als praktikable Lösung einer sicherheitstechnischen Anforderung angesehen.

Zur Speicherung: Ich persönlich bevorzuge die Speicherung einer Rechte-Struktur als Record in einem Binary-Blob-Field. Benutzername, PC-Name (siehe oben) und weitere Informationen in entsprechenden indizierten Feldern zur schnellen Lokalisierung bei der Anmeldung.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz