Transportsicherheit mit Standardauthentifizierung
Die folgende Abbildung zeigt einen Windows Communication Foundation (WCF)-Dienst und -Client. Der Server benötigt ein gültiges X.509-Zertifikat, das für Secure Sockets Layer (SSL) verwendet werden kann, und die Clients müssen das Zertifikat des Servers als vertrauenswürdig ansehen. Außerdem verfügt der Webdienst bereits über eine SSL-Implementierung, die Sie verwenden können. Weitere Informationen dazu, wie Sie die Standardauthentifizierung unter Internetinformationsdienste (IIS) aktivieren, finden Sie unter https://go.microsoft.com/fwlink/?LinkId=83822 (möglicherweise in englischer Sprache).
Merkmal | Beschreibung |
---|---|
Sicherheitsmodus |
Transport |
Interoperabilität |
Mit vorhandenen Webdienstclients und Diensten |
Authentifizierung (Server) Authentifizierung (Client) |
Ja (mithilfe von HTTPS) Ja (mithilfe von Benutzername/Kennwort) |
Integrität |
Ja |
Vertraulichkeit |
Ja |
Transport |
HTTPS |
Bindung |
Dienst
Der folgende Code und die Konfiguration werden unabhängig voneinander ausgeführt. Führen Sie einen der folgenden Schritte aus:
- Erstellen Sie einen separaten Dienst, indem Sie den Code ohne Konfiguration verwenden.
- Erstellen Sie mit der angegebenen Konfiguration einen Dienst, aber definieren Sie keine Endpunkte.
Code
Der folgende Code zeigt, wie Sie einen Dienstendpunkt erstellen, der zur Sicherstellung der Übertragungssicherheit einen Benutzernamen und ein Kennwort für die Windows-Domäne verwendet. Beachten Sie, dass der Dienst ein X.509-Zertifikat erfordert, um den Client zu authentifizieren. Weitere Informationen finden Sie unter Verwenden von Zertifikaten und Gewusst wie: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat.
Konfiguration
Der folgende Code konfiguriert einen Dienst, um die Standardauthentifizierung mit der Sicherheit auf Transportebene zu verwenden:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="UsernameWithTransport">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="BasicAuthentication.Calculator">
<endpoint address="https://localhost/Calculator"
binding="wsHttpBinding"
bindingConfiguration="UsernameWithTransport"
name="BasicEndpoint"
contract="BasicAuthentication.ICalculator" />
</service>
</services>
</system.serviceModel>
</configuration>
Client
Code
Der folgende Code zeigt den Clientcode, der den Benutzernamen und das Kennwort enthält. Beachten Sie, dass der Benutzer einen gültigen Windows-Benutzernamen und ein Kennwort angeben muss. Der Code zum Zurückgeben des Benutzernamens und des Kennworts ist hier nicht gezeigt. Verwenden Sie ein Dialogfeld oder ein anderes Oberflächenelement, um die Informationen vom Benutzer abzufragen.
Tipp
Sie können den Benutzernamen und das Kennwort nur mithilfe von Code festlegen.
Konfiguration
Der folgende Code zeigt die Clientkonfiguration.
Tipp
Sie können die Konfiguration nicht verwenden, um den Benutzernamen und das Kennwort festzulegen. Die hier gezeigte Konfiguration muss mithilfe von Code erweitert werden, um den Benutzernamen und das Kennwort festzulegen.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_ICalculator" >
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://machineName/Calculator"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_ICalculator"
contract="ICalculator"
name="WSHttpBinding_ICalculator" />
</client>
</system.serviceModel>
</configuration>
Siehe auch
Aufgaben
Gewusst wie: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat
Referenz
ClientCredentials
UserNamePasswordClientCredential
Konzepte
Verwenden von Zertifikaten
Sicherheitsübersicht