다음을 통해 공유


방법: 최대 클럭 오차 설정

두 개의 컴퓨터에서 클럭 설정이 서로 다른 경우 시간 중심 기능이 비활성화될 수 있습니다. 이 가능성을 줄이기 위해 MaxClockSkew 설정을 TimeSpan으로 설정할 수 있습니다. 이 속성은 다음 두 개의 클래스에서 사용할 수 있습니다.

LocalClientSecuritySettings

LocalServiceSecuritySettings

중요   보안 대화의 경우 서비스 또는 클라이언트가 부트스트랩되면 MaxClockSkew 속성을 변경해야 합니다. 이렇게 하려면 BootstrapSecurityBindingElement에서 반환되는 SecurityBindingElement에 속성을 설정해야 합니다.

시스템 제공 바인딩 중 하나에서 속성을 변경하려면 바인딩 컬렉션에서 보안 바인딩 요소를 찾아 MaxClockSkew 속성을 새 값으로 설정합니다. 두 개의 클래스는 SecurityBindingElement: SymmetricSecurityBindingElementAsymmetricSecurityBindingElement에서 파생됩니다. 컬렉션에서 보안 바인딩을 검색하는 경우 MaxClockSkew 속성을 제대로 설정하기 위해 이러한 형식 중 하나를 캐스팅해야 합니다. 다음 예제에서는 SymmetricSecurityBindingElement를 사용하는 WSHttpBinding을 사용합니다. 각 시스템 제공 바인딩에 사용할 보안 바인딩 형식을 지정하는 목록에 대해서는 시스템 제공 바인딩을 참조하십시오.

코드에서 새 클럭 오차 값으로 사용자 지정 바인딩을 만들려면

  1. 참고   코드에서 System.ServiceModel.Channels, System.ServiceModel.Description, System.Security.PermissionsSystem.ServiceModel.Security.Tokens 네임스페이스에 대한 참조를 추가합니다.

    WSHttpBinding 클래스의 인스턴스를 만들고 보안 모드를 Message로 설정합니다.

  2. CreateBindingElements 메서드를 호출하여 BindingElementCollection 클래스의 새 인스턴스를 만듭니다.

  3. BindingElementCollection 클래스의 Find 메서드를 사용하여 보안 바인딩 요소를 찾습니다.

  4. Find 메서드를 사용하는 경우 실제 형식으로 캐스팅합니다. 아래 예제에서는 SymmetricSecurityBindingElement 형식으로 캐스팅합니다.

  5. 보안 바인딩 요소에서 MaxClockSkew 속성을 설정합니다.

  6. 적절한 서비스 형식 및 기본 주소로 ServiceHost를 만듭니다.

  7. AddServiceEndpoint 메서드를 사용하여 끝점을 추가하고 CustomBinding을 포함합니다.

구성에서 MaxClockSkew를 설정하려면

  1. <Bindings> 요소 섹션에서 customBinding Element를 만듭니다.

  2. <binding> 요소를 만들고 name 특성을 적절한 값으로 설정합니다. 다음 예제에서는 이 특성을 MaxClockSkewBinding으로 설정합니다.

  3. 인코딩 요소를 추가합니다. 아래 예제에서는 textMessageEncoding element를 추가합니다.

  4. security Element of customBinding 요소를 추가하고 authenticationMode 특성을 적절한 설정으로 지정합니다. 다음 예제에서는 특성을 Kerberos로 설정하여 서비스가 Windows 인증을 사용하도록 지정합니다.

  5. localServiceSettings element를 추가하고 maxClockSkew 특성을 "##:##:##" 형식의 값으로 설정합니다. 다음 예제에서는 이 특성을 7분으로 설정합니다. 선택적으로 localServiceSettings element를 추가하고 maxClockSkew 특성을 적절한 설정으로 지정합니다.

  6. 전송 요소를 추가합니다. 다음 예제에서는 httpTransport element를 사용합니다.

  7. 보안 대화의 경우 secureConversationBootstrap 요소의 부트스트랩에 보안 설정이 있어야 합니다.

    <bindings>
      <customBinding>
        <binding name="MaxClockSkewBinding">
            <textMessageEncoding />
            <security authenticationMode="Kerberos">
               <localClientSettings maxClockSkew="00:07:00" />
               <localServiceSettings maxClockSkew="00:07:00" />
               <secureConversationBootstrap>
                  <localClientSettings maxClockSkew="00:30:00" />
                  <localServiceSettings maxClockSkew="00:30:00" />
               </secureConversationBootstrap>
            </security>
            <httpTransport />
        </binding>
      </customBinding>
    </bindings>
    

참고 항목

참조

LocalClientSecuritySettings
LocalServiceSecuritySettings
CustomBinding

개념

방법: SecurityBindingElement를 사용하여 사용자 지정 바인딩 만들기