다음을 통해 공유


<serviceCertificate> 요소의 <authentication>

SSL/TLS 협상을 사용하여 가져온 서비스 인증서를 인증하기 위해 클라이언트 프록시에서 사용하는 설정을 지정합니다.

스키마 계층

<system.serviceModel>
  <behaviors>
    <endpointBehaviors>
      <endpointBehaviors>의 <behavior>
        <clientCredentials>
          <serviceCredentials>의 <serviceCertificate>
            <serviceCertificate> 요소의 <authentication>

구문

<authentication customCertificateValidatorType="String" certificateValidationMode="None/PeerTrust/ChainTrust/PeerOrChainTrust/Custom"
revocationMode="NoCheck/Online/Offline" 
trustedStoreLocation="LocalMachine/CurrentUser" />

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성 설명

customCertificateValidatorType

문자열. 사용자 지정 형식의 유효성을 검사하는 데 사용되는 형식 및 어셈블리입니다.

certificateValidationMode

자격 증명의 유효성을 검사하는 데 사용되는 세 가지 모드 중 하나를 지정합니다. Custom으로 설정되면 customCertificateValidator도 지정해야 합니다. 기본값은 ChainTrust입니다.

revocationMode

CRL(해지된 인증서 목록)을 검사하는 데 사용되는 모드 중 하나입니다. 기본값은 Online입니다.

trustedStoreLocation

시스템 저장소 위치 LocalMachine 또는 CurrentUser 중 하나입니다. 서비스 인증서가 클라이언트와 협상될 때 이 값이 사용됩니다. 지정한 저장소 위치의 신뢰된 사용자 저장소에 대해 유효성 검사가 수행됩니다. 기본값은 CurrentUser입니다.

자식 요소

없음

부모 요소

요소 설명

<clientCredentials> 요소의 <serviceCertificate>

클라이언트에 대해 서비스를 인증할 때 사용할 인증서를 지정합니다.

설명

이 구성 요소의 certificateValidationMode 특성은 인증서를 인증하는 데 사용되는 신뢰 수준을 지정합니다. 기본적으로 수준은 ChainTrust로 설정되며 이는 각 인증서가 체인 맨 위의 신뢰할 수 있는 인증 기관에서 종료되는 인증서 계층 구조에 있어야 함을 지정합니다. 이 모드가 가장 안전한 모드입니다. 또한 값을 PeerOrChainTrust로 설정할 수 있으며, 이는 자체 발급된 인증서(신뢰 피어)가 신뢰 체인에 있는 인증서와 함께 수락됨을 지정합니다. 자체 발급 인증서를 신뢰할 수 있는 기관에서 구입할 필요 없기 때문에 클라이언트 및 서비스를 개발 및 디버깅하는 경우 이 값이 사용됩니다. 클라이언트를 배포하는 경우 ChainTrust 값을 대신 사용합니다. 또한 값을 Custom 또는 None으로 설정할 수 있습니다. Custom 값을 사용하려면 customCertificateValidator 특성을 인증서의 유효성을 검사하는 데 사용된 어셈블리 및 형식으로 설정해야 합니다. 사용자 지정 유효성 검사기를 직접 만들려면 추상 X509CertificateValidator 클래스에서 상속해야 합니다. 자세한 내용은 How To: Create a Service Employing a Custom Certificate Validator를 참조하십시오.

revocationMode 특성은 해지를 위해 인증서를 검사하는 방법을 지정합니다. 기본값은 online이며, 이는 인증서가 해지를 위해 자동으로 검사됨을 나타냅니다. 자세한 내용은 Working with Certificates을 참조하십시오.

예제

다음 예제에서는 두 작업을 수행합니다. 먼저 도메인 이름이 www.contoso.com인 끝점과 HTTP 프로토콜을 통해 통신할 때 클라이언트가 사용할 서비스 인증서를 지정합니다. 그런 다음 인증 중에 사용되는 해지 모드 및 저장소 위치를 지정합니다.

<serviceCertificate>
  <defaultCertificate findValue="www.contoso.com" 
                      storeLocation="LocalMachine"
                      storeName="TrustedPeople" 
                      x509FindType="FindByIssuerDistinguishedName" />
  <scopedCertificates>
     <add targetUri="https://www.contoso.com" 
          findValue="www.contoso.com" storeLocation="LocalMachine"
                  storeName="Root" x509FindType="FindByIssuerName" />
  </scopedCertificates>
  <authentication revocationMode="Online" 
   trustedStoreLocation="LocalMachine" />
</serviceCertificate>

참고 항목

참조

<clientCertificate> 요소의 <authentication>
X509RecipientCertificateClientElement
X509CertificateRecipientClientCredential
Authentication
X509ServiceCertificateAuthentication

기타 리소스

Security Behaviors in WCF
Working with Certificates
How To: Create a Service Employing a Custom Certificate Validator
Securing Clients
Securing Services and Clients