Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Windows-Berechtigungen (Benutzer/Gruppen) im eigenen Programm verwenden

  Alt 17. Aug 2015, 21:35
Naja, der von p80286 beschriebene Fall lässt sich bestimmt mit Dateiberechtigungen, Scripts etc. lösen, aber wenn man's mit Delphi prüfen kann/will, warum nicht...

Ich meinem Anwendungsfall geht es beispielhaft um folgendes:
Wir bieten für -auch große- Unternehmen ein Content-Management-System für öffentlich sichtbare Bildschirme an. Um nun die Verwaltung des Systems mit einer separaten Benutzerverwaltung (innerhalb der Software, Benutzername und Passwort werden aktuell "pseudo-verschlüsselt" abgespeichert) nicht unnötig für die Admins zu komplizieren, wünschen immer mehr Kunden eine Anbindung an Active-Directory (AD), also die Windows authentifiziert. Hier können ja Benutzergruppen weltweit standort-unabhängig gepflegt werden. Dies vermeidet Redundanz (Pflege der berechtigten Benutzer in Windows UND unserer Software), vereinheitlicht die Bedienung (Windows-Dialog mit allen Benutzern die es gibt, dank Domäne) und erhöht ggf. die Sicherheitheit, da wir keine Passwörter/Hashes mehr speichern müssen. Wenn man für jedes der folgenden Rechte eine AD-Benutzergruppe hat (kann ja auch die selbe sein), ist der Admin dankbar, weil er -ohne unsere Software zu installieren- die Berechtigungen jederzeit von seinem PC ändern kann.

Für uns gibt es nun folgenden konkreten Anwendungsfall, bei dem unterschiedliche Benutzer der Domäne unterschiedliches dürfen:
1) Hauptprogramm starten, Daten "Nur Lesen", bzw. "Login" in unsere Software (da darf ja nicht jeder reinschauen)
2) Text-Daten eintragen, ändern und löschen (z.B. Empfangsdamen, Pförtner)
3) Layoutgestaltung anpassen (Marketing)
4) Benutzerrechte anpassen (Administrator)
5) Wer darf auf welchen Bildschirm (unendlich viele!) zugreifen? Pförtner soll nur Bildschirm Pforte steuern, die Empfangsdamen nur den am Empfang, Marketing darf alle Bildschirme bespielen, etc.
6) Ggf. Ausblenden von Optionen, die der Benutzer nicht verwenden darf, um das GUI aufzuräumen (mal schauen...)

Klar, ich arbeite hier nicht mit Active-Directory-Objekten die ich manipulieren will, aber für mal eben im Programm zu sagen "Darfst Du" oder "Darfst du nicht" langt das. Sicher ist auch die Datenbank nicht manipulations-sicher, und man muss da ggf. serverseitig (z.B. auf SQL-Server, also nicht von uns!) mit Rechten nachhelfen, aber hier geht es eigentlich primär -man verzeihe mir den Ausdruck- um Vermeidung von Kollateralschaden durch versehentliche (oder absichtliche?) Falschbedienung im Programm, so dass z.B. nicht der Benutzer den falschen Bildschirm mit Inhalten bespielt.

Der Clou ist, dass wenn man keine Rechte festlegt, ja automatisch jeder alles darf (z.B. auf Einzel-PCs), so dass keinerlei Konfiguration notwendig ist.

Für weitere Rückfragen stehe ich gerne zur Verfügung.
  Mit Zitat antworten Zitat