<<безопасность> customBinding>
Задает параметры безопасности для пользовательской привязки.
<configuration>
<system.serviceModel>
<bindings>
<Custombinding>
<Привязки>
<Безопасность >
Синтаксис
<security allowSerializedSigningTokenOnReply="Boolean"
authenticationMode="AuthenticationMode"
defaultAlgorithmSuite="SecurityAlgorithmSuite"
includeTimestamp="Boolean"
requireDerivedKeys="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
messageSecurityVersion="WSSecurityJan2004/WSSecurityXXX2005"
requireSecurityContextCancellation="Boolean"
requireSignatureConfirmation="Boolean"
securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast">
<issuedTokenParameters />
<localClientSettings />
<localServiceSettings />
<secureConversationBootstrap />
</security>
Атрибуты и элементы
В следующих разделах описываются атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Description |
---|---|
allowSerializedSigningTokenOnReply | Необязательно. Логическое значение, определяющее, может ли в ответе использоваться сериализованный маркер. Значение по умолчанию — false . При использовании двойной привязки для всех параметров, имеющих значение по умолчанию true , пропускаются любые заданные параметры. |
authenticationMode | Необязательно. Указывает режим проверки подлинности, используемый между инициатором и отвечающим устройством. Список значений приведен ниже. Значение по умолчанию — sspiNegotiated . |
defaultAlgorithmSuite | Необязательно. Задает алгоритмы шифрования сообщений и ключей. Алгоритмы и размеры ключей определяются классом SecurityAlgorithmSuite. Эти алгоритмы соответствуют алгоритмам, заданным в спецификации языка политики безопасности (WS-SecurityPolicy). Допустимые значения приведены ниже. Значение по умолчанию — Basic256 .Этот атрибут используется при работе с другой платформой, которая использует набор алгоритмов, отличный от набора по умолчанию. При внесении изменений в параметры настройки необходимо знать о сильных и слабых сторонах соответствующих алгоритмов. Это атрибут типа SecurityAlgorithmSuite. |
includeTimestamp | Логическое значение, определяющее, включается ли в каждое сообщение отметка времени. Значение по умолчанию — true . |
keyEntropyMode | Указывает способ вычисления ключей для защиты сообщений. Ключи могут быть основаны только на данных ключа клиента, только на данных ключа службы или на сочетании обоих типов данных. Допустимы следующие значения: - ClientEntropy : ключ сеанса основан на ключевых данных, предоставляемых клиентом.- ServerEntropy : ключ сеанса основан на ключевых данных, предоставляемых сервером.- CombinedEntropy : ключ сеанса основан на ключевых данных, предоставляемых клиентом и службой.Значение по умолчанию — CombinedEntropy .Это атрибут типа SecurityKeyEntropyMode. |
messageProtectionOrder | Определяет порядок, в котором к сообщению применяются алгоритмы безопасности уровня сообщения. Допустимые значения. - SignBeforeEncrypt : сначала подписать, а затем зашифровать.- SignBeforeEncryptAndEncryptSignature : сначала запишите, зашифруйте, а затем зашифруйте подпись.- EncryptBeforeSign : сначала зашифруйте, а затем подписываете.Значение по умолчанию зависит от используемой версии WS-Security. Значение по умолчанию - SignBeforeEncryptAndEncryptSignature , если используется WS-Security 1,1. Значение по умолчанию - SignBeforeEncrypt , если используется WS-Security 1.0.Это атрибут типа MessageProtectionOrder. |
messageSecurityVersion | Необязательно. Задает используемую версию WS-Security. Допустимые значения. - Windows SharePoint Services ecurity11WSTrustFebruary2005 Windows SharePoint Services ecureConversationFebruary2005 Windows SharePoint Services ecurityPolicy11 - Windows SharePoint Services ecurity10WSTrustFebruary2005 Windows SharePoint Services ecureConversationFebruary2005 Windows SharePoint Services ecurityPolicy11BasicSecurityProfile10 - Windows SharePoint Services ecurity11WSTrustFebruary2005 Windows SharePoint Services ecureConversationFebruary2005 Windows SharePoint Services ecurityPolicy11BasicSecurityProfile10 Значение по умолчанию - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11, которое может быть выражено в формате XML просто как Default . Это атрибут типа MessageSecurityVersion. |
requireDerivedKeys | Логическое значение, которое указывает, могут ли ключи быть производными от исходных ключей проверки. Значение по умолчанию — true . |
requireSecurityContextCancellation | Необязательно. Логическое значение, определяющее, следует ли отменять и завершать контекст безопасности, когда он больше не нужен. Значение по умолчанию — true . |
requireSignatureConfirmation | Необязательно. Логическое значение, определяющее, включено ли подтверждение сигнатуры WS-Security. Если установлено значение true , то сигнатуры сообщений подтверждаются респондентом. Если пользовательская привязка настроена для использования взаимных сертификатов или выданных маркеров (привязки WSS 1.1), то этот атрибут имеет значение по умолчанию true . В противном случае значение по умолчанию — false .Подтверждение сигнатуры используется для подтверждения того, что служба отвечает, получив запрос полностью. |
securityHeaderLayout | Необязательно. Определяет порядок расположения элементов в заголовке безопасности. Допустимы следующие значения: - Strict : элементы добавляются в заголовок безопасности в соответствии с общим принципом "объявление перед использованием".- Lax : элементы добавляются в заголовок безопасности в любом порядке, который подтверждает Windows SharePoint Services: безопасность сообщений SOAP.- LaxWithTimestampFirst : элементы добавляются в заголовок безопасности в любом порядке, который подтверждает Windows SharePoint Services: безопасность SOAP Message, за исключением того, что первый элемент в заголовке безопасности должен быть элемент wsse:Timestamp.- LaxWithTimestampLast : элементы добавляются в заголовок безопасности в любом порядке, который подтверждает Windows SharePoint Services: безопасность сообщений SOAP, за исключением того, что последний элемент в заголовке безопасности должен быть элемент wsse:Timestamp.Значение по умолчанию — Strict .Это элемент типа SecurityHeaderLayout. |
Атрибут authenticationMode
значение | Описание |
---|---|
Строка | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
Атрибут defaultAlgorithm
значение | Описание |
---|---|
Basic128 | Используется шифрование Aes128, Sha1 для хэша и Rsa-oaep-mgf1p для шифрования ключа. |
Basic192 | Используется шифрование Aes192, Sha1 для хэша и Rsa-oaep-mgf1p для шифрования ключа. |
Basic256 | Используется шифрование Aes256, Sha1 для хэш-кода и Rsa-oaep-mgf1p для шифрования ключа. |
Basic256Rsa15 | Используется Aes256 для шифрования сообщения, Sha1 для хэш-кода и Rsa15 для шифрования ключа. |
Basic192Rsa15 | Используется Aes192 для шифрования сообщения, Sha1 для хэш-кода и Rsa15 для шифрования ключа. |
TripleDes | Используется шифрование TripleDes, Sha1 для хэш-кода и Rsa-oaep-mgf1p для шифрования ключа. |
Basic128Rsa15 | Используется Aes128 для шифрования сообщения, Sha1 для хэш-кода и Rsa15 для шифрования ключа. |
TripleDesRsa15 | Используется TripleDes для шифрования сообщения, Sha1 для хэш-кода и Rsa15 для шифрования ключа. |
Basic128Sha256 | Используйте Aes128 для шифрования сообщений Sha256 для дайджеста сообщений и rsa-oaep-mgf1p для упаковки ключей. |
Basic192Sha256 | Используется Aes192 для шифрования сообщения, Sha256 для хэш-кода и Rsa-oaep-mgf1p для шифрования ключа. |
Basic256Sha256 | Используется Aes256 для шифрования сообщения, Sha256 для хэша и Rsa-oaep-mgf1p для шифрования ключа. |
TripleDesSha256 | Используется TripleDes для шифрования сообщения, Sha256 для хэш-кода и Rsa-oaep-mgf1p для шифрования ключа. |
Basic128Sha256Rsa15 | Используется Aes128 для шифрования сообщения, Sha256 для хэш-кода и Rsa15 для шифрования ключа. |
Basic192Sha256Rsa15 | Используется Aes192 для шифрования сообщения, Sha256 для хэш-кода и Rsa15 для шифрования ключа. |
Basic256Sha256Rsa15 | Используется Aes256 для шифрования сообщения, Sha256 для хэша и Rsa15 для шифрования ключа. |
TripleDesSha256Rsa15 | Используется TripleDes для шифрования сообщения, Sha256 для хэш-кода и Rsa15 для шифрования ключа. |
Дочерние элементы
Элемент | Description |
---|---|
<issuedTokenParameters> | Определяет текущий выданный маркер. Это элемент типа IssuedTokenParametersElement. |
<localClient Параметры> | Задает параметры безопасности локального клиента для этой привязки. Это элемент типа LocalClientSecuritySettingsElement. |
<localService Параметры> | Задает параметры безопасности локальной службы для этой привязки. Это элемент типа LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Задает значения по умолчанию, используемые для инициализации службы безопасного обмена данными. |
Родительские элементы
Элемент | Description |
---|---|
<Привязки> | Определяет все возможности пользовательской привязки. |
Замечания
Дополнительные сведения об использовании этого элемента см. в разделе "Режимы проверки подлинности SecurityBindingElement" и "Практическое руководство. Создание пользовательской привязки с помощью SecurityBindingElement".
Пример
В следующем примере показано, как настроить параметры безопасности с помощью настраиваемой привязки. Здесь показано, как использовать пользовательскую привязку для включения безопасности на уровне сообщений вместе с безопасным транспортом. Это полезно, когда требуется передавать сообщения между клиентом и службой с помощью безопасного транспорта с одновременным обеспечением безопасности на уровне сообщений. Эта конфигурация не поддерживается привязками, предоставляемыми системой.
Конфигурация службы определяет настраиваемую привязку, которая поддерживает обмен данными по протоколу TCP с защитой протоколом TLS/SSL и системой безопасности сообщений Windows. Пользовательская привязка использует сертификат службы для проверки подлинности службы на уровне транспорта и для защиты сообщений при передаче между клиентом и службой. Это достигается элементом привязки <sslStreamSecurity> . Сертификат службы настраивается с помощью поведения службы.
Кроме того, пользовательская привязка использует безопасность сообщений с типом учетных данных Windows, который является типом учетных данных по умолчанию. Это достигается элементом привязки безопасности . Если доступен механизм проверки подлинности Kerberos, то проверка подлинности как клиента, так и службы выполняется с использованием безопасности уровня сообщений. Если механизм проверки подлинности Kerberos недоступен, используется проверка подлинности NTLM. NTLM выполняет проверку подлинности клиента при подключении к службе, но не выполняет проверку подлинности службы при подключении к клиенту. Элемент привязки безопасности настроен для использования SecureConversation
authenticationType, что приводит к созданию сеанса безопасности как для клиента, так и службы. Это требуется для обеспечения работы дуплексного контракта службы. Дополнительные сведения о запуске этого примера см. в разделе "Безопасность пользовательской привязки".
<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>