<meddelande i><netHttpBinding>
Definierar inställningarna för säkerhet på meddelandenivå för <netHttpBinding>.
<Konfiguration>
<system.serviceModel>
<Bindningar>
<netHttpBinding>
<Bindande>
<Säkerhet>
<Meddelande>
Syntax
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Attribut och element
I följande avsnitt beskrivs attribut, underordnade element och överordnade element
Attribut
Attribut | Beskrivning |
---|---|
algorithmSuite | Anger algoritmerna för meddelandekryptering och nyckelomslutning. Det här attributet är av typen SecurityAlgorithmSuite, som anger algoritmerna och nyckelstorlekarna. Dessa algoritmer mappas till de som anges i specifikationen Security Policy Language (WS-SecurityPolicy). Standardvärdet är Basic256 . |
clientCredentialType | Anger vilken typ av autentiseringsuppgift som ska användas vid klientautentisering med hjälp av meddelandebaserad säkerhet. Standardvärdet är UserName . |
clientCredentialType-attribut
Värde | Beskrivning |
---|---|
Användarnamn | – Kräver att klienten autentiseras på servern med autentiseringsuppgifter för Användarnamn. Den här autentiseringsuppgiften måste anges med elementet <clientCredentials > .- WCF har inte stöd för att skicka lösenordssammandrag eller härleda nycklar med hjälp av lösenord och använda sådana nycklar för meddelandesäkerhet. Därför framtvingar WCF att transporten skyddas när autentiseringsuppgifterna för Användarnamn används. basicHttpBinding För kräver detta att du konfigurerar en SSL-kanal. |
Certifikat | Kräver att klienten autentiseras mot servern med hjälp av ett certifikat. Klientens autentiseringsuppgifter i det här fallet måste anges med och <clientCertificate clientCredentials <>>. När du använder meddelandesäkerhetsläget måste klienten dessutom etableras med tjänstcertifikatet. Tjänstautentiseringsuppgifterna i det här fallet måste anges med hjälp av ClientCredentials klass- eller ClientCredentials beteendeelementet och ange tjänstcertifikatet med hjälp <av serviceCertificate-elementet> i serviceCredentials. |
Underordnade element
Ingen
Överordnade element
Element | Beskrivning |
---|---|
<security > element i <netHttpBinding > |
Definierar säkerhetsfunktionerna för elementet <netHttpBinding > . |
Exempel
Det här exemplet visar hur du implementerar ett program som använder basicHttpBinding och meddelandesäkerhet. I följande konfigurationsexempel för en tjänst anger slutpunktsdefinitionen basicHttpBinding och refererar till en bindningskonfiguration med namnet Binding1
. Certifikatet som tjänsten använder för att autentisera sig mot klienten anges i avsnittet i behaviors
konfigurationsfilen under elementet serviceCredentials
. Valideringsläget som gäller för certifikatet som klienten använder för att autentisera sig för tjänsten anges också i behaviors
avsnittet under elementet clientCertificate
.
Samma bindning och säkerhetsinformation anges i klientkonfigurationsfilen.
<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>