<security> для <customBinding>
Задает параметры безопасности для пользовательской привязки.
Иерархия схемы
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<security> для <customBinding>
Синтаксис
<security
allowSerializedSigningTokenOnReply="Boolean"
authenticationMode="AuthenticationMode"
defaultAlgorithmSuite="SecurityAlgorithmSuite"
includeTimestamp="Boolean"
requireDerivedKeys="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
messageSecurityVersion="WSSecurityJan2004/WSSecurityXXX2005"
requireDerivedKeys="Boolean"
requireSecurityContextCancellation="Boolean"
requireSignatureConfirmation="Boolean"
securityHeaderLayout=
"Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
includeTimestamp="Boolean">
<issuedTokenParameters />
<localClientSettings />
<localServiceSettings />
<secureConversationBootstrap />
</security>
Атрибуты и элементы
В следующих разделах описываются атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Описание |
---|---|
allowSerializedSigningTokenOnReply |
Необязательный. Логическое значение, определяющее, может ли в ответе использоваться сериализованный маркер. Значение по умолчанию — false. При использовании двойной привязки для всех параметров, имеющих значение по умолчанию true, пропускаются любые заданные параметры. |
authenticationMode |
Необязательный. Указывает режим проверки подлинности, используемый между инициатором и отвечающим устройством. Список значений приведен ниже. Значение по умолчанию — sspiNegotiated. |
defaultAlgorithmSuite |
Необязательный. Задает алгоритмы шифрования сообщений и ключей. Алгоритмы и размеры ключей определяются классом SecurityAlgorithmSuite. Эти алгоритмы соответствуют алгоритмам, заданным в спецификации языка политики безопасности (WS-SecurityPolicy). Допустимые значения приведены ниже. Значение по умолчанию — Basic256. Этот атрибут используется при работе с другой платформой, которая использует набор алгоритмов, отличный от набора по умолчанию. При внесении изменений в параметры настройки необходимо знать о сильных и слабых сторонах соответствующих алгоритмов. Этот атрибут имеет тип SecurityAlgorithmSuite. |
includeTimestamp |
Логическое значение, определяющее, включается ли в каждое сообщение отметка времени. Значение по умолчанию — true. |
keyEntropyMode |
Указывает способ вычисления ключей для защиты сообщений. Ключи могут быть основаны только на данных ключа клиента, только на данных ключа службы или на сочетании обоих типов данных. Допустимы следующие значения:
Значение по умолчанию — CombinedEntropy. Это атрибут типа SecurityKeyEntropyMode. |
messageProtectionOrder |
Определяет порядок, в котором к сообщению применяются алгоритмы безопасности уровня сообщения. Допустимы следующие значения:
Значение по умолчанию зависит от используемой версии WS-Security. Значение по умолчанию — SignBeforeEncryptAndEncryptSignature, если используется WS-Security 1.1. Значение по умолчанию — SignBeforeEncrypt, если используется WS-Security 1.0. Этот атрибут имеет тип MessageProtectionOrder. |
messageSecurityVersion |
Необязательный. Задает используемую версию WS-Security. Допустимы следующие значения:
Значение по умолчанию — WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11, которое может быть выражено в формате XML просто как Default. Это атрибут типа MessageSecurityVersion. |
requireDerivedKeys |
Логическое значение, которое указывает, могут ли ключи быть производными от исходных ключей проверки. Значение по умолчанию — true. |
requireSecurityContextCancellation |
Необязательный. Логическое значение, определяющее, следует ли отменять и завершать контекст безопасности, когда он больше не нужен. Значение по умолчанию — true. |
requireSignatureConfirmation |
Необязательный. Логическое значение, определяющее, включено ли подтверждение сигнатуры WS-Security. Если установлено значение true, то сигнатуры сообщений подтверждаются респондентом. Если пользовательская привязка настроена для использования взаимных сертификатов или выданных маркеров (привязки WSS 1.1), то этот атрибут имеет значение по умолчанию true. В противном случае значением по умолчанию будет false. Подтверждение сигнатуры используется для подтверждения того, что служба отвечает, получив запрос полностью. |
securityHeaderLayout |
Необязательный. Определяет порядок расположения элементов в заголовке безопасности. Допустимы следующие значения:
Значение по умолчанию — Strict. Этот элемент имеет тип SecurityHeaderLayout. |
Дочерние элементы
Элемент | Описание |
---|---|
Определяет текущий выданный маркер. Это элемент типа IssuedTokenParametersElement. |
|
Задает параметры безопасности локального клиента для этой привязки. Это элемент типа LocalClientSecuritySettingsElement. |
|
Задает параметры безопасности локальной службы для этой привязки. Это элемент типа LocalServiceSecuritySettingsElement. |
|
Задает значения по умолчанию, используемые для инициализации службы безопасного обмена данными. |
Родительские элементы
Элемент | Описание |
---|---|
Определяет все возможности пользовательской привязки. |
Замечания
Дополнительные сведения применении этого элемента см. в разделах SecurityBindingElement Authentication Modes и How To: Create a Custom Binding Using the SecurityBindingElement.
Пример
В следующем примере показано, как настроить параметры безопасности с помощью настраиваемой привязки. Здесь показано, как использовать пользовательскую привязку для включения безопасности на уровне сообщений вместе с безопасным транспортом. Это полезно, когда требуется передавать сообщения между клиентом и службой с помощью безопасного транспорта с одновременным обеспечением безопасности на уровне сообщений. Эта конфигурация не поддерживается привязками, предоставленными системой.
Конфигурация службы определяет настраиваемую привязку, которая поддерживает обмен данными по протоколу TCP с защитой протоколом TLS/SSL и системой безопасности сообщений Windows. Настраиваемая привязка использует сертификат службы для проверки подлинности службы на уровне транспорта и для защиты сообщений при передаче между клиентом и службой. Это достигается с помощью элемента привязки <sslStreamSecurity>. Сертификат службы настраивается с помощью поведения службы.
В дополнение к этому настраиваемая привязка использует безопасность сообщений с типом учетных данных Windows — это тип учетных данных по умолчанию. Это достигается с помощью элемента привязки <security> для <customBinding>. Если доступен механизм проверки подлинности Kerberos, то проверка подлинности как клиента, так и службы выполняется с использованием безопасности уровня сообщений. Если механизм проверки подлинности Kerberos недоступен, используется проверка подлинности NTLM. NTLM выполняет проверку подлинности клиента при подключении к службе, но не выполняет проверку подлинности службы при подключении к клиенту. Элемент привязки <security> для <customBinding> настраивается на использование authenticationType SecureConversation, что приводит к созданию сеанса безопасности как на стороне, клиента, так и на стороне службы. Это требуется для обеспечения работы дуплексного контракта службы. Дополнительные сведения о выполнении этого примера см. в разделе Custom Binding Security.
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<!-- use following base address -->
<add baseAddress="net.tcp://localhost:8000/ServiceModelSamples/Service"/>
</baseAddresses>
</host>
<endpoint address=""
binding="customBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
<!-- the mex endpoint is exposed at net.tcp://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<!-- configure a custom binding -->
<customBinding>
<binding name="Binding1">
<security authenticationMode="SecureConversation"
requireSecurityContextCancellation="true">
</security>
<textMessageEncoding messageVersion="Soap12WSAddressing10" writeEncoding="utf-8"/>
<sslStreamSecurity requireClientCertificate="false"/>
<tcpTransport/>
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="False" />
<serviceCredentials>
<serviceCertificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
См. также
Справочник
<customBinding>
SecurityElement
SecurityBindingElement
CustomBinding
Другие ресурсы
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
How To: Create a Custom Binding Using the SecurityBindingElement
Custom Binding Security