SecurityBindingElement 인증 모드
WCF(Windows Communication Foundation)는 클라이언트와 서비스가 서로 인증하는 여러 모드를 제공합니다. SecurityBindingElement 클래스에 정적 메서드를 사용하거나 구성을 통해 이러한 인증 모드의 보안 바인딩 요소를 만들 수 있습니다. 이 항목에서는 18가지의 인증 모드에 대해 간단히 설명합니다.
인증 모드 중 하나에 요소를 사용하는 예제는 방법: 지정된 인증 모드에 대한 SecurityBindingElement 만들기를 참조하세요.
기본 구성 프로그래밍
다음 절차에서는 구성 파일에 인증 모드를 설정하는 방법을 설명합니다.
구성 파일에 인증 모드를 설정하려면
<bindings> 요소에 <customBinding>을 추가합니다.
<binding> 요소를 자식 요소로서
<customBinding>
요소에 추가합니다.<security>
요소를<binding>
요소에 추가합니다.authenticationMode
특성을 아래 설명된 값 중 하나로 설정합니다. 예를 들어 다음 코드에서는 모드를AnonymousForCertificate
로 설정합니다.<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
프로그래밍 방식으로 모드를 설정하려면
반환 형식을SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement 또는 SecurityBindingElement 중에서 선택합니다.
SecurityBindingElement 클래스의 적절한 정적 메서드를 호출합니다. 예를 들어 다음 코드에서는 CreateAnonymousForCertificateBindingElement 메서드를 호출합니다.
SymmetricSecurityBindingElement b = SecurityBindingElement. CreateAnonymousForCertificateBindingElement();
Dim b As SymmetricSecurityBindingElement = _ SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
바인딩 요소를 사용하여 사용자 지정 바인딩을 만듭니다. 자세한 내용은 사용자 지정 바인딩을 참조하세요.
모드 설명
AnonymousForCertificate
이 인증 모드에서 클라이언트는 비대칭이고 서비스는 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement 메서드에서 반환된 CreateAnonymousForCertificateBindingElement입니다. 또는 <security>
요소의 authenticationMode
특성을 AnonymousForCertificate
로 설정합니다.
AnonymousForSslNegotiated
이 인증 모드에서 클라이언트는 비대칭이고 서비스는 런타임에 협상되는 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 첫 번째 매개 변수에 대해 SymmetricSecurityBindingElement 값이 전달될 때 CreateSslNegotiationBindingElement 메서드에 의해 반환된 false
입니다. 또는 authenticationMode
특성을 AnonymousForSslNegotiated
로 설정합니다.
CertificateOverTransport
이 인증 모드에서 클라이언트는 메시지 서명에 서명한 토큰인 보증 지원 토큰으로 SOAP 계층에 표시되는 X.509 인증서를 사용하여 인증합니다. 서비스는 전송 계층에서 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 TransportSecurityBindingElement 메서드에서 반환된 CreateCertificateOverTransportBindingElement입니다. 또는 authenticationMode
특성을 CertificateOverTransport
로 설정합니다.
IssuedToken
이 인증 모드에서는 클라이언트가 서비스를 인증하지 않으므로 대신 클라이언트가 보안 토큰 서비스를 인증하고 SAML 토큰을 수신한 다음 서버에 제공하여 공유 키에 대해 알고 있음을 증명합니다. 서비스가 클라이언트에 인증되지 않습니다. 대신 보안 토큰 서비스에서 공유 키를 발급된 토큰의 일부로 암호화하여 서비스에서만 키를 해독할 수 있게 합니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement 메서드에서 반환된 CreateIssuedTokenBindingElement입니다. 또는 authenticationMode
특성을 IssuedToken
로 설정합니다.
IssuedTokenForCertificate
이 인증 모드에서는 클라이언트가 서비스를 인증하지 않으므로 대신 클라이언트가 보안 토큰 서비스를 인증하고 SAML 토큰을 수신한 다음 서버에 제공하여 공유 키에 대해 알고 있음을 증명합니다. 발급된 토큰은 메시지 서명에 서명한 토큰인 보증 지원 토큰 또는 bearer 토큰으로 SOAP 계층에 표시됩니다. 서비스는 X.509 인증서를 사용하여 클라이언트를 인증합니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement 메서드에서 반환된 CreateIssuedTokenForCertificateBindingElement입니다. 또는 authenticationMode
특성을 IssuedTokenForCertificate
로 설정합니다.
IssuedTokenForSslNegotiated
이 인증 모드에서는 클라이언트가 서비스를 인증하지 않으므로 대신 클라이언트가 보안 토큰 서비스를 인증하고 SAML 토큰을 수신한 다음 서버에 제공하여 공유 키에 대해 알고 있음을 증명합니다. 발급된 토큰은 메시지 서명에 서명한 토큰인 보증 지원 토큰 또는 bearer 토큰으로 SOAP 계층에 표시됩니다. 서비스는 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement 메서드에서 반환된 CreateIssuedTokenForSslBindingElement입니다. 또는 authenticationMode
특성을 IssuedTokenForSslNegotiated
로 설정합니다.
IssuedTokenOverTransport
이 인증 모드에서는 클라이언트가 서비스를 인증하지 않으므로 대신 클라이언트가 보안 토큰 서비스를 인증하고 SAML 토큰을 수신한 다음 서버에 제공하여 공유 키에 대해 알고 있음을 증명합니다. 발급된 토큰은 메시지 서명에 서명한 토큰인 보증 지원 토큰 또는 bearer 토큰으로 SOAP 계층에 표시됩니다. 서비스는 전송 계층에서 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 TransportSecurityBindingElement
메서드에서 반환된 CreateIssuedTokenOverTransportBindingElement입니다. 또는 authenticationMode
특성을 IssuedTokenOverTransport
로 설정합니다.
Kerberos
이 인증 모드에서는 클라이언트가 Kerberos 티켓을 사용하여 서비스를 인증합니다. 동일한 티켓에서 서버 인증을 제공합니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateKerberosBindingElement입니다. 또는 authenticationMode
특성을 Kerberos
로 설정합니다.
참고 항목
이 인증 모드를 사용하려면 서비스 계정이 SPN(서비스 사용자 이름)과 연결되어야 합니다. 이 작업을 수행하려면 NETWORK SERVICE 계정이나 LOCAL SYSTEM 계정에서 서비스를 실행합니다. 또는 SetSpn.exe 도구를 사용하여 서비스 계정에 대한 SPN을 만듭니다. 어떤 경우에든 클라이언트는 <servicePrincipalName> 요소에서 또는 EndpointAddress 생성자를 사용하여 정확한 SPN을 사용해야 합니다. 자세한 내용은 서비스 Id 및 인증합니다.
참고 항목
Kerberos
인증 모드를 사용하면 Anonymous 및 Delegation 가장 수준이 지원되지 않습니다.
KerberosOverTransport
이 인증 모드에서는 클라이언트가 Kerberos 티켓을 사용하여 서비스를 인증합니다. Kerberos 토큰은 메시지 서명에 서명한 토큰인 보증 지원 토큰으로 SOAP 계층에 표시됩니다. 서비스는 전송 계층에서 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 TransportSecurityBindingElement
메서드에서 반환된 CreateKerberosOverTransportBindingElement입니다. 또는 authenticationMode
특성을 KerberosOverTransport
로 설정합니다.
참고 항목
이 인증 모드를 사용하려면 서비스 계정이 SPN과 연결되어야 합니다. 이 작업을 수행하려면 NETWORK SERVICE 계정이나 LOCAL SYSTEM 계정에서 서비스를 실행합니다. 또는 SetSpn.exe 도구를 사용하여 서비스 계정에 대한 SPN을 만듭니다. 어떤 경우에든 클라이언트는 <servicePrincipalName> 요소에서 또는 EndpointAddress 생성자를 사용하여 정확한 SPN을 사용해야 합니다. 자세한 내용은 서비스 Id 및 인증합니다.
MutualCertificate
이 인증 모드에서 클라이언트는 메시지 서명에 서명한 토큰인 보증 지원 토큰으로 SOAP 계층에 표시되는 X.509 인증서를 사용하여 인증합니다. 서비스도 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateMutualCertificateBindingElement입니다. 또는 authenticationMode
특성을 MutualCertificate
로 설정합니다.
MutualCertificateDuplex
이 인증 모드에서 클라이언트는 메시지 서명에 서명한 토큰인 보증 지원 토큰으로 SOAP 계층에 표시되는 X.509 인증서를 사용하여 인증합니다. 서비스도 X.509 인증서를 사용하여 인증됩니다. 바인딩은 AsymmetricSecurityBindingElement
메서드에서 반환된 CreateMutualCertificateDuplexBindingElement입니다. 또는 authenticationMode
특성을 MutualCertificateDuplex
로 설정합니다.
MutualSslNegotiated
이 인증 모드에서 클라이언트 및 서비스는 X.509 인증서를 사용하여 인증합니다. 보안 바인딩 요소는 첫 번째 매개 변수에 대해 SymmetricSecurityBindingElement
값이 전달될 때 CreateSslNegotiationBindingElement 메서드에 의해 반환된 true
입니다. 또는 authenticationMode
특성을 MutualSslNegotiated
로 설정합니다.
SecureConversation
보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateSecureConversationBindingElement입니다. 이 메서드는 SecurityBindingElement를 초기화 중에 보안 세션 설정에 사용할 매개 변수로 사용합니다. 또는 authenticationMode
특성을 SecureConversation
로 설정합니다.
부트스트랩 바인딩이 지정되지 않은 경우에는 SspiNegotiated
인증 모드가 부트스트랩에 사용됩니다.
SspiNegotiation
이 인증 모드에서는 협상 프로토콜을 사용하여 클라이언트 및 서버 인증을 수행합니다. 가능한 경우에는 Kerberos가 사용되며 그 이외에는 NTLM(NT LanMan)이 사용됩니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateSspiNegotiationBindingElement입니다. 또는 authenticationMode
특성을 SspiNegotiated
로 설정합니다.
SspiNegotiatedOverTransport
이 인증 모드에서는 협상 프로토콜을 사용하여 클라이언트 및 서버 인증을 수행합니다. 가능하면 Kerberos 프로토콜이 사용되고, 그렇지 않으면 NTLM이 사용됩니다. 결과 토큰은 메시지 서명에 서명한 토큰인 보증 지원 토큰으로 SOAP 계층에 표시됩니다. 서비스는 전송 계층에서 X.509 인증서를 사용하여 추가 인증됩니다. 보안 바인딩 요소는 TransportSecurityBindingElement
메서드에서 반환된 CreateSspiNegotiationOverTransportBindingElement입니다. 또는 authenticationMode
특성을 SspiNegotiatedOverTransport
로 설정합니다.
UserNameForCertificate
이 인증 모드에서 클라이언트는 메시지 서명에 의해 서명된 토큰인 서명된 지원 토큰으로 SOAP 계층에 표시되는 사용자 이름 토큰을 사용하여 서비스를 인증합니다. 서비스는 X.509 인증서를 사용하여 클라이언트를 인증합니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateUserNameForCertificateBindingElement입니다. 또는 authenticationMode
특성을 UserNameForCertificate
로 설정합니다.
UserNameForCertificate
인증 모드의 경우 클라이언트와 서비스 모두 WS-Security 1.1을 사용해야 합니다.
UserNameForSslNegotiated
이 인증 모드에서 클라이언트는 메시지 서명에 의해 서명된 토큰인 서명된 지원 토큰으로 SOAP 계층에 표시되는 사용자 이름 토큰을 사용하여 인증합니다. 서비스는 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 SymmetricSecurityBindingElement
메서드에서 반환된 CreateUserNameForSslBindingElement입니다. 또는 authenticationMode
특성을 UserNameForSslNegotiated
로 설정합니다.
UserNameOverTransport
이 인증 모드에서 클라이언트는 메시지 서명에 의해 서명된 토큰인 서명된 지원 토큰으로 SOAP 계층에 표시되는 사용자 이름 토큰을 사용하여 인증합니다. 서비스는 전송 계층에서 X.509 인증서를 사용하여 인증됩니다. 보안 바인딩 요소는 TransportSecurityBindingElement
메서드에서 반환된 CreateUserNameOverTransportBindingElement입니다. 또는 authenticationMode
특성을 UserNameOverTransport
로 설정합니다.