Identitätswechsel und TransportsicherheitUsing Impersonation with Transport Security

Identitätswechsel ist die Fähigkeit einer Serveranwendung, die Identität des Clients anzunehmen.Impersonation is the ability of a server application to take on the identity of the client. Dienste greifen bei der Validierung des Zugriffs auf Ressourcen häufig auf den Identitätswechsel zurück.It is common for services to use impersonation when validating access to resources. Die Serveranwendung wird unter einem Dienstkonto ausgeführt. Wenn der Server eine Clientverbindung akzeptiert, nimmt er die Identität des Clients an, das heißt, Zugriffsvalidierungen werden mit den Anmeldeinformationen des Clients durchgeführt.The server application runs using a service account, but when the server accepts a client connection, it impersonates the client so that access checks are performed using the client's credentials. Bei der Transportsicherheit handelt es sich um einen Mechanismus, mit dem Anmeldeinformationen übergeben und die Kommunikation mit diesen Anmeldeinformationen gesichert werden können.Transport security is a mechanism both for passing credentials and securing communication using those credentials. In diesem Thema wird die Verwendung der Transportsicherheit mit der Identitätswechsel-Funktion in Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) beschrieben.This topic describes using transport security in Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) with the impersonation feature. Weitere Informationen finden Sie unterFor more information aboutIdentitätswechsel mit nachrichtensicherheit, finden Sie unter Delegierung und Identitätswechsel. impersonation using message security, see Delegation and Impersonation.

Die fünf Ebenen des IdentitätswechselsFive Impersonation Levels

Die Transportsicherheit nutzt fünf Ebenen des Identitätswechsels, die in der folgenden Tabelle beschrieben werden.Transport security makes use of five levels of impersonation, as described in the following table.

Ebene des IdentitätswechselsImpersonation level BeschreibungDescription
KeinerNone Die Serveranwendung versucht nicht, die Identität des Clients anzunehmen.The server application does not attempt to impersonate the client.
AnonymAnonymous Die Serveranwendung kann mit den Anmeldeinformationen des Clients Zugriffsüberprüfungen durchführen, erhält jedoch keine Informationen über die Identität des Clients.The server application can perform access checks against the client's credentials, but does not receive any information about the client's identity. Diese Ebene des Identitätswechsels ist nur sinnvoll bei einer computerinternen Kommunikation, z. B. bei Named Pipes (benannten Pipes).This impersonation level is meaningful only for on-machine communication, such as named pipes. Die Verwendung von Anonymous mit einer Remoteverbindung erhöht die Ebene des Identitätswechsels auf Identifizieren.Using Anonymous with a remote connection promotes the impersonation level to Identify.
Identifizieren (Identify)Identify Die Serveranwendung kennt die Identität des Clients und kann mit den Anmeldeinformationen des Clients Zugriffsvalidierungen durchführen, sie kann jedoch nicht die Identität des Clients annehmen.The server application knows the client's identity and can perform access validation against the client's credentials, but cannot impersonate the client. Identifizieren ist die standardmäßig in WCFWCF bei SSPI-Anmeldeinformationen verwendete Ebene des Identitätswechsels, es sei denn, der Tokenaussteller stellt eine andere Identitätswechselebene bereit.Identify is the default impersonation level used with SSPI credentials in WCFWCF unless the token provider provides a different impersonation level.
IdentitätswechselImpersonate Die Serveranwendung kann Zugriffsüberprüfungen durchführen und auf dem Servercomputer als Client auf Ressourcen zugreifen.The server application can access resources on the server machine as the client in addition to performing access checks. Die Serveranwendung kann jedoch nicht mit der Identität des Clients auf Ressourcen auf Remotecomputern zugreifen, da das Identitätswechsel-Token über keine Anmeldeinformationen für das Netzwerk verfügt.The server application cannot access resources on remote machines using the client's identity because the impersonated token does not have network credentials
delegateDelegate Bei der Identitätswechselebene Delegieren verfügt die Serveranwendung über dieselben Möglichkeiten wie bei der Ebene Impersonate und kann zudem unter der Identität des Clients auf Remotecomputer zugreifen und die Identität an andere Anwendungen übergeben.In addition to having the same capabilities as Impersonate, the Delegate impersonation level also enables the server application to access resources on remote machines using the client's identity and to pass the identity to other applications.

Wichtige das Domänenkonto Server markiert werden muss als vertrauenswürdig für die Delegierung auf dem Domänencontroller mit diesen zusätzlichen Funktionen verwenden.Important The server domain account must be marked as trusted for delegation on the domain controller to use these additional features. Diese Ebene des Identitätswechsels kann nicht mit als vertraulich eingestuften Clientdomänenkonten verwendet werden.This level of impersonation cannot be used with client domain accounts marked as sensitive.

Die transportsicherheit am häufigsten verwendeten Ebenen sind Identify und Impersonate.The levels most commonly used with transport security are Identify and Impersonate. Die Ebenen None und Anonymous sind nicht für die üblichen Verwendungszwecke zu empfehlen, und bei vielen Transporten werden diese Ebenen nicht für die Authentifizierung unterstützt.The levels None and Anonymous are not recommended for typical use, and many transports do not support using those levels with authentication. Die Delegate-Ebene ist eine leistungsstarke Funktion, die nur mit großer Sorgfalt verwendet werden sollte.The Delegate level is a powerful feature that should be used with care. Nur vertrauenswürdigen Serveranwendungen sollte die Berechtigung gegeben werden, Anmeldeinformationen delegieren zu können.Only trusted server applications should be given the permission to delegate credentials.

Damit der Identitätswechsel mit den Ebenen Impersonate oder Delegate verwendet werden kann, muss die Serveranwendung die SeImpersonatePrivilege-Berechtigung aufweisen.Using impersonation at the Impersonate or Delegate levels requires the server application to have the SeImpersonatePrivilege privilege. Eine Anwendung verfügt standardmäßig über diese Berechtigung, wenn sie unter einem Konto in der Gruppe der Administratoren oder unter einem Konto mit einer Dienst-SID (Netzwerkdienst, lokaler Dienst oder lokales System) ausgeführt wird.An application has this privilege by default if it is running on an account in the Administrators group or on an account with a Service SID (Network Service, Local Service, or Local System). Der Identitätswechsel erfordert keine gegenseitige Authentifizierung von Client und Server.Impersonation does not require mutual authentication of the client and server. Einige Authentifizierungsschemas, die einen Identitätswechsel unterstützen, wie NTLM, können nicht mit einer gegenseitigen Authentifizierung verwendet werden.Some authentication schemes that support impersonation, such as NTLM, cannot be used with mutual authentication.

Transportspezifische Aspekte beim IdentitätswechselTransport-Specific Issues with Impersonation

Die Auswahl des Transports in WCFWCF beeinflusst die möglichen Optionen für den Identitätswechsel.The choice of a transport in WCFWCF affects the possible choices for impersonation. In diesem Abschnitt werden die Aspekte beschrieben, die sich auf Standard-HTTP- und Named Pipe-Transporte in WCFWCF auswirken.This section describes issues affecting the standard HTTP and named pipe transports in WCFWCF. Benutzerspezifische Transporte haben ihre eigenen Einschränkungen in Bezug auf die Unterstützung eines Identitätswechsels.Custom transports have their own restrictions on support for impersonation.

Named Pipe-TransportNamed Pipe Transport

Die folgenden Elemente werden mit dem Named Pipe-Transport verwendet:The following items are used with the named pipe transport:

  • Der Named Pipe-Transport ist nur für die Verwendung auf dem lokalen Computer bestimmt.The named pipe transport is intended for use only on the local machine. Der Named Pipe-Transport in WCFWCF lässt explizit keine computerübergreifenden Verbindungen zu.The named pipe transport in WCFWCF explicitly disallows cross-machine connections.

  • Named Pipes können nicht mit den Identitätswechselebenen Impersonate und Delegate verwendet werden.Named pipes cannot be used with the Impersonate or Delegate impersonation level. Die Named Pipe kann bei diesen Identitätswechselebenen keine computerinterne Kommunikation garantieren.The named pipe cannot enforce the on-machine guarantee at these impersonation levels.

Weitere Informationen finden Sie unterFor more information aboutbenannte Pipes, finden Sie unter Wählen eines Transports. named pipes, see Choosing a Transport.

HTTP-TransportHTTP Transport

Die Bindungen, die den HTTP-Transport verwenden (WSHttpBinding und BasicHttpBinding) mehrere Authentifizierungsschemen zu unterstützen, wie in beschrieben Grundlegendes zu HTTP-Authentifizierung.The bindings that use the HTTP transport (WSHttpBinding and BasicHttpBinding) support several authentication schemes, as explained in Understanding HTTP Authentication. Die unterstützte Ebene des Identitätswechsels ist abhängig vom Authentifizierungsschema.The impersonation level supported depends on the authentication scheme. Die folgenden Elemente werden mit dem HTTP-Transport verwendet:The following items are used with the HTTP transport:

  • Das Anonymous-Authentifizierungsschema ignoriert den Identitätswechsel.The Anonymous authentication scheme ignores impersonation.

  • Die Basic -Authentifizierungsschema unterstützt nur die Delegate Ebene.The Basic authentication scheme supports only the Delegate level. Alle niedrigeren Identitätswechselebenen werden hochgestuft.All lower impersonation levels are upgraded.

  • Das Digest-Authentifizierungsschema unterstützt nur die Impersonate-Ebene und die Delegate-Ebene.The Digest authentication scheme supports only the Impersonate and Delegate levels.

  • Das NTLM-Authentifizierungsschema, das entweder direkt oder durch Aushandlung ausgewählt werden kann, unterstützt nur die Delegate-Ebene auf dem lokalen Computer.The NTLM authentication scheme, selectable either directly or through negotiation, supports only the Delegate level on the local machine.

  • Das Kerberos-Authentifizierungsschema, das nur durch Aushandlung ausgewählt werden kann, kann mit allen unterstützten Ebenen des Identitätswechsels verwendet werden.The Kerberos authentication scheme, which can only be selected through negotiation, can be used with any supported impersonation level.

Weitere Informationen finden Sie unterFor more information aboutder HTTP-Transport, finden Sie unter Wählen eines Transports. the HTTP transport, see Choosing a Transport.

Siehe auchSee Also

Delegierung und IdentitätswechselDelegation and Impersonation
AutorisierungAuthorization
Vorgehensweise: Annahme der Clientidentität durch einen DienstHow to: Impersonate a Client on a Service
Grundlagen der HTTP-AuthentifizierungUnderstanding HTTP Authentication