<bericht> van <basicHttpBinding>
Definieert de instellingen voor beveiliging op berichtniveau van de <basicHttpBinding>.
<Configuratie>
<system.serviceModel>
<Bindings>
<basicHttpBinding>
<Bindend>
<Veiligheid>
<Bericht>
Syntax
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven
Kenmerken
Kenmerk | Beschrijving |
---|---|
algorithmSuite | Hiermee stelt u de algoritmen voor berichtversleuteling en sleutelterugloop in. Dit kenmerk is van het type SecurityAlgorithmSuite, waarmee de algoritmen en de sleutelgrootten worden opgegeven. Deze algoritmen worden toegewezen aan de algoritmen die zijn opgegeven in de specificatie Security Policy Language (WS-SecurityPolicy). De standaardwaarde is Basic256 . |
clientCredentialType | Hiermee geeft u het type referentie moet worden gebruikt bij het uitvoeren van clientverificatie met behulp van berichtgebaseerde beveiliging. De standaardwaarde is UserName . |
kenmerk clientCredentialType
Waarde | Beschrijving |
---|---|
UserName | - Vereist dat de client wordt geverifieerd bij de server met een gebruikersnaamreferentie. Deze referentie moet worden opgegeven met behulp van de <clientCredentials>. - WCF biedt geen ondersteuning voor het verzenden van een wachtwoordsamenvating of het afleiden van sleutels met behulp van wachtwoorden en het gebruik van dergelijke sleutels voor berichtbeveiliging. Daarom dwingt WCF af dat het transport wordt beveiligd met behulp van gebruikersnaamreferenties. Voor de basicHttpBinding moet hiervoor een SSL-kanaal worden ingesteld. |
Certificaat | Vereist dat de client wordt geverifieerd bij de server met behulp van een certificaat. De clientreferentie moet in dit geval worden opgegeven met behulp van <clientCredentials> en de <clientCertificate>. Bovendien moet de client bij het gebruik van de beveiligingsmodus voor berichten worden ingericht met het servicecertificaat. De servicereferentie in dit geval moet worden opgegeven met behulp van klasse ClientCredentials of ClientCredentials gedragselement en het opgeven van het servicecertificaat met behulp van het <serviceCertificaat>. |
Onderliggende elementen
Geen
Bovenliggende elementen
Element | Beschrijving |
---|---|
<Veiligheid> | Definieert de beveiligingsmogelijkheden voor de <basicHttpBinding>. |
Voorbeeld
In dit voorbeeld ziet u hoe u een toepassing implementeert die gebruikmaakt van de basisbeveiligingHttpBinding en berichtbeveiliging. In het volgende configuratievoorbeeld voor een service geeft de eindpuntdefinitie de basicHttpBinding op en verwijst naar een bindingsconfiguratie met de naam Binding1
. Het certificaat dat de service gebruikt om zichzelf bij de client te verifiëren, wordt ingesteld in de behaviors
sectie van het configuratiebestand onder het serviceCredentials
-element. De validatiemodus die van toepassing is op het certificaat dat de client gebruikt om zichzelf te verifiëren bij de service, wordt ook ingesteld in de behaviors
sectie onder het clientCertificate
-element.
Dezelfde bindings- en beveiligingsdetails worden opgegeven in het clientconfiguratiebestand.
<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>