Режимы проверки подлинности SecurityBindingElement

Windows Communication Foundation (WCF) предоставляет несколько режимов проверки подлинности клиентов и служб. Для этих режимов проверки подлинности можно создать привязки безопасности с помощью статических методов класса SecurityBindingElement или с помощью конфигурации. В этом разделе кратко описано 18 режимов проверки подлинности.

Пример использования элемента для одного из режимов проверки подлинности см. в статье "Практическое руководство. Создание SecurityBindingElement для указанного режима проверки подлинности".

Базовое программирование конфигурации

Ниже описано, как задать режим проверки подлинности в файле конфигурации.

Задание режима проверки подлинности в файле конфигурации

  1. В элемент bindings> добавьте <customBinding>.<

  2. В качестве дочернего элемента добавьте <элемент привязки> в <customBinding> элемент.

  3. Добавьте элемент <security> в элемент <binding>.

  4. Задайте для атрибута authenticationMode одно из описанных ниже значений. Например, следующий код задает режим AnonymousForCertificate.

    <bindings>  
      <customBinding>  
        <binding name="SecureCustomBinding">  
         <security authenticationMode ="AnonymousForCertificate" />  
        </binding>  
      </customBinding>  
    </bindings>  
    

Задание режима программным образом

  1. Определите возвращаемый тип, который может быть следующим: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement или SecurityBindingElement.

  2. Вызовите соответствующий статический метод класса SecurityBindingElement. Например, в следующем фрагменте кода вызывается метод CreateAnonymousForCertificateBindingElement.

    SymmetricSecurityBindingElement b =
        SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement();
    
    Dim b As SymmetricSecurityBindingElement = _
    SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
    
  3. С помощью элемента привязки создайте пользовательскую привязку. Дополнительные сведения см. в разделе "Пользовательские привязки".

Описание режимов

AnonymousForCertificate

В этом режиме проверки подлинности клиент является анонимным, а проверка подлинности службы осуществляется с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateAnonymousForCertificateBindingElement. Кроме того, задайте authenticationMode для атрибута><securityэлемента AnonymousForCertificateзначение .

AnonymousForSslNegotiated

В этом режиме проверки подлинности клиент является анонимным, а проверка подлинности службы осуществляется с использованием сертификата X.509, который определяется во время выполнения. Элементом привязки безопасности является объект SymmetricSecurityBindingElement, возвращаемый методом CreateSslNegotiationBindingElement, если в качестве первого параметра передается значение false. Можно также задать для атрибута authenticationMode значение AnonymousForSslNegotiated.

CertificateOverTransport

В этом режиме проверка подлинности клиента осуществляется с использованием сертификата X.509, который доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateCertificateOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение CertificateOverTransport.

IssuedToken

В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Служба не проходит как таковую проверку подлинности на стороне клиента, но служба маркеров безопасности шифрует общий ключ в рамках выдаваемого маркера, чтобы только служба могла расшифровать этот ключ. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenBindingElement. Можно также задать для атрибута authenticationMode значение IssuedToken.

IssuedTokenForCertificate

В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный маркер доступен на уровне SOAP в качестве разрешающего вспомогательного маркера либо в качестве маркера, не являющегося подтверждающим, т. е. маркера, которым подписана сигнатура сообщения. Проверка подлинности службы на стороне клиента осуществляется с помощью сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenForCertificateBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenForCertificate.

IssuedTokenForSslNegotiated

В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный маркер доступен на уровне SOAP в качестве разрешающего вспомогательного маркера либо в качестве маркера, не являющегося подтверждающим, т. е. маркера, которым подписана сигнатура сообщения. Служба проходит проверку подлинности с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenForSslBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenForSslNegotiated.

IssuedTokenOverTransport

В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный маркер доступен на уровне SOAP в качестве разрешающего вспомогательного маркера либо в качестве маркера, не являющегося подтверждающим, т. е. маркера, которым подписана сигнатура сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateIssuedTokenOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenOverTransport.

Kerberos

В этом режиме проверка подлинности клиента на стороне службы осуществляется с использованием билета Kerberos. Этот же билет обеспечивает проверку подлинности сервера. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateKerberosBindingElement. Можно также задать для атрибута authenticationMode значение Kerberos.

Примечание.

Для использования этого режима проверки подлинности учетная запись службы должна быть связана с именем субъекта-службы (SPN). Для этого запустите службу от имени учетной записи NETWORK SERVICE или LOCAL SYSTEM. Для создания для учетной записи службы имени участника-службы также можно воспользоваться средством SetSpn.exe. В любом случае клиент должен использовать правильную имя субъекта-службы в элементе servicePrincipalName> или с помощью конструктораEndpointAddress.< Дополнительные сведения см. в разделе "Удостоверение службы" и "Проверка подлинности".

Примечание.

При использовании режима проверки подлинности Kerberos уровни олицетворения Anonymous и Delegation не поддерживаются.

KerberosOverTransport

В этом режиме проверка подлинности клиента на стороне службы осуществляется с использованием билета Kerberos. Маркер Kerberos доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateKerberosOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение KerberosOverTransport.

Примечание.

Для использования этого режима проверки подлинности учетная запись службы должна быть связана с именем участника-службы (SPN). Для этого запустите службу от имени учетной записи NETWORK SERVICE или LOCAL SYSTEM. Для создания для учетной записи службы имени участника-службы также можно воспользоваться средством SetSpn.exe. В любом случае клиент должен использовать правильную имя субъекта-службы в элементе servicePrincipalName> или с помощью конструктораEndpointAddress.< Дополнительные сведения см. в разделе "Удостоверение службы" и "Проверка подлинности".

MutualCertificate

В этом режиме проверка подлинности клиента осуществляется с использованием сертификата X.509, который доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба также проходит проверку подлинности с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateMutualCertificateBindingElement. Можно также задать для атрибута authenticationMode значение MutualCertificate.

MutualCertificateDuplex

В этом режиме проверка подлинности клиента осуществляется с использованием сертификата X.509, который доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба также проходит проверку подлинности с использованием сертификата X.509. Привязкой является элемент AsymmetricSecurityBindingElement, возвращаемый методом CreateMutualCertificateDuplexBindingElement. Можно также задать для атрибута authenticationMode значение MutualCertificateDuplex.

MutualSslNegotiated

В этом режиме проверка подлинности клиента и службы осуществляется с использованием сертификатов X.509. Элементом привязки безопасности является объект SymmetricSecurityBindingElement, возвращаемый методом CreateSslNegotiationBindingElement, если в качестве первого параметра передается значение true. Можно также задать для атрибута authenticationMode значение MutualSslNegotiated.

SecureConversation

Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateSecureConversationBindingElement. Этот метод принимает в качестве параметра объект SecurityBindingElement, который используется во время инициализации для установки защищенного сеанса. Можно также задать для атрибута authenticationMode значение SecureConversation.

Если привязка начальной загрузки не задана, то для начальной загрузки используется режим проверки подлинности SspiNegotiated.

SspiNegotiation

В этом режиме для проверки подлинности клиента и сервера используется протокол согласования. Если это возможно, используется протокол Kerberos, в противном случае - протокол NT LanMan (NTLM). Элементом привязки безопасности является элемент 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.

См. также