![]() |
Rechtemanagement in eigener Anwendung - Was ist sinnvoller?
Hallo,
der Titel meines Threads soll schon andeuten, dass es um das Rechtemanagement in einem selbst geschriebenen Programm geht. Hierbei ist eigentlich egal um welches Thema es sich bei der Applikation dreht, es geht nur darum, dass diverse User bestimmte Funktionen ausführen dürfen und andere, aufgrund deren Rechte, eben nicht. Ich habe bisher vier Ansätze gefunden, wie ich so etwas implementieren könnte. Hierbei stelle ich nun zunächste die simplen Methoden vor, d.h. man kann Rechte eines Benutzer, der gerade mit einer Anwendung arbeitet, nicht ändern. Die zweite eher komplexerer Möglichkeit umfasst dann auch die Änderungen der Rechte während der der Nutzer am Programm arbeitet. Ich hoffe, dass es aus meiner folgenden Erläuterung klar wird, warum ich einmal eine Betrachtung ohne die Änderung und einmal mit der Änderungsmöglichkeit mache. Ohne Änderung:
Mit Änderungen der Rechte:
Meine Frage ist hierbei nun, welche Methode der Implementierung ist sinnvoller und flexibler?! Welche Methode wirft eurer Meinung nach mehr Probleme auf? Welche hat mehr Vorteile? Hierzu sollten aber die beiden Modelle im Bezug auf die Änderung der Rechte während der Laufzeit unterschieden werden! Mit freundlichen Grüßen der Hai ;) |
Re: Rechtemanagement in eigener Anwendung - Was ist sinnvoll
Windows erzeugt das Token auch nur bei der Anmeldung neu, deshalb kannst du es auch bei Programmstart laden.
Nachteil: Ändern sich Rechte, werden diese nicht sofort übernommen. In meinen Anwendungen nutze ich die Rechteverwaltung von Windows. Ich schaue ob ein User in bestimmten Sicherheitsgruppen ist. Diesen Sicherheitsgruppen, lassen sich in meiner Datenbank dann Rechte zuordnen. Vorteil: Die Admins brauchen nur zu wissen, welche Windowssicherheitsgruppe was erlaubt. Internen Aufbau oder Pflege in der Fachanwendung sind nicht erforderlich. Diese Modelle setzen vorraus, das der User Zugriff auf die Datenbank hat. Nachteil: mit einen Sniffer könnte der User die Datenbank (inkl. user/pass) rausfinden und mit Tools sich die Daten anschauen. 2 Möglichkeiten 1) - die Datenbank prüft alle Rechte über Storedproceduren. - auf Tabellen wird kein Zugriff gewährt 2) - du baust einen Dienst/Webservice dazwischen, welcher die Daten filtert und liefert. - ggf. mit Kerberosauthentifizierung um an das Token des Users zu kommen. |
Re: Rechtemanagement in eigener Anwendung - Was ist sinnvoll
Ich halte es für besser, wenn die Änderungen "Online" erfolgen können. Es gibt dabei aber auch Nachteile:
Wenn Du die Benutzerverwaltung in einem existierenden System einführen willst, musst Du auch entsprechende Prüfroutinen einbauen, die allen Benutzern beim ersten Mal sinnvolle Rechte erteilen oder einen Admin festlegen, der dann diese Arbeit machen kann. Auch beim Hinzufügen von neuen Funktionalitäten ist daran zu denken, dass diese beim Update sich automatisch in die Rechtetabelle eintragen. Zur Speicherung würde ich folgendes Schema vorsehen:
Nicht zu unterschätzen ist auch eine stabile und gut bedienbare Benutzer- und Rechte verwaltung, sonst legen die Benutzer das System innerhalb kürzester Zeit komplett lahm. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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