Grundlagen der HTTP-AuthentifizierungUnderstanding HTTP Authentication

Die Authentifizierung besteht in der Identifizierung, ob ein Client berechtigt ist, auf eine Ressource zuzugreifen.Authentication is the process of identifying whether a client is eligible to access a resource. Das HTTP-Protokoll unterstützt die Authentifizierung zum Aushandeln des Zugriffs auf eine sichere Ressource.The HTTP protocol supports authentication as a means of negotiating access to a secure resource.

Die anfängliche Anforderung von einem Client ist normalerweise eine anonyme Anforderung, die keine Authentifizierungsinformationen enthält.The initial request from a client is typically an anonymous request, not containing any authentication information. Die HTTP-Serveranwendungen können die anonyme Anforderung ablehnen, während angegeben wird, dass eine Authentifizierung erforderlich ist.HTTP server applications can deny the anonymous request while indicating that authentication is required. Die Serveranwendung sendet WWW-Authentifizierungsheader, um die unterstützten Authentifizierungsschemen anzugeben.The server application sends WWW-Authentication headers to indicate the supported authentication schemes. Dieses Dokument beschreibt mehrere Authentifizierungsschemen für HTTP und erläutert deren Unterstützung in Windows Communication Foundation (WCF).This document describes several authentication schemes for HTTP and discusses their support in Windows Communication Foundation (WCF).

HTTP-AuthentifizierungsschemenHTTP Authentication Schemes

Der Server kann mehrere Authentifizierungsschemen für den Client zur Auswahl angeben.The server can specify multiple authentication schemes for the client to choose from. Die folgende Tabelle beschreibt einige der Authentifizierungsschemas, die häufig in Windows-Anwendungen gefunden werden.The following table describes some of the authentication schemes commonly found in Windows applications.

AuthentifizierungsschemaAuthentication Scheme BeschreibungDescription
AnonymAnonymous Eine anonyme Anforderung enthält keine Authentifizierungsinformationen.An anonymous request does not contain any authentication information. Dies entspricht der Freigabe des Zugriffs auf die Ressource für alle Benutzer.This is equivalent to granting everyone access to the resource.
StandardBasic Die Basic-Authentifizierung sendet eine Base64-codierte Zeichenfolge mit einem Benutzernamen und einem Kennwort für den Client.Basic authentication sends a Base64-encoded string that contains a user name and password for the client. Base64 ist keine Verschlüsselung und kann wie der Versand des Benutzernamens und des Kennworts im Klartext verstanden werden.Base64 is not a form of encryption and should be considered the same as sending the user name and password in clear text. Wenn eine Ressource geschützt werden muss, sollten Sie möglicherweise ein anderes Authentifizierungsschema als die Basic-Authentifizierung verwenden.If a resource needs to be protected, strongly consider using an authentication scheme other than basic authentication.
DigestDigest Die Hashwertauthentifizierung ist ein Abfrage/Rückmeldungsschema, das die Basic-Authentifizierung ersetzen soll.Digest authentication is a challenge-response scheme that is intended to replace Basic authentication. Der Server sendet eine Zeichenfolge zufälliger Daten bezeichnet eine Nonce als eine Aufforderung an den Client.The server sends a string of random data called a nonce to the client as a challenge. Der Client reagiert mit einem Hash, das neben anderen Informationen den Benutzernamen, das Kennwort und die Nonce enthält.The client responds with a hash that includes the user name, password, and nonce, among additional information. Die Komplexität dieses Austauschs und der Datenhash erschweren die Wiederverwendung der Benutzeranmeldeinformationen mit diesem Authentifizierungsschema.The complexity this exchange introduces and the data hashing make it more difficult to steal and reuse the user's credentials with this authentication scheme.

Für die Hashwertauthentifizierung ist die Verwendung von Windows-Domänenkonten erforderlich.Digest authentication requires the use of Windows domain accounts. Der Digest Bereich ist der Windows-Domänenname.The digest realm is the Windows domain name. Aus diesem Grund können Sie keinen Server unter einem Betriebssystem, das keine Windows-Domänen, z. B. Windows XP Home Edition mit Digest-Authentifizierung unterstützt.Therefore, you cannot use a server running on an operating system that does not support Windows domains, such as Windows XP Home Edition, with Digest authentication. Umgekehrt muss ein Domänenkonto explizit während der Authentifizierung angegeben werden, wenn der Client unter einem Betriebssystem ausgeführt wird, das keine Windows-Domänen unterstützt.Conversely, when the client runs on an operating system that does not support Windows domains, a domain account must be explicitly specified during the authentication.
NTLMNTLM Die NT LAN Manager (NTLM)-Authentifizierung ist ein Abfrage/Rückmeldungsschema, das eine sicherere Variante der Digest-Authentifizierung darstellt.NT LAN Manager (NTLM) authentication is a challenge-response scheme that is a securer variation of Digest authentication. NTLM verwendet die Windows-Anmeldeinformationen, um die Abfragedaten anstelle des unverschlüsselten Benutzernamens und Kennworts zu transformieren.NTLM uses Windows credentials to transform the challenge data instead of the unencoded user name and password. Die NTLM-Authentifizierung erfordert mehrere Austausche zwischen dem Client und dem Server.NTLM authentication requires multiple exchanges between the client and server. Der Server sowie dazwischen liegende Proxys müssen beständige Verbindungen unterstützen, um die Authentifizierung erfolgreich abzuschließen.The server and any intervening proxies must support persistent connections to successfully complete the authentication.
NegotiateNegotiate Beim Aushandeln der Authentifizierung wird automatisch, je nach Verfügbarkeit, zwischen dem Kerberos-Protokoll und der NTLM-Authentifizierung gewählt.Negotiate authentication automatically selects between the Kerberos protocol and NTLM authentication, depending on availability. Das Kerberos-Protokoll wird verwendet, wenn es zur Verfügung steht, anderenfalls wird versucht NTML zu verwenden.The Kerberos protocol is used if it is available; otherwise, NTLM is tried. Die Kerberos-Authentifizierung stellt eine wesentliche Verbesserung der NTLM-Authentifizierung dar.Kerberos authentication significantly improves upon NTLM. Die Kerberos-Authentifizierung ist schneller als NTLM und ermöglicht den Einsatz einer gegenseitigen Authentifizierung und die Weiterleitung der Anmeldeinformationen an Remote-Computer.Kerberos authentication is both faster than NTLM and allows the use of mutual authentication and delegation of credentials to remote machines.
Windows Live IDWindows Live ID Der zugrunde liegende Windows-HTTP-Dienst umfasst die Authentifizierung mit Verbundprotokollen.The underlying Windows HTTP service includes authentication using federated protocols. Allerdings unterstützen die standard-HTTP-Transporte in WCF nicht die Verwendung von verbundauthentifizierungsschemen wie Microsoft Windows Live ID.However, the standard HTTP transports in WCF do not support the use of federated authentication schemes, such as Microsoft Windows Live ID. Support für diese Funktion steht derzeit durch die Verwendung der Nachrichtensicherheit zur Verfügung.Support for this feature is currently available through the use of message security. Weitere Informationen finden Sie unter Verbund und ausgestellte Token.For more information, see Federation and Issued Tokens.

Auswählen eines AuthentifizierungsschemasChoosing an Authentication Scheme

Bei potenziellen Authentifizierungsschemen für einen HTTP-Server müssen u. a. die folgenden Aspekte beachtet werden:When selecting the potential authentication schemes for an HTTP server, a few items to consider include the following:

  • Überprüfen Sie, ob die Ressourcen geschützt werden müssen.Consider whether the resource needs to be protected. Für die HTTP-Authentifizierung müssen mehr Daten übertragen werden, zudem kann die Interoperabilität mit Clients eingeschränkt werden.Using HTTP authentication requires transmitting more data and can limit interoperability with clients. Lassen Sie den anonymen Zugriff auf Ressourcen zu, die nicht geschützt werden müssen.Allow anonymous access to resources that do not need to be protected.

  • Wenn die Ressource geschützt werden muss, überlegen Sie, welche Authentifizierungsschemen die gewünschte Sicherheitsstufe bieten.If the resource needs to be protected, consider which authentication schemes provide the required level of security. Das "schwächste", hier erläuterte Standardauthentifizierungsschema ist die Basic-Authentifizierung.The weakest standard authentication scheme discussed here is Basic authentication. Die Basic-Authentifizierung schützt nicht die Benutzeranmeldeinformationen.Basic authentication does not protect the user's credentials. Das "stärkste" Standardauthentifizierungsschema ist die Negotiate-Authentifizierung, die zum Kerberos-Protokoll führt.The strongest standard authentication scheme is Negotiate authentication, resulting in the Kerberos protocol.

  • Ein Server sollte kein Schema enthalten (in den WWW-Authentifizierungsheadern), das die geschützten Ressourcen nicht akzeptieren bzw. angemessen sichern kann.A server should not present (in the WWW-Authentication headers) any scheme that it is not prepared to accept or that does not adequately secure the protected resource. Clients können aus den unterschiedlichen Authentifizierungsschemen des Servers wählen.Clients are free to choose between any of the authentication schemes the server presents. Einige Clients wählen standardmäßig ein schwaches Authentifizierungsschema oder das erste Authentifizierungsschema in der Liste des Servers.Some clients default to a weak authentication scheme or the first authentication scheme in the server's list.

Siehe auchSee Also

Übersicht über die TransportsicherheitTransport Security Overview
Verwenden von Identitätswechsel mit TransportsicherheitUsing Impersonation with Transport Security
Delegierung und IdentitätswechselDelegation and Impersonation