Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Windows Communication Foundation (WCF) предоставляет несколько режимов проверки подлинности клиентов и служб. Для этих режимов проверки подлинности можно создать привязки безопасности с помощью статических методов класса SecurityBindingElement или с помощью конфигурации. В этом разделе кратко описано 18 режимов проверки подлинности.
Пример использования элемента для одного из режимов проверки подлинности см. в статье "Практическое руководство. Создание SecurityBindingElement для указанного режима проверки подлинности".
Базовое программирование конфигурации
Ниже описано, как задать режим проверки подлинности в файле конфигурации.
Установить режим аутентификации в конфигурации
В элемент <bindings> добавьте <customBinding>.
Как дочерний элемент добавьте элемент <привязки> в элемент
<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()Создайте настраиваемую привязку с помощью элемента привязки. Дополнительные сведения см. в разделе "Пользовательские привязки".
Описание режимов
АнонимноДляСертификата
В этом режиме проверки подлинности клиент является анонимным, а проверка подлинности службы осуществляется с использованием сертификата 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.
ВыданныйТокен
В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Служба не проходит как таковую проверку подлинности на стороне клиента, но служба маркеров безопасности шифрует общий ключ в рамках выдаваемого маркера, чтобы только служба могла расшифровать этот ключ. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenBindingElement. Можно также задать для атрибута authenticationMode значение IssuedToken.
ВыпущенныйТокенДляСертификата
В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный токен представлен на уровне SOAP в качестве поддерживающего маркера, участвующего в подтверждении, или маркера-предъявителя; т.е., маркера, который подписывает подпись сообщения. Проверка подлинности службы на стороне клиента осуществляется с помощью сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenForCertificateBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenForCertificate.
Токен, выданный для согласованных сделок SSL
В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный токен доступен на уровне протокола SOAP в качестве поддерживающего маркера с подтверждением либо в качестве предъявительского маркера; то есть токен, которым подписывается сигнатура сообщения. Служба проходит проверку подлинности с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateIssuedTokenForSslBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenForSslNegotiated.
Выпуск токена через транспортный уровень
В этом режиме проверки подлинности клиент не проходит проверку подлинности на стороне службы; вместо этого клиент проходит проверку на стороне службы маркеров безопасности, получает маркер SAML, который затем представляет серверу, и, тем самым, подтверждает набор знаний общего ключа. Выданный токен доступен на уровне SOAP как поддерживающий подписывающий токен или токен предъявителя; то есть токен, который подписывает сигнатуру сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateIssuedTokenOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение IssuedTokenOverTransport.
Kerberos
В этом режиме проверка подлинности клиента на стороне службы осуществляется с использованием билета Kerberos. Тот же сертификат обеспечивает аутентификацию сервера. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateKerberosBindingElement. Можно также задать для атрибута authenticationMode значение Kerberos.
Примечание.
Для использования этого режима проверки подлинности учетная запись службы должна быть связана с именем главного объекта службы (SPN). Для этого запустите службу от имени учетной записи NETWORK SERVICE или LOCAL SYSTEM. Для создания SPN для учетной записи службы также можно воспользоваться инструментом SetSpn.exe. В любом случае клиент должен использовать правильный SPN в элементе <servicePrincipalName> или с помощью EndpointAddress конструктора.> Дополнительные сведения см. в разделе "Удостоверение службы" и "Проверка подлинности".
Примечание.
При использовании режима проверки подлинности Kerberos уровни олицетворения Anonymous и Delegation не поддерживаются.
KerberosOverTransport
В этом режиме проверка подлинности клиента на стороне службы осуществляется с использованием билета Kerberos. Маркер Kerberos доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateKerberosOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение KerberosOverTransport.
Примечание.
Для использования этого режима проверки подлинности учетная запись службы должна быть связана с именем участника-службы (SPN). Для этого запустите службу от имени учетной записи NETWORK SERVICE или LOCAL SYSTEM. Для создания SPN для учетной записи службы также можно воспользоваться средством SetSpn.exe. В любом случае клиент должен использовать правильное имя servicePrincipalName в элементе
Сертификат взаимного удостоверения
В этом режиме проверка подлинности клиента осуществляется с использованием сертификата X.509, который доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба также проходит проверку подлинности с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateMutualCertificateBindingElement. Можно также задать для атрибута authenticationMode значение MutualCertificate.
MutualCertificateDuplex
В этом режиме проверка подлинности клиента осуществляется с использованием сертификата X.509, который доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба также проходит проверку подлинности с использованием сертификата X.509. Привязкой является элемент AsymmetricSecurityBindingElement, возвращаемый методом CreateMutualCertificateDuplexBindingElement. Можно также задать для атрибута authenticationMode значение MutualCertificateDuplex.
ВзаимноеSSLсогласование
В этом режиме проверка подлинности клиента и службы осуществляется с использованием сертификатов X.509. Элементом привязки безопасности является объект SymmetricSecurityBindingElement, возвращаемый методом CreateSslNegotiationBindingElement, если в качестве первого параметра передается значение true. Можно также задать для атрибута authenticationMode значение MutualSslNegotiated.
Безопасный разговор
Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateSecureConversationBindingElement. Этот метод принимает в качестве параметра объект SecurityBindingElement, который используется во время инициализации для установки защищенного сеанса. Можно также задать для атрибута authenticationMode значение SecureConversation.
Если привязка для режима начальной загрузки не задана, то для режима начальной загрузки используется режим проверки подлинности SspiNegotiated.
SspiNegotiation
В этом режиме для проверки подлинности клиента и сервера используется протокол согласования. Если это возможно, используется протокол Kerberos, в противном случае - протокол NT LanMan (NTLM). Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateSspiNegotiationBindingElement. Можно также задать для атрибута authenticationMode значение SspiNegotiated.
Протокол SSPI через транспорт
В этом режиме для проверки подлинности клиента и сервера используется протокол согласования. Если это возможно, используется протокол Kerberos, в противном случае - протокол NTLM. Результирующий маркер доступен на уровне SOAP в качестве разрешающего вспомогательного маркера, т. е. маркера, которым подписана подпись сообщения. Служба проходит дополнительную проверку подлинности на транспортном уровне с использованием сертификата X.509. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateSspiNegotiationOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение SspiNegotiatedOverTransport.
ИмяПользователяДляСертификата
В этом режиме проверка подлинности клиента на стороне службы осуществляется с использованием маркера имени пользователя, который доступен на уровне SOAP в качестве подписанного вспомогательного маркера, т. е. маркера, который подписан подписью сообщения. Проверка подлинности службы на стороне клиента осуществляется с помощью сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateUserNameForCertificateBindingElement. Можно также задать для атрибута authenticationMode значение UserNameForCertificate.
В режиме проверки подлинности UserNameForCertificate клиент и служба должны использовать протокол WS-Security 1.1.
ИмяПользователяДляПереговоровSsl
В этом режиме проверка подлинности клиента осуществляется с использованием маркера имени пользователя, который доступен на уровне SOAP в качестве подписанного вспомогательного маркера, т. е. маркера, который подписан подписью сообщения. Служба проходит проверку подлинности с использованием сертификата X.509. Элементом привязки безопасности является элемент SymmetricSecurityBindingElement, возвращаемый методом CreateUserNameForSslBindingElement. Можно также задать для атрибута authenticationMode значение UserNameForSslNegotiated.
ИмяПользователяНадТранспортом
В этом режиме проверка подлинности клиента осуществляется с использованием маркера имени пользователя, который доступен на уровне SOAP в качестве подписанного вспомогательного маркера, т. е. маркера, который подписан подписью сообщения. Служба проходит проверку подлинности с использованием сертификата X.509 на транспортном уровне. Элементом привязки безопасности является элемент TransportSecurityBindingElement, возвращаемый методом CreateUserNameOverTransportBindingElement. Можно также задать для атрибута authenticationMode значение UserNameOverTransport.