Sdílet prostřednictvím


<message> of <netHttpBinding>

Definuje nastavení pro zabezpečení <na úrovni zpráv netHttpBinding>.

<Konfigurace>
  <System.servicemodel>
    <Vazby>
      <netHttpBinding>
        <Vazba>
          <Zabezpečení>
            <Zprávu>

Syntax

<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
         clientCredentialType="UserName/Certificate" />

Atributy a elementy

Následující části popisují atributy, podřízené a nadřazené elementy.

Atributy

Atribut Popis
algoritmusSuite Nastaví šifrování zpráv a algoritmy zalamování klíčů. Tento atribut je typu SecurityAlgorithmSuite, který určuje algoritmy a velikosti klíčů. Tyto algoritmy se mapují na algoritmy zadané ve specifikaci jazyka WS-SecurityPolicy (Security Policy Language).

Výchozí hodnota je Basic256.
clientCredentialType Určuje typ přihlašovacích údajů, které se mají použít při ověřování klientů pomocí zabezpečení založeného na zprávách. Výchozí formát je UserName.

atribut clientCredentialType

Hodnota Popis
Uživatelské jméno – Vyžaduje, aby byl klient ověřený na serveru pomocí přihlašovacích údajů UserName. Tyto přihlašovací údaje je potřeba zadat pomocí elementu .<clientCredentials>
– WCF nepodporuje odesílání hodnot hash hesel nebo odvozování klíčů pomocí hesel a používání takových klíčů pro zabezpečení zpráv. Proto WCF vynucuje, aby přenos byl zabezpečen při použití přihlašovacích údajů UserName. V případě basicHttpBindingvyžaduje nastavení kanálu SSL.
Certifikát Vyžaduje ověření klienta na serveru pomocí certifikátu. Přihlašovací údaje klienta je v tomto případě potřeba zadat pomocí <clientCredentials> a .<clientCertificate> Kromě toho je při použití režimu zabezpečení zpráv potřeba zřídit klienta s certifikátem služby. Přihlašovací údaje služby je v tomto případě potřeba zadat pomocí ClientCredentials elementu třídy nebo ClientCredentials chování a určení certifikátu služby pomocí elementu <serviceCertificate> vlastnosti serviceCredentials.

Podřízené elementy

Žádné

Nadřazené elementy

Element Popis
<security> – prvek <netHttpBinding> Definuje možnosti zabezpečení elementu <netHttpBinding> .

Příklad

Tato ukázka ukazuje, jak implementovat aplikaci, která používá základníhttpbinding a zabezpečení zpráv. V následujícím příkladu konfigurace pro službu definice koncového bodu určuje basicHttpBinding a odkazuje na konfiguraci vazby s názvem Binding1. Certifikát, který služba používá k ověření vůči klientovi, je nastaven v behaviors části konfiguračního souboru v elementu serviceCredentials . Režim ověřování, který se vztahuje na certifikát, který klient používá k ověření ve službě, je také nastaven v oddílu behaviors pod elementem clientCertificate .

Stejné podrobnosti o vazbě a zabezpečení jsou zadané v konfiguračním souboru klienta.

<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>

Viz také