Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   ADS,LDAP Rechtevergabe auf Dateien (https://www.delphipraxis.net/159629-ads-ldap-rechtevergabe-auf-dateien.html)

hoda 6. Apr 2011 08:03

ADS,LDAP Rechtevergabe auf Dateien
 
Hallo Zusammen,
ich habe benötige für ein Projekt eure Unterstützung, da ich mich mit dem Thema ADS oder LDAP nicht gut auskenne. :( Ich habe zwar ein paar Unterlagen gelesen, aber ich wurde nicht draus schlau.:(:(
(MS Server 2003)
Mein Anliegen:
1.) Der Administrator soll anhand von ADS/LDAP (bin nicht sicher ob das so geht) bestimmte Applikationen (Dateien) rechte vergeben. Beispiel: Meier darf die Applikation/Datei nur aufrufen können oder nicht.
2.) Die Vergebenen rechten, will ich von meinen Applikationen, die auf den Clients laufen, abfragen und entsprechend reagieren. Des Weiteren will ich diese Rechte auf den Clients sichern. Wenn der Client keine Verbindung haben sollte, darf er trotzdem mit dem Rechten agieren die Ihm zusteht.
Meine Frage:

Zu 1.) Kann man über diesen weg (ADS/LDAP) den Applikationen bzw. Dateien rechte vergeben? Falls ja, wie?
Zu 2.) Wie müssten in diesem Fall die Abfragen aussehen? Ich habe dafür ein paar Beiträge gelesen, die einen haben das mit ADO-Applikation gelöst und die anderen per GetUserName von Windows.pas.
Habt Ihr noch andere Lösungsvorschläge?

Danke im Voraus!
Gruß,
Hoda

generic 6. Apr 2011 08:38

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Meinst du mit ADS das ActiveDirectory (AD)?

Den Dateischutz machst du über die integrierten Sicherheitsmechanismen von Windows. Das NTFS-Dateisystem hat ein Access-Control-List (ACL) Schutzsystem integriert.

Wenn du mit ADS den Adv.Database-Server meinst, dann wird es schwieriger.
Wenn du Datensätze (Reihe in einer Tabelle) in einer Datenbank schützen willst, dann wirst du an jeden Datensatz eine ACL hängen müssen. Datenbanken schützen nur auf Tabellenbasis (select,insert,delete,update).
Diese ACL abzufragen ist allerdings auch nicht ohne.
Der Programm dürfte diesen Schutz nicht abfragen!

Erklärung folgt:
Der Benutzer müsste nur über Views und StoredProcs auf die Tabellen indirekt zugreifen dürfen.
Würde der Nutzer ein Datenbanktool nutzen und hätte das select-Recht für die Tabelle, dann könnte er an der ACL vorbei die Daten lesen.

Die Views und StoredProcs begrenzen die Sicht/Funktion auf Zeilen Ebene. Somit könnte der Nutzer trotz Datenbankverbindung nur die erlaubten Daten lesen. Für die Tabellen hat er dann natürlich keine Rechte.

Was für Rechte möchtest du in deiner Anwendung vergeben?
* Darf Funktion X
* Darf Funktion Y nicht

Da würde ich mich auch an Windows orientieren.
Eine ACL Liste muss her, welche den Zugriff auf die Funktionen regelt.
Vom Benutzer fragst du dann den Sicherheits-/Prozess-Token von Windows ab. Dort sind seine SIDs von den Benutzerkonto und allen seinen Sicherheitsgruppen gespeichert.
Mit denen ermittelst du dann die Rechte aus der ACL.

hoda 6. Apr 2011 09:28

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Vielen Dank vorerst für die rasche Antwort generic.

Wie erwähnt kenn ich mich mit der Materie nicht gut aus, ich gehe mal davon aus, dass es der AD ist.

In der Datenbank will ich nichts schützen, es soll nur überprüft werden, ob der Benutzer Meier auf die Anwendung Beispiel Calc.Exe zugreifen darf oder nicht. Diese Einstellung soll der Admin vergeben auf dem Server. Wenn jetzt die Clients unsere Anwendung auf Ihren Desktops ausführen, soll unsere Anwendung die im Server hinterlegte Rechte abfragen. Falls der User keine rechte hat, die Anwendung zu starten, soll die Anwendung geschlossen werden oder umgekehrt.

Also ich muss grob gesagt zwei dinge tun:
1. Rechte vergeben auf dem Server über AD. (Gibt es hierfür gute Tutorials oder sonstiges?)
2. Unsere Anwendungen auf die Abfrage des AD umprogrammieren.

p80286 6. Apr 2011 12:59

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Zitat:

Zitat von hoda (Beitrag 1093352)
In der Datenbank will ich nichts schützen, es soll nur überprüft werden, ob der Benutzer Meier auf die Anwendung Beispiel Calc.Exe zugreifen darf oder nicht.

Wenn der Benutzer nicht zugreifen darf, bekommt er eine Fehlermeldung!
Wenn Du nachprüfen möchtest ob ein Benutzer (UID) auf eine Datei (lesend/schreibend..) zugreifen darf dann ist activeDirectory Dein Stichwort.
Denk bitte daran, daß meistens der Benutzer sich zu einer Datei "durchhangeln" muß, d.h. er benötigt hierfür naturlich auch die richtigen Rechte!

Gruß
K-H

hoda 6. Apr 2011 14:17

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Danke p80286 (K-H)!

Habt Ihr ein Code Beispiel wie man AD abfragen kann oder am besten ein Tutorial :)

Ich muss mir noch wissen über AD aneignen (Rechte auf Dateien geben) hier ist jede Hilfe erwünscht (Tutorial).

Thanks!

p80286 6. Apr 2011 17:24

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Versuch es mal hiermit:http://www.michael-puff.de/Programmi...kel/DACL.shtml

Gruß
K-H

hoda 6. Apr 2011 17:25

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Nochmals vielen Dank!

generic 6. Apr 2011 20:40

AW: ADS,LDAP Rechtevergabe auf Dateien
 
Ich verstehen noch nicht den Punkt, warum du selbst Rechte abfragen willst.
Bei Dateien macht das Windows für dich.

0 Zeilen Code notwendig


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz