Rollenbasierte Sicherheit

Rollen werden häufig in Finanz-oder Geschäftsanwendungen verwendet, um Richtlinien durchzusetzen. Beispielsweise könnte eine Anwendung Beschränkungen der Größe der Transaktion, die verarbeitet wird, abhängig davon erzwingen, ob der anfordernde Benutzer ein Mitglied einer bestimmten Rolle ist. Angestellte können zum Verarbeiten von Transaktionen autorisiert sein, die unter einem bestimmten Schwellenwert liegen, für Abteilungsleiter kann eine höhere Grenze und für Mitglieder der Geschäftsleitung eine noch höhere (oder keine) Grenze angegeben sein. Rollenbasierte Sicherheit kann auch verwendet werden, wenn eine Anwendung mehrere Bestätigungen für das Abschließen einer Aktion benötigt. Ein solcher Fall könnte ein Beschaffungssystem sein, in dem jeder Mitarbeiter eine Bestellanforderung generieren kann, aber nur ein Einkaufssachbearbeiter diese Anforderung in eine Bestellung umwandeln kann, die an einen Lieferanten gesendet werden kann.

Die rollenbasierte Sicherheit von .NET unterstützt Autorisierung, indem sie dem aktuellen Thread Informationen über den Prinzipal verfügbar macht, der aus einer zugehörigen Identität erstellt wird. Die Identität (und der Prinzipal, der über sie definiert wird) kann entweder auf einem Windows-Konto basieren oder eine benutzerdefinierte Identität sein, die keinem Windows-Konto zugeordnet ist .NET-Anwendungen können Autorisierungsentscheidungen aufgrund der Identität oder der Rollenmitgliedschaft des Prinzipals oder beidem treffen. Eine Rolle ist ein benannter Satz von Prinzipalen, die hinsichtlich der Sicherheit dieselben Berechtigungen haben (z. B. ein Kassierer oder ein Manager). Ein Prinzipal kann einer oder mehrere Rollen angehören. Daher können Anwendungen anhand der Rollenmitgliedschaft bestimmen, ob ein Prinzipal zum Ausführen einer angeforderten Aktion autorisiert ist

Damit Benutzerfreundlichkeit und Konsistenz mit der Codezugriffssicherheit gegeben sind, stellt die rollenbasierte Sicherheit von .NET System.Security.Permissions.PrincipalPermission-Objekte bereit, die es der Common Language Runtime ermöglichen, Autorisierung auf eine Weise vorzunehmen, die Prüfungen der Codezugriffssicherheit ähnlich ist. Die PrincipalPermission-Klasse entspricht der Identität oder Rolle, mit der der Prinzipal übereinstimmen muss, und ist sowohl mit deklarativen als auch imperativen Sicherheitsüberprüfungen kompatibel. Sie können in Ihrem Code auch direkt auf Identitätsinformationen eines Prinzipals zugreifen und Rollen- sowie Identitätsprüfungen ausführen.

.NET bietet Unterstützung für rollenbasierte Sicherheit, die genügend flexibel und erweiterbar ist, um die Anforderungen einer großen Bandbreite von Anwendungen zu erfüllen. Sie haben die Wahl, auf vorhandene Authentifizierunginfrastrukturen zurückzugreifen, etwa COM+ 1.0 Services, oder ein benutzerdefiniertes Authentifizierungssystem zu erstellen. Rollenbasierte Sicherheit ist besonders gut geeignet für die Verwendung in ASP.NET-Webanwendungen, die hauptsächlich auf dem Server verarbeitet werden. Die rollenbasierte Sicherheit von .NET kann aber sowohl auf dem Client als auch auf dem Server verwendet werden.

Vor dem Lesen dieses Abschnitts sollten Sie sich mit den Informationen vertraut machen, die unter Schlüsselbegriffe der Sicherheit zu finden sind.

Siehe auch