Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Definiert die Einstellungen für die Sicherheit auf Nachrichtenebene des <basicHttpBinding>.
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding>
<security>
<message>
Syntax
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Attribute und Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
| algorithmSuite | Legt die Nachrichtenverschlüsselung und Schlüsselumbruchalgorithmen fest. Dieses Attribut ist vom Typ SecurityAlgorithmSuite, der die Algorithmen und die Schlüsselgrößen angibt. Diese Algorithmen entsprechen denen, die in der Spezifikation der Sicherheitsrichtliniensprache (WS-SecurityPolicy) angegeben sind. Der Standardwert ist Basic256. |
| clientCredentialType | Gibt den Typ der Anmeldeinformationen an, die bei der Clientauthentifizierung mithilfe der nachrichtenbasierten Sicherheit verwendet werden sollen. Der Standardwert lautet UserName. |
clientCredentialType-Attribut
| Wert | Description |
|---|---|
| Nutzername | – Erfordert, dass der Client mit einer UserName-Anmeldeinformationen auf dem Server authentifiziert wird. Diese Anmeldeinformationen müssen mithilfe der <Clientanmeldeinformationen> angegeben werden. – WCF unterstützt nicht das Senden eines Kennwortdigests oder das Ableiten von Schlüsseln mithilfe von Kennwörtern und die Verwendung solcher Schlüssel für die Nachrichtensicherheit. Daher erzwingt WCF, dass der Transport bei Verwendung von UserName-Anmeldeinformationen gesichert wird. Für diesen basicHttpBindingFall muss ein SSL-Kanal eingerichtet werden. |
| Certificate | Erfordert, dass der Client mithilfe eines Zertifikats auf dem Server authentifiziert wird. Die Clientanmeldeinformationen in diesem Fall müssen mithilfe von <ClientCredentials> und clientCertificate<> angegeben werden. Darüber hinaus muss der Client bei Verwendung des Nachrichtensicherheitsmodus mit dem Dienstzertifikat bereitgestellt werden. Die Dienstanmeldeinformationen in diesem Fall müssen mithilfe des ClientCredentials Klassen- oder ClientCredentials Verhaltenselements angegeben und das Dienstzertifikat mit dem <ServiceCertificate> angegeben werden. |
Untergeordnete Elemente
Nichts
Übergeordnete Elemente
| Element | Description |
|---|---|
| <Sicherheit> | Definiert die Sicherheitsfunktionen für das <basicHttpBinding>. |
Example
In diesem Beispiel wird veranschaulicht, wie Eine Anwendung implementiert wird, die die grundlegendeHttpBinding- und Nachrichtensicherheit verwendet. Im folgenden Konfigurationsbeispiel für einen Dienst gibt die Endpunktdefinition die basicHttpBinding an und verweist auf eine Bindungskonfiguration mit dem Namen Binding1. Das Zertifikat, das der Dienst zum Authentifizieren für den Client verwendet, wird im behaviors Abschnitt der Konfigurationsdatei unter dem serviceCredentials Element festgelegt. Der Überprüfungsmodus, der für das Zertifikat gilt, das der Client zum Authentifizieren des Diensts verwendet, wird auch im behaviors Abschnitt unter dem clientCertificate Element festgelegt.
Die gleichen Bindungs- und Sicherheitsdetails werden in der Clientkonfigurationsdatei angegeben.
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service -->
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<!-- This configuration defines the SecurityMode as Message and
the clientCredentialType as Certificate. -->
<binding name="Binding1">
<security mode = "Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
<!-- The serviceCredentials behavior allows one to define a service certificate.
A service certificate is used by a client to authenticate the service and provide message protection.
This configuration references the "localhost" certificate installed during the setup instructions. -->
<serviceCredentials>
<serviceCertificate findValue="localhost"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
<clientCertificate>
<!-- Setting the certificateValidationMode to PeerOrChainTrust means that if the certificate
is in the user's Trusted People store, then it will be trusted without performing a
validation of the certificate's issuer chain. This setting is used here for convenience so that the
sample can be run without having to have certificates issued by a certification authority (CA).
This setting is less secure than the default, ChainTrust. The security implications of this
setting should be carefully considered before using PeerOrChainTrust in production code. -->
<authentication certificateValidationMode="PeerOrChainTrust" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>