다음을 통해 공유


방법: WSE 3.0 클라이언트와 상호 운용하도록 WCF 서비스 구성

WCF(Windows Communication Foundation) 서비스는 WCF 서비스가 2004년 8월 버전의 WS-Addressing 사양을 사용하도록 구성된 경우 Microsoft .NET 클라이언트용 WSE(Web Services Enhancements) 3.0과 유선 수준으로 호환됩니다.

WCF 서비스가 WSE 3.0 클라이언트와 상호 운용하도록 하려면

  1. WCF 서비스의 사용자 지정 바인딩을 정의합니다.

    2004년 8월 버전의 WS-Addressing 사양을 메시지 인코딩에 사용하도록 지정하려면 사용자 지정 바인딩을 만들어야 합니다.

    1. customBinding Element 자식을 서비스 구성 파일의 <Bindings>에 추가합니다.

    2. binding elementcustomBinding Element에 추가하고 name 특성을 설정하여 바인딩의 이름을 지정합니다.

    3. Security element 자식을 binding element에 추가하여, 인증 모드와 메시지 보안에 사용되는 WS-Security 사양 버전(WSE 3.0과 호환 가능)을 지정합니다.

      인증 모드를 설정하려면 Security elementauthenicationMode 특성을 설정합니다. 인증 모드는 대체로 WSE 3.0의 턴키 보안 어설션에 해당합니다. 다음 표에는 WCF 인증 모드와 WSE 3.0 턴키 보안 어설션이 매핑되어 있습니다.

      WCF 인증 모드 WSE 3.0 턴키 보안 어설션

      AnonymousForCertificate

      anonymousForCertificateSecurity

      Kerberos

      kerberosSecurity

      MutualCertificate

      mutualCertificate10Security*

      MutualCertificate

      mutualCertificate11Security*

      UserNameOverTransport

      usernameOverTransportSecurity

      UserNameForCertificate

      usernameForCertificateSecurity

      * mutualCertificate10SecuritymutualCertificate11Security 턴키 보안 어설션 간의 주요 차이점은 SOAP 메시지 보안을 위해 WSE에서 사용하는 WS-Security 사양 버전입니다. mutualCertificate10Security에는 WS-Security 1.0이 사용되는 반면, mutualCertificate11Security에는 WS-Security 1.1이 사용됩니다. WCF에서는 WS-Security 사양 버전이 Security elementmessageSecurityVersion 특성에 지정됩니다.

      SOAP 메시지 보안에 사용할 WS-Security 사양 버전을 설정하려면 Security elementmessageSecurityVersion 특성을 설정합니다. WSE 3.0과 상호 운용하려면 messageSecurityVersion 특성의 값을 WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10으로 설정합니다.

    4. textMessageEncoding element를 추가하여 WCF에서 2004년 8월 버전의 WS-Addressing 사양을 사용하도록 지정하고 해당 값에 대한 messageVersionSoap11WSAddressingAugust2004로 설정합니다.

      ms730049.note(ko-kr,VS.100).gif참고:
      SOAP 1.2를 사용할 경우에는 messageVersion 특성을 Soap12WSAddressingAugust2004로 변경합니다.

  2. 서비스에서 사용자 지정 바인딩이 사용되도록 지정합니다.

    1. Service Endpoint 요소의 binding 특성을 customBinding으로 설정합니다.

    2. Service Endpoint 요소의 bindingConfiguration 특성을 사용자 지정 바인딩을 위해 binding elementname 특성에 지정된 값으로 설정합니다.

예제

다음은 Service.HelloWorldService에서 사용자 지정 바인딩을 사용하여 WSE 3.0 클라이언트와 상호 운용하도록 지정하는 코드 예제입니다. 사용자 지정 바인딩에서는 교환되는 메시지를 인코딩하는 데 2004년 8월 버전의 WS-Addressing과 WS-Security 1.1을 사용하도록 지정합니다. 메시지 보안은 AnonymousForCertificate 인증 모드를 통해 이루어집니다.

<configuration>
  <system.serviceModel>
    <services>
      <service 
        behaviorConfiguration="ServiceBehavior" 
        name="Service.HelloWorldService">
        <endpoint binding="customBinding" address=""
          bindingConfiguration="ServiceBinding"
          contract="Service.IHelloWorld"></endpoint>
      </service>
    </services>

    <bindings>
      <customBinding>
        <binding name="ServiceBinding">
          <security authenticationMode="AnonymousForCertificate"
                  messageProtectionOrder="SignBeforeEncrypt"
                  messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
                  requireDerivedKeys="false">
          </security>
          <textMessageEncoding messageVersion ="Soap11WSAddressingAugust2004"></textMessageEncoding>
          <httpTransport/>
        </binding>
      </customBinding>
    </bindings>
    <behaviors>
      <behavior name="ServiceBehavior" returnUnknownExceptionsAsFaults="true">
        <serviceCredentials>
          <serviceCertificate findValue="CN=WCFQuickstartServer" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectDistinguishedName"/>
        </serviceCredentials>
      </behavior>
    </behaviors>
  </system.serviceModel>
</configuration>

참고 항목

작업

방법: 시스템 제공 바인딩 사용자 지정