Verwenden von Rollen für die Clientautorisierung
Sie verwenden die rollenbasierte Sicherheit, um eine Autorisierungsrichtlinie einzurichten, um zu bestimmen, welche Clients bzw. welche Autorität eingelassen werden sollen. Sie entscheiden, wer welche Aktionen ausführen und auf welche Ressourcen zugreifen soll.
Rollen erleichtern dies, indem sie als Zugriffssteuerungsmechanismus fungieren, der aufgerufen wird, wenn ein Benutzer versucht, auf eine Anwendungsressource zuzugreifen. Eine Rolle ist im Grunde eine Liste von Benutzern, genauer gesagt eine symbolische Kategorie von Benutzern, die die gleichen Sicherheitsberechtigungen haben. Wenn Sie einer Anwendungsressource eine Rolle zuweisen, erteilen Sie der Person, die Mitglied dieser Rolle ist, die Zugriffsberechtigung für diese Ressource.
Daher können Sie eine ganz bestimmte Sicherheitsberechtigung definieren, indem Sie sie als Rolle deklarieren und die Rolle dann bestimmten Ressourcen zuweisen. Wenn die Anwendung bereitgestellt wird, kann der Systemadministrator die Rolle mit tatsächlichen Benutzern und Benutzergruppen auffüllen. Wenn die Anwendung ausgeführt wird, erzwingt COM+ die Richtlinie durch Rollenüberprüfungen.
Im Grunde tragen Rollen zum Schutz Ihres Codes bei, d. h. die Methoden, die von Clients einer COM+-Anwendung aufgerufen werden können. Die Rollenmitgliedschaft wird immer dann überprüft, wenn ein Client versucht, eine Methode aufzurufen, die von einer Komponente in einer Anwendung verfügbar gemacht wird. Wenn sich der Aufrufer in einer Rolle befindet, die der aufgerufenen Methode oder Ressource zugewiesen ist, ist der Aufruf erfolgreich; andernfalls tritt ein Fehler auf.
Deklarative Role-Based Sicherheit
Bei der deklarativen rollenbasierten Sicherheit deklarieren Sie Rollen entweder mithilfe des Component Services-Verwaltungstools oder der Administrativen Funktionen und weisen sie den Anwendungsressourcen administrativ zu. Wo und wie Sie deklarative Sicherheit festlegen, wird bestimmt, wo Sicherheitsgrenzen für Ihre Anwendung gezogen werden. Weitere Informationen finden Sie unter Sicherheitsgrenzen.
Sie können eine bestimmte Rolle der gesamten Anwendung, einer bestimmten Komponente, einer bestimmten Schnittstelle in einer Komponente oder einer bestimmten Methode auf einer Schnittstelle zuweisen. Rollenzuweisungen werden in der natürlichen Inklusionskette vererbt. Das heißt, wenn Sie einer Komponente eine Rolle zuweisen, wird sie implizit jeder Schnittstelle und Methode zugewiesen, die von dieser Komponente verfügbar gemacht wird.
Mit der Verfügbarkeit von Rollenzuweisungen auf Methodenebene können Sie effektiv dazu beitragen, Komponenten und Schnittstellen zu schützen, die nicht unter Berücksichtigung der Sicherheit konzipiert wurden. Wenn die Methoden selbst jedoch nicht mit deklarativen Rollenzuweisungen gesichert werden können, müssen Sie möglicherweise eine programmgesteuerte Rollenüberprüfung durchführen. Es ist im Allgemeinen eine gute Idee, die Sicherheit zu berücksichtigen, wenn Sie entscheiden, wie Geschäftsfunktionen mithilfe von Methoden zu berücksichtigen sind. Andernfalls könnten Sie in letzter Minute sicherheitsrelevanten Code hinzufügen.
Ausführliche Verfahren zum Festlegen der rollenbasierten Sicherheit finden Sie unter Konfigurieren Role-Based Sicherheit.
Programmgesteuerte Sicherheit
Unter bestimmten Umständen können Sie Sicherheitslogik in Komponenten einfügen und gleichzeitig die rollenbasierte Sicherheit verwenden. Es kann sein, dass Sie nicht in der Lage sind , alle Zugriffsentscheidungen über Methoden zu berücksichtigen oder nicht. Beispielsweise können Sie über eine private Anwendungsressource verfügen, vielleicht eine bestimmte Datenbank, auf die Sie nur einigen Aufrufenden einer Methode den Zugriff erlauben möchten, während andere ausgeschlossen werden. Oder Sie verfügen über eine einzelne TransferMoney-Methode und möchten einige Aufrufer einschränken, indem Sie den Betrag einschränken, den sie übertragen können.
Unter solchen Umständen können Sie die Rollenüberprüfung im Code durchführen. Es wird eine einfache API bereitgestellt, mit der Sie überprüfen können, ob die Sicherheit aktiviert ist und ob sich ein Aufrufer oder ein bestimmter Benutzer in einer bestimmten Rolle befindet. Diese Funktionalität ist nur verfügbar, wenn die rollenbasierte Sicherheit aktiviert ist. Dies bedeutet, dass Sie die deklarative rollenbasierte Sicherheit weiterhin dort nutzen können, wo sie ausreicht, und sie dann programmgesteuert auf eine höhere Granularität erweitern können, wenn dies erforderlich ist.
Wenn Sie die rollenbasierte Sicherheit verwenden, haben Sie außerdem programmgesteuerten Zugriff auf Informationen zu allen Upstream Aufrufern in der Kette der Aufrufe Ihrer Komponente. Dies ist besonders nützlich, wenn Sie einen detaillierten Überwachungspfad beibehalten möchten.
Beschreibungen der Rollenüberprüfung im Code und des Zugriffs auf Kontextinformationen für Sicherheitsaufrufe finden Sie unter Programmgesteuerte Komponentensicherheit.
Autorisierung und Authentifizierung
Eine sinnvolle Autorisierung setzt voraus, dass Sie sicher sind, dass Die Kunden tatsächlich der sind, für den sie sich ausgibt. Die Überprüfung der Clientidentität wird von einem Authentifizierungsdienst separat behandelt. Ohne Authentifizierung lassen Sie Anrufer grundsätzlich im Honor-System ein. Beschreibungen der Authentifizierung, die sich auf COM+-Anwendungen auswirkt, finden Sie unter Clientauthentifizierung.
Zugehörige Themen