Laden...

Zugriffsverwaltung/Rechteverwaltung über Windows-Benutzername

Erstellt von adm1n vor 7 Jahren Letzter Beitrag vor 6 Jahren 2.346 Views
A
adm1n Themenstarter:in
51 Beiträge seit 2014
vor 7 Jahren
Zugriffsverwaltung/Rechteverwaltung über Windows-Benutzername

Hi Forum,

ich würde gerne abhängig vom Windows-Benutzername Teile (Plugins) meiner Software (C#, WPF) zur Nutzung freischalten bzw. sperren/ausblenden.

Die Rechte können sich mit der Zeit ändern und somit sollte das Ganze schnell und einfach wartbar sein.

Hier ein Beispiel der Rechtevergabe (X ^= Zugriffsberechtigung für das jeweilige Plugin)


+-----------+-------------+----------+----------+
| Benutzer  | Plugin 1    | Plugin 2 | Plugin 3 |
+-----------------------------------------------+
| B1        | X           |          | X        |
| B2        |             |          | X        |
| B3        |             | X        | X        |
| B4        |             | X        | X        |
+-----------+-------------+----------+----------+

Was ist hier Stand der Technik und welche Vorgehensweise würdet ihr empfehlen?

Ich bedanke mich schon jetzt und wünsche ein schönes Wochenende

Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt - Tractatus 5.6, Ludwig Wittgenstein

16.835 Beiträge seit 2008
vor 7 Jahren

Rollenbasiert über das Windows Rollenmanagement. Dafür ist es gedacht und wird von .NET auch von Haus aus unterstützt.
Management dann ebenfalls über D(eine/ extra) Anwendung oder über das Active Directory User and Group Management.

A
adm1n Themenstarter:in
51 Beiträge seit 2014
vor 6 Jahren

Ich finde immer nur die Möglichkeit über ASP.NET - ist es das, was du meinst?

Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt - Tractatus 5.6, Ludwig Wittgenstein

16.835 Beiträge seit 2008
vor 6 Jahren

Nein, ich meine den System.DirectoryServices.AccountManagement Namespace.

1.696 Beiträge seit 2006
vor 6 Jahren

Was ist hier Stand der Technik und welche Vorgehensweise würdet ihr empfehlen?

Wenn du schon mit Windows Account arbeitest, dann bietet sich SSO an, die Rechtevergabe würde ich jedoch über AD-Gruppen und nicht AD-User realisieren, somit ist die Flexibilität größer.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

A
adm1n Themenstarter:in
51 Beiträge seit 2014
vor 6 Jahren

Vielen Dank euch allen! Wer ähnliches geplant hat, findet Everything in Active Directory via C#.Net 3.5 (Using System.DirectoryServices.AccountManagement) einen guten Einstieg.

Eine Frage habe ich noch:
Wenn der PC mal nicht an der Domäne ist, quasi keine Verbindung zu AD hat, wie würdet ihr das dann am besten handeln? Die Gruppenzugehörigkeit lokal abspeichern (AppData) und immer dann Updaten, wenn sich der PC wieder an der Domäne anmeldet? Oder speichert Windows selbst die Daten lokal schon irgendwo ab?

Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt - Tractatus 5.6, Ludwig Wittgenstein

16.835 Beiträge seit 2008
vor 6 Jahren

Wie Frage an der Stelle wäre: warum hat der PC keine Verbindung zur Domäne? Was ist da die Situation oder der Usecase?

A
adm1n Themenstarter:in
51 Beiträge seit 2014
vor 6 Jahren

Bsp: Benutzer sitzt im Zug / ist unterwegs und hat keine Verbindung zur Domäne.

Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt - Tractatus 5.6, Ludwig Wittgenstein

16.835 Beiträge seit 2008
vor 6 Jahren

Dann reden wir also von einem Laptop statt PC.

Sofern Du nur das Princpal des aktuellen Benutzers brauchst, dann cached das Windows bereits automatisch in der Session des aktuellen Benutzers.
Windows verhält sich so, dass diese nur beim Login abgefragt werden. Sprich, beim Hinzufügen eines Benutzers in eine Gruppe muss derjenige sich auch erneut an Windows anmelden (alternativ, wer die Rechte hat whoami /groups).

Brauchst Du eigene Abfragen gegen das Active Directory, zum Beispiel gegen Gruppen oder andere Benutzer, dann musst Du Dir pro Anwendungsfall eine eigene Möglichkeit suchen (zB. Cache mit Sync).