다음을 통해 공유


<clientCertificate> 요소의 <certificate>

메시지 서명 및 암호화에 사용되는 X.509 인증서를 지정합니다.

스키마 계층

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <serviceBehaviors>의 <behavior>
        <serviceCredentials>
          <serviceCredentials>의 <clientCertificate>
            <clientCertificate> 요소의 <certificate>

구문

<certificate findValue = "String" 
storeLocation = "CurrentUser/LocalMachine"
storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
X509FindType="FindByThumbPrint/FindBySubjectName/FindBySubjectDistinguishedName/FindByIssuerName/FindByIssuerDistinguishedName/FindBySerialNumber/FindByTimeValid/FindByTimeNotYetValid/FindByTemplateName/FindByApplicationPolicy/FindByCertificatePolicy/FindByExtension/FindByKeyUsage/FindBySubjectKeyIdentifier"
/>

특성 및 요소

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

특성

특성 설명

findValue

X.509 인증서 저장소에서 검색할 값을 포함하는 문자열입니다. 이 특성에 포함된 형식은 지정된 X509FindType에 대한 요구 사항을 충족해야 합니다. 기본값은 빈 문자열입니다.

storeLocation

클라이언트가 서버 인증서의 유효성을 검사하는 데 사용하는 X.509 인증서 저장소 위치를 지정합니다. 유효한 값은 다음과 같습니다.

  • LocalMachine: 로컬 시스템에 할당된 인증서 저장소입니다.

  • CurrentUser: 현재 사용자에게 할당된 인증서 저장소입니다.

기본값은 LocalMachine입니다.

storeName

열려는 X.509 인증서 저장소의 이름을 지정합니다. 유효한 값은 다음과 같습니다.

  • AddressBook: 다른 사용자용 인증서 저장소입니다.

  • AuthRoot: 제3의 CA(인증 기관)용 인증서 저장소입니다.

  • CertificationAuthority: 중개 CA(인증 기관)용 인증서 저장소입니다.

  • Disallowed: 해지된 인증서용 인증서 저장소입니다.

  • My: 개인 인증서용 인증서 저장소입니다.

  • Root: 신뢰할 수 있는 루트 CA(인증 기관)용 인증서 저장소입니다.

  • TrustedPeople: 직접 신뢰할 수 있는 사람 및 리소스용 인증서 저장소입니다.

  • TrustedPublisher: 직접 신뢰할 수 있는 게시자용 인증서 저장소입니다.

기본값은 My입니다.

X509FindType

실행할 X.509 검색의 유형을 정의합니다. 유효한 값은 다음과 같습니다.

  • FindByThumbPrint

  • FindBySubjectName

  • FindBySubjectDistinguishedName

  • FindByIssuerName

  • FindByIssuerDistinguishedName

  • FindBySerialNumber

  • FindByTimeValid

  • FindByTimeNotYetValid

  • FindByTemplateName

  • FindByApplicationPolicy

  • FindByCertificatePolicy

  • FindByExtension

  • FindByKeyUsage

  • FindBySubjectKeyIdentifier

findValue 특성에 포함된 형식은 지정된 X509FindType에 대한 요구 사항을 충족해야 합니다.

기본값은 FindBySubjectDistinguishedName입니다.

자식 요소

없음

부모 요소

요소 설명

<serviceCredentials>의 <clientCertificate>

설명

서비스가 클라이언트와 안전하게 통신하기 위해 클라이언트의 인증서가 필요한 경우 <certificate> 요소를 사용합니다. 이는 양방향 통신 패턴을 사용하는 경우 발생합니다. 대부분의 일반적인 요청/응답 패턴의 경우 클라이언트는 요청 시 서비스가 클라이언트에게 해당 응답을 암호화 및 서명하는 데 사용하는 인증서를 포함합니다. 그러나 이중 통신 패턴에서는 서비스에 클라이언트의 요청이 없으므로 클라이언트에게 보내는 메시지 보안을 위해 클라이언트의 인증서가 사전에 필요합니다. 따라서 클라이언트 인증서를 out-of-band 협상 방식으로 가져와서 이 요소를 사용하여 인증서를 지정해야 합니다. 이중 서비스에 대한 자세한 내용은 How to: Create a Duplex Contract를 참조하십시오.

예제

다음 코드에서는 적절한 X.509 인증서와 <authentication> 요소의 사용자 지정 유효성 검사 형식을 찾는 방법을 지정합니다.

<serviceBehaviors>
 <behavior name="myServiceBehavior">
  <clientCertificate>
   <certificate 
         findValue="www.cohowinery.com" 
         storeLocation="CurrentUser" 
         storeName="TrustedPeople"
         x509FindType="FindByIssuerName" />
   <authentication customCertificateValidatorType="MyTypes.Coho"
    certificateValidationMode="Custom" 
    revocationMode="Offline"
    includeWindowsGroups="false" 
    mapClientCertificateToWindowsAccount="true" />
  </clientCertificate>
 </behavior>
</serviceBehaviors>

참고 항목

참조

Certificate
Certificate
X509ClientCertificateCredentialsElement

기타 리소스

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