ZugriffssteuerungsmechanismenAccess Control Mechanisms

Sie können den Zugriff auf mehrere Arten mit Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) kontrollieren.You can control access in several way with Windows Communication Foundation (WCF)Windows Communication Foundation (WCF). In diesem Thema werden kurz die verschiedenen Mechanismen besprochen und Vorschläge dazu unterbreitet, wann die einzelnen Mechanismen eingesetzt werden sollten. Dies soll Ihnen die Wahl des richtigen Mechanismus erleichtern.This topic briefly discusses the various mechanisms and provides suggestions on when to use each; it is intended to help you select the correct mechanism to use. Die Zugriffstechnologien sind in der Reihenfolge der Komplexität aufgelistet.The access technologies are listed in order of complexity. Die einfachste Technologie ist das PrincipalPermissionAttribute; die komplexeste ist das Identitätsmodell.The simplest is the PrincipalPermissionAttribute; the most complex is the Identity Model.

Zusätzlich zu diesen Mechanismen, die Identitätswechsel und Delegierung mit WCFWCF finden Delegierung und Identitätswechsel.In addition to these mechanisms, impersonation and delegation with WCFWCF is explained in Delegation and Impersonation.

PrincipalPermissionAttributePrincipalPermissionAttribute

Das PrincipalPermissionAttribute wird verwendet, um den Zugriff auf eine Dienstmethode einzuschränken.The PrincipalPermissionAttribute is used to restrict access to a service method. Wenn das Attribut auf eine Methode angewendet wird, kann es verwendet werden, um die Identität eines bestimmten Aufrufers oder dessen Mitgliedschaft in einer Windows-Gruppe oder ASP.NETASP.NET-Rolle anzufordern.When the attribute is applied to a method, it can be used to demand a specific caller's identity or membership in a Windows group or ASP.NETASP.NET role. Wenn der Client mit einem X.509-Zertifikat authentifiziert ist, erhält er eine primäre Identität, die aus dem Betreffnamen und dem Fingerabdruck des Zertifikats besteht.If the client is authenticated using an X.509 certificate, it is given a primary identity that consists of the subject name plus the thumbprint of the certificate.

Verwenden Sie das PrincipalPermissionAttribute, um den Zugriff auf Ressourcen auf dem Computer zu kontrollieren, auf dem der Dienst ausgeführt wird, sofern der Benutzer des Diensts immer zur selben Windows-Domäne gehört, auf der der Dienst ausgeführt wird.Use the PrincipalPermissionAttribute to control access to resources on the computer that the service is running on, and if the users of the service will always be part of the same Windows domain that the service is running on. Sie können ganz einfach Windows-Gruppen erstellen, die über festgelegte Zugriffsebenen verfügen (z. B. kein Zugriff, schreibgeschützter Zugriff oder Schreibzugriff).You can easily create Windows groups that have specified levels of access (such as none, read-only, or read and write).

Weitere Informationen zum Verwenden des Attributs finden Sie unter Vorgehensweise: Einschränken des Zugriffs mit der PrincipalPermissionAttribute-Klasse.For more information about using the attribute, see How to: Restrict Access with the PrincipalPermissionAttribute Class. Weitere Informationen zur Identität finden Sie unter -Dienstidentität und Authentifizierung.For more information about identity, see Service Identity and Authentication.

ASP.NET-MitgliedschaftsanbieterASP.NET Membership Provider

Eine Funktion von ASP.NETASP.NET ist der Mitgliedschaftsanbieter.A feature of ASP.NETASP.NET is the membership provider. Obwohl der Mitgliedschaftsanbieter technisch gesehen kein Mechanismus zur Zugriffskontrolle ist, ermöglicht er eine Kontrolle des Zugriffs auf den Dienst, indem er die Anzahl der möglichen Identitäten begrenzt, die auf die Endpunkte des Diensts zugreifen können.Even though the membership provider is not technically an access control mechanism, it allows controlling access to the service by limiting the set of possible identities that can access the service's endpoint. Die Mitgliedschaftsfunktion umfasst eine Datenbank, in die der Benutzername und das Kennwort eingegeben werden können, mit denen Benutzer einer Website Konten auf der Site einrichten können.The membership feature includes a database that can be populated with user name/password combinations that enable users of a Web site to establish accounts with the site. Um auf einen Dienst zuzugreifen, der den Mitgliedschaftsanbieter verwendet, muss sich der Benutzer mit seinem Benutzernamen und Kennwort anmelden.To access a service that uses the membership provider, a user must log on with his or her user name and password.

Hinweis

Sie müssen die Datenbank zunächst über die ASP.NETASP.NET-Funktion mit Daten füllen, bevor ein WCFWCF-Dienst sie für die Autorisierung verwenden kann.You must first populate the database using the ASP.NETASP.NET feature before a WCFWCF service can use it for authorization purposes.

Sie können die Mitgliedschaftsfunktion auch verwenden, wenn Sie bereits eine Mitgliedschaftsdatenbank von einer bestehenden ASP.NETASP.NET-Website haben und möchten, dass dieselben Benutzer mit denselben Benutzernamen und Kennwörtern Ihren Dienst nutzen können.You can also use the membership feature if you already have a membership database from an existing ASP.NETASP.NET Web site and you want to enable the same users to use your service, authorized with the same user names and passwords.

Weitere Informationen zur Verwendung der Mitgliedschaftsfunktion in einer WCFWCF -Diensts Vorgehensweise: Verwenden Sie den ASP.NET-Mitgliedschaftsanbieter.For more information about using the membership feature in a WCFWCF service, see How to: Use the ASP.NET Membership Provider.

ASP.NET-RollenanbieterASP.NET Role Provider

Eine weitere Funktion von ASP.NETASP.NET ist die Fähigkeit, Autorisierung mit Rollen zu verwalten.Another feature of ASP.NETASP.NET is the ability to manage authorization using roles. Der ASP.NETASP.NET-Rollenanbieter ermöglicht den Entwicklern, Rollen für Benutzer zu erstellen und jedem Benutzer eine oder mehrere Rollen zuzuweisen.The ASP.NETASP.NET role provider enables a developer to create roles for users and to assign each user to a role or roles. Wie beim Mitgliedschaftsanbieter werden die Rollen und Zuweisungen in einer Datenbank gespeichert und können mithilfe der Tools, die durch eine bestimmte Implementierung des ASP.NETASP.NET-Rollenanbieters bereitgestellt wurden, mit Daten gefüllt werden.As with the membership provider, the roles and assignments are stored in a database, and can be populated using tools provided by a particular implementation of the ASP.NETASP.NET role provider. Wie bei der Mitgliedschaftsfunktion können WCFWCF-Entwickler die Informationen in der Datenbank verwenden, um Dienstbenutzer nach Rollen zu autorisieren.As with the membership feature, WCFWCF developers can use the information in the database to authorize service users by roles. Beispielsweise können Sie den Rollenanbieter gemeinsam mit dem oben beschriebenen PrincipalPermissionAttribute-Mechanismus zur Zugriffskontrolle verwenden.They can, for example, use the role provider in combination with the PrincipalPermissionAttribute access control mechanism described above.

Sie können den ASP.NETASP.NET-Rollenanbieter auch verwenden, wenn Sie eine bestehende ASP.NETASP.NET-Rollenanbieterdatenbank haben und dieselben Regeln und Benutzerzuweisungen in Ihrem WCFWCF-Dienst nutzen möchten.You can also use the ASP.NETASP.NET role provider if you have an existing ASP.NETASP.NET role provider database and want to use the same set of rules and user assignments in your WCFWCF service.

Weitere Informationen zur Verwendung der rollenanbieterfunktion finden Sie unter wie: Verwenden des ASP.NET-Rollenanbieters bei einem Dienst.For more information about using the role provider feature, see How to: Use the ASP.NET Role Provider with a Service.

Autorisierungs-ManagerAuthorization Manager

Eine andere Funktion kombiniert den Autorisierungs-Manager (AzMan) mit dem ASP.NETASP.NET-Rollenanbieter, um Clients zu autorisieren.Another feature combines the Authorization Manager (AzMan) with the ASP.NETASP.NET role provider to authorize clients. Wenn ASP.NETASP.NET einen Webdienst hostet, kann AzMan so in die Anwendung integriert werden, dass die Autorisierung für den Dienst über AzMan erfolgt.When ASP.NETASP.NET hosts a Web service, AzMan can be integrated into the application so that authorization to the service is done through AzMan. Der ASP.NETASP.NET-Rollen-Manager bietet eine API, mit der Sie Anwendungsrollen verwalten, Benutzern Rollen hinzufügen und entziehen und Rollenmitgliedschaften überprüfen können. Sie können damit jedoch nicht abfragen, ob ein Benutzer befugt ist, eine Aufgabe oder einen Vorgang auszuführen.ASP.NETASP.NET role manager provides an API that enables you to manage application roles, add and remove users from roles, and check role membership, but it does not allow you to query whether a user is authorized to perform a named task or operation. AzMan ermöglicht es Ihnen, einzelne Vorgänge zu definieren und sie in Aufgaben zu kombinieren.AzMan allows you to define individual operations and combine them into tasks. Mit AZMan können Sie neben Rollenüberprüfungen auch feststellen, ob ein Benutzer eine Aufgabe ausführen kann.With AZMan, in addition to role checks, you can also check whether a user can perform a task. Rollenzuweisungen und Aufgabenautorisierungen können außerhalb der Anwendung konfiguriert oder programmgesteuert innerhalb der Anwendung ausgeführt werden.Role assignment and task authorization can be configured outside of the application or performed programmatically within the application. Das Snap-In der Microsoft Management Console (MMC) für die AzMan-Verwaltung ermöglicht Administratoren, die Aufgaben zu ändern, die eine Rolle während der Laufzeit ausführen kann, und die Rollenmitgliedschaft jedes Benutzers zu verwalten.The AzMan administration Microsoft Management Console (MMC) snap-in allows administrators to change the tasks a role can perform at run time and to manage each user's membership of roles.

Sie können AzMan und den ASP.NETASP.NET-Rollenanbieter auch verwenden, wenn Sie bereits über Zugriff auf eine bestehende AzMan-Installation verfügen und Ihre Dienstbenutzer über die Funktionen der AzMan/Rollenanbieter-Kombination autorisieren möchten.You can also use AzMan and the ASP.NETASP.NET role provider if you already have access to an existing AzMan installation and want to authorize your service users using the features of the AzMan/role provider combination.

Weitere Informationen zu AzMan und den ASP.NETASP.NET Rollenanbieters finden Sie unter How To: Verwendung Autorisierungs-Manager (AzMan) mit ASP.NET 2.0.For more information about AzMan and the ASP.NETASP.NET role provider, see How To: Use Authorization Manager (AzMan) with ASP.NET 2.0. Weitere Informationen zur Verwendung von AzMan und den Rollenanbieter für WCFWCF Services, finden Sie unter wie: Verwenden des Rollenanbieters für den ASP.NET-Autorisierungs-Manager bei einem Dienst.For more information about using AzMan and the role provider for WCFWCF services, see How to: Use the ASP.NET Authorization Manager Role Provider with a Service.

IdentitätsmodellIdentity Model

Das Identitätsmodell besteht aus einem Satz APIs, die Ihnen ermöglichen, Ansprüche und Richtlinien zu verwalten, um Clients zu autorisieren.The Identity Model is a set of APIs that enable you to manage claims and policies to authorize clients. Mit dem Identitätsmodell können Sie jeden Anspruch prüfen, der in den vom Benutzer zur Authentifizierung beim Dienst verwendeten Anmeldeinformationen enthalten ist. Anschließend können Sie die Ansprüche mit den Richtlinien für diesen Dienst vergleichen und den Zugriff entsprechend gewähren oder verweigern.With the Identity Model, you can examine every claim contained in credentials that the caller used to authenticate itself to the service, compare the claims to the set of policies for the service, and grant or deny access based on the comparison.

Verwenden Sie das Identitätsmodell, wenn Sie eine präzise Steuerung wünschen und bestimmte Kriterien festlegen möchten, bevor Sie den Zugriff gewähren.Use the Identity Model if you need fine control and the ability to set specific criteria before granting access. Wenn Sie z. B. das PrincipalPermissionAttribute verwenden, besteht das Kriterium ganz einfach darin, dass der Benutzer authentifiziert sein und zu einer bestimmten Rolle gehören muss.For example, when using the PrincipalPermissionAttribute, the criterion is simply that the identity of the user is authenticated and belongs to a specific role. Dagegen können Sie mit dem Identitätsmodell eine Richtlinie erstellen, die besagt, dass der Benutzer über 18 Jahre alt sein und einen gültigen Führerschein besitzen muss, bevor er ein Dokument anzeigen darf.In contrast, using the Identity Model, you can create a policy that states the user must be over 18 years of age and possesses a valid driver's license before being allowed to view a document.

Ein Beispiel für den Nutzen, den Ihnen die anspruchsbasierte Zugriffssteuerung des Identitätsmodells bieten kann, ist die Verwendung von Verbundanmeldeinformationen im Szenario für ausgestellte Token.One example where you can benefit from the Identity Model claim-based access control is when using federation credentials in the issued token scenario. Weitere Informationen zu den Verbund und ausgestellte Token, finden Sie unter Verbund und ausgestellte Token.For more information about federation and issued tokens, see Federation and Issued Tokens.

Weitere Informationen über das Identitätsmodell finden Sie unter Verwalten von Ansprüchen und Autorisierung mit dem Identitätsmodell.For more information about the Identity Model, see Managing Claims and Authorization with the Identity Model.

Siehe auchSee Also

PrincipalPermissionAttribute
Vorgehensweise: Einschränken des Zugriffs mit der PrincipalPermissionAttribute-KlasseHow to: Restrict Access with the PrincipalPermissionAttribute Class
Vorgehensweise: Verwenden des ASP.NET-Rollenanbieters mit einem DienstHow to: Use the ASP.NET Role Provider with a Service
Vorgehensweise: Verwenden des ASP.NET-Autorisierungs-Manager-Rollenanbieters mit einem DienstHow to: Use the ASP.NET Authorization Manager Role Provider with a Service
Verwalten von Ansprüchen und Autorisierung mit dem IdentitätsmodellManaging Claims and Authorization with the Identity Model
Delegierung und IdentitätswechselDelegation and Impersonation