Freigeben über


Role-Based Sicherheit

Rollen werden häufig in Finanz- oder Geschäftsanwendungen verwendet, um Richtlinien zu erzwingen. Eine Anwendung kann z. B. Beschränkungen für die Größe der Verarbeiteten Transaktion festlegen, je nachdem, ob der Benutzer, der die Anforderung stellt, Mitglied einer bestimmten Rolle ist. Mitarbeiter haben möglicherweise die Berechtigung zum Verarbeiten von Transaktionen, die kleiner als eine angegebene Schwelle sind, Aufsichtspersonen möglicherweise eine höhere Grenze, und Vizepräsidenten haben möglicherweise eine noch höhere Grenze (oder gar keine Grenze). Rollenbasierte Sicherheit kann auch verwendet werden, wenn eine Anwendung mehrere Genehmigungen erfordert, um eine Aktion abzuschließen. Ein solcher Fall kann ein Einkaufssystem sein, in dem jeder Mitarbeiter eine Kaufanfrage generieren kann, aber nur ein Einkaufsmitarbeiter kann diese Anforderung in eine Bestellung umwandeln, die an einen Lieferanten gesendet werden kann.

Die rollenbasierte .NET-Sicherheit unterstützt die Autorisierung, indem Informationen über den Prinzipal, der aus einer zugeordneten Identität besteht, dem aktuellen Thread zur Verfügung gestellt werden. Die Identität (und der Prinzipal, den sie hilft zu definieren) kann entweder auf einem Windows-Konto basieren oder eine benutzerdefinierte Identität sein, die unabhängig von einem Windows-Konto 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 die Rollenmitgliedschaft verwenden, um zu bestimmen, ob ein Prinzipal berechtigt ist, eine angeforderte Aktion auszuführen.

Um die Benutzerfreundlichkeit und Konsistenz mit der Codezugriffssicherheit zu gewährleisten, stellt System.Security.Permissions.PrincipalPermission .NET rollenbasierte Sicherheit Objekte bereit, mit denen die Common Language Runtime die Autorisierung auf eine Weise durchführen kann, die mit Codezugriffssicherheitsprüfungen vergleichbar 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 auch direkt auf die Identitätsinformationen eines Prinzipals zugreifen und bei Bedarf Rollen- und Identitätsprüfungen in Ihrem Code ausführen.

.NET bietet rollenbasierte Sicherheitsunterstützung, die flexibel und erweiterbar genug ist, um die Anforderungen eines breiten Spektrums von Anwendungen zu erfüllen. Sie können sich entscheiden, mit vorhandenen Authentifizierungsinfrastrukturen wie COM+ 1.0 Services zu arbeiten oder ein benutzerdefiniertes Authentifizierungssystem zu erstellen. Rollenbasierte Sicherheit eignet sich besonders gut für die Verwendung in ASP.NET Webanwendungen, die hauptsächlich auf dem Server verarbeitet werden. Die rollenbasierte .NET-Sicherheit kann jedoch entweder auf dem Client oder auf dem Server verwendet werden.

Bevor Sie diesen Abschnitt lesen, stellen Sie sicher, dass Sie das in den Schlüsselsicherheitskonzepten dargestellte Material verstehen.

Siehe auch