Rollenbasierte Sicherheit in verwalteten Anwendungen
Die rollenbasierte Sicherheit ist ein gängiges Anwendungskonzept, bei dem der Entwickler auf Grundlage der Identität der oder Rollen für die Entität, für die eine Anwendung ausgeführt wird, Autorisierungen durchführt. Die Definition der Rollen ist in der Regel ebenso anwendungsspezifisch wie die Bedingungen, unter denen die Autorisierung bestimmter Aktionen durch den Administrator vorgenommen wird.
Anwendungsentwickler treffen die Autorisierung betreffende Entscheidungen üblicherweise anhand der dem betreffenden Ausführungskontext zugeordneten Identität und Rollen. Dies gilt insbesondere für Finanz- oder Geschäftssysteme, wo auf diese Weise Richtlinien erzwungen werden. So könnte z. B. der Wert einer Transaktion je nach Rolle des anfordernden Benutzers eingeschränkt werden. Angestellte können dann Transaktionen bis zu einem festgelegten Wert verarbeiten, während für Abteilungsleiter ein höher Grenzwert und für Mitglieder der Geschäftsleitung ein noch höherer Grenzwert gilt. Als weiteres Beispiel wäre ein Geschäftssystem zu nennen, in dem zur Ausführung einer Aktion mehrere Bestätigungen erforderlich sind. Stellen Sie sich in diesem Zusammenhang beispielsweise ein Einkaufssystem vor, bei dem jeder Angestellte eine Bestellanforderung erstellen kann, aber nur ein Einkaufsangestellter diese verarbeiten und eine entsprechende Bestellung zur Sendung an den Lieferanten erstellen kann.
In der Vergangenheit wurde derartigen Anforderungen häufig mit proprietären Mechanismen Rechnung getragen. Microsoft brachte als erster Provider eine Infrastruktur auf den Markt, in der diese Art der rollenbasierten Sicherheit durch Microsoft Transaction Server und in jüngerer Zeit durch COM+ 1.0-Dienste unterstützt wird. .NET Framework bietet eine vergleichbare Unterstützung, allerdings ist diese nahtlos in die .NET-Technologie integriert. Die rollenbasierten Sicherheitsmechanismen von .NET Framework bieten die folgenden Features:
- Möglichkeit zum Überprüfen der Identität und Rolle der Entität, für die Code ausgeführt wird;
- nahtlose Integration in verteilte Anwendungen mit Hilfe von .NET Remoting;
- einheitliche Funktionsweise sowohl in Client- als auch in Serverausführungsumgebungen;
- Offenlegung dieser Dienste für Anwendungsentwickler mit Hilfe von Mechanismen, die mit Sicherheitsüberprüfungen für den Codezugriff vergleichbar sind;
- weite Verbreitung und ständige Verfügbarkeit;
- problemlose Konfiguration für die Verwendung anwendungsdefinierter Rollen.
Siehe auch
Sicherheit | Codezugriffssicherheit | Websicherheit über den HttpChannel