Freigeben über


Zugriffssteuerungsmechanismen

Sie können den Zugriff mit Windows Communication Foundation (WCF) auf verschiedene Weise steuern. In diesem Thema werden die verschiedenen Mechanismen kurz erläutert und Vorschläge für die jeweilige Verwendung bereitgestellt. Es soll Ihnen helfen, den richtigen Mechanismus auszuwählen, der verwendet werden soll. Die Zugriffstechnologien werden in der Reihenfolge der Komplexität aufgeführt. Am einfachsten ist das PrincipalPermissionAttribute; das komplexeste ist das Identitätsmodell.

Zusätzlich zu diesen Mechanismen wird der Identitätswechsel und die Delegierung mit WCF in Delegierung und Identitätswechsel erläutert.

PrincipalPermissionAttribute

Dies PrincipalPermissionAttribute wird verwendet, um den Zugriff auf eine Dienstmethode einzuschränken. Wenn das Attribut auf eine Methode angewendet wird, kann es verwendet werden, um die Identität oder Mitgliedschaft eines bestimmten Aufrufers in einer Windows-Gruppe oder ASP.NET Rolle anzufordern. Wenn der Client mithilfe eines X.509-Zertifikats authentifiziert wird, erhält er eine primäre Identität, die aus dem Antragstellernamen und dem Fingerabdruck des Zertifikats besteht.

Verwenden Sie den PrincipalPermissionAttribute Zugriff auf Ressourcen auf dem Computer, auf dem der Dienst ausgeführt wird, zu steuern, und wenn die Benutzer des Diensts immer Teil derselben Windows-Domäne sind, auf der der Dienst ausgeführt wird. Sie können ganz einfach Windows-Gruppen erstellen, die über bestimmte Zugriffsebenen verfügen (z. B. keine, schreibgeschützt oder lese- und schreibgeschützt).

Weitere Informationen zur Verwendung des Attributs finden Sie unter How to: Restrict Access with the PrincipalPermissionAttribute Class. Weitere Informationen zur Identität finden Sie unter Dienstidentität und Authentifizierung.

ASP.NET Mitgliedschaftsanbieter

Ein Feature von ASP.NET ist der Mitgliedschaftsanbieter. Obwohl der Mitgliedschaftsanbieter technisch kein Zugriffssteuerungsmechanismus ist, ermöglicht er die Steuerung des Zugriffs auf den Dienst, indem er die Gruppe möglicher Identitäten beschränkt, die auf den Endpunkt des Diensts zugreifen können. Das Mitgliedschaftsfeature enthält eine Datenbank, die mit Kombinationen aus Benutzername/Kennwort gefüllt werden kann, mit denen Benutzer einer Website Konten mit der Website einrichten können. Um auf einen Dienst zuzugreifen, der den Mitgliedschaftsanbieter verwendet, muss sich ein Benutzer mit dem Benutzernamen und kennwort anmelden.

Hinweis

Sie müssen die Datenbank zuerst mit dem feature ASP.NET auffüllen, bevor ein WCF-Dienst sie zu Autorisierungszwecken verwenden kann.

Sie können auch das Mitgliedschaftsfeature verwenden, wenn Sie bereits über eine Mitgliedschaftsdatenbank von einer vorhandenen ASP.NET-Website verfügen und die gleichen Benutzer für die Verwendung Ihres Diensts aktivieren möchten, die mit denselben Benutzernamen und Kennwörtern autorisiert sind.

Weitere Informationen zur Verwendung des Mitgliedschaftsfeatures in einem WCF-Dienst finden Sie unter How to: Use the ASP.NET Membership Provider.

ASP.NET Rollenanbieter

Ein weiteres Feature von ASP.NET ist die Möglichkeit, die Autorisierung mithilfe von Rollen zu verwalten. Der ASP.NET Rollenanbieter ermöglicht es einem Entwickler, Rollen für Benutzer zu erstellen und jedem Benutzer eine Rolle oder Rollen zuzuweisen. Wie beim Mitgliedschaftsanbieter werden die Rollen und Zuweisungen in einer Datenbank gespeichert und können mit Tools gefüllt werden, die von einer bestimmten Implementierung des ASP.NET Rollenanbieters bereitgestellt werden. Wie bei der Mitgliedschaftsfunktion können WCF-Entwickler die Informationen in der Datenbank verwenden, um Dienstbenutzer nach Rollen zu autorisieren. Sie können z. B. den Rollenanbieter in Kombination mit dem PrincipalPermissionAttribute oben beschriebenen Zugriffssteuerungsmechanismus verwenden.

Sie können auch den ASP.NET Rollenanbieter verwenden, wenn Sie über eine ASP.NET Rollenanbieterdatenbank verfügen und denselben Satz von Regeln und Benutzerzuweisungen in Ihrem WCF-Dienst verwenden möchten.

Weitere Informationen zur Verwendung des Rollenanbieterfeatures finden Sie unter How to: Use the ASP.NET Role Provider with a Service.

Autorisierungs-Manager

Ein weiteres Feature kombiniert den Autorisierungs-Manager (AzMan) mit dem ASP.NET Rollenanbieter, um Clients zu autorisieren. Wenn ASP.NET einen Webdienst hosten, kann AzMan in die Anwendung integriert werden, sodass die Autorisierung für den Dienst über AzMan erfolgt. ASP.NET Rollen-Manager stellt eine API bereit, mit der Sie Anwendungsrollen verwalten, Benutzer aus Rollen hinzufügen und entfernen und die Rollenmitgliedschaft überprüfen können. Sie können jedoch nicht abfragen, ob ein Benutzer berechtigt ist, eine benannte Aufgabe oder einen benannten Vorgang auszuführen. AzMan ermöglicht es Ihnen, einzelne Vorgänge zu definieren und in Aufgaben zu kombinieren. Mit AZMan können Sie zusätzlich zu Rollenüberprüfungen auch überprüfen, ob ein Benutzer eine Aufgabe ausführen kann. Rollenzuweisung und Aufgabenautorisierung können außerhalb der Anwendung konfiguriert oder programmgesteuert innerhalb der Anwendung ausgeführt werden. Das AzMan-Verwaltungs-Snap-In Microsoft Management Console (MMC) ermöglicht Administratoren das Ändern der Aufgaben, die eine Rolle zur Laufzeit ausführen kann, und die Mitgliedschaft der einzelnen Benutzer in Rollen zu verwalten.

Sie können AzMan und den ASP.NET Rollenanbieter auch verwenden, wenn Sie bereits Zugriff auf eine vorhandene AzMan-Installation haben und Ihre Servicebenutzer mithilfe der Features der AzMan/Role Provider-Kombination autorisieren möchten.

Weitere Informationen zu AzMan und dem ASP.NET Rollenanbieter finden Sie unter How To: Use Authorization Manager (AzMan) with ASP.NET 2.0. Weitere Informationen zur Verwendung von AzMan und dem Rollenanbieter für WCF-Dienste finden Sie unter How to: Use the ASP.NET Authorization Manager Role Provider with a Service.

Identitätsmodell

Das Identitätsmodell ist eine Reihe von APIs, mit denen Sie Ansprüche und Richtlinien verwalten können, um Clients zu autorisieren. Mit dem Identitätsmodell können Sie jeden Anspruch untersuchen, der in Anmeldeinformationen enthalten ist, die der Aufrufer verwendet hat, um sich beim Dienst zu authentifizieren, die Ansprüche mit dem Satz von Richtlinien für den Dienst zu vergleichen und basierend auf dem Vergleich Zugriff zu gewähren oder zu verweigern.

Verwenden Sie das Identitätsmodell, wenn Sie eine genaue Kontrolle und die Möglichkeit zum Festlegen bestimmter Kriterien benötigen, bevor Sie Zugriff gewähren. Wenn beispielsweise PrincipalPermissionAttribute verwendet wird, ist das Kriterium einfach, dass die Identität des Benutzers authentifiziert ist und zu einer bestimmten Rolle gehört. Im Gegensatz dazu können Sie mithilfe des Identitätsmodells eine Richtlinie erstellen, die besagt, dass der Benutzer über 18 Jahre alt sein muss und über eine gültige Führerscheinlizenz verfügt, bevor sie ein Dokument anzeigen darf.

Ein Beispiel, in dem Sie von der anspruchsbasierten Zugriffssteuerung des Identitätsmodells profitieren können, ist die Verwendung von Verbundanmeldeinformationen im ausgegebenen Tokenszenario. Weitere Informationen zu Partnerverbund- und ausgestellten Token finden Sie unter "Partnerverbund" und "Ausgestellte Token".

Weitere Informationen zum Identitätsmodell finden Sie unter Verwalten von Ansprüchen und Autorisierung mit dem Identitätsmodell.

Siehe auch