Поделиться через


<wsFederationHttpBinding>

Определяет привязку, которая поддерживает спецификацию WS-Federation.

Иерархия схемы

<system.serviceModel>
  <bindings>
    <wsFederationHttpBinding>

Синтаксис

                <wsFederationHttpBinding>
                    <binding 
                        bypassProxyOnLocal="Boolean"
                        closeTimeout="TimeSpan" 
                        hostNameComparisonMode="StrongWildcard/Exact/WeakWildcard"
                        maxBufferPoolSize="integer"
                        maxReceivedMessageSize="integer"
                        messageEncoding="Text/Mtom" 
                                name="string"
                        openTimeout="TimeSpan" 
                        privacyNoticeAt="Uri"
                        privacyNoticeVersion="Integer"
                        proxyAddress="Uri" 
                        receiveTimeout="TimeSpan"
                        sendTimeout="TimeSpan"
                        textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/ Utf8TextEncoding"
                        transactionFlow="Boolean"
                        useDefaultWebProxy="Boolean">
                        <security mode="None/Message/TransportWithMessageCredential">
                         <message 
                            algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                            issuedTokenType="string" 
                            issuedKeyType="SymmetricKey/PublicKey"
                            negotiateServiceCredential="Boolean" >
                            <claimTypeRequirements>
                               <add claimType="URI"
                                    isOptional="Boolean" />
                            </claimTypeRequirements>
                                        <issuer address="Uri" >
                               <headers>
                                  <add name="String"
                                       namespace="String" />
                                          </headers>
                                              <identity>
                                                 <certificate encodedValue="String"/>
                                                <certificateReference findValue="String" 
                                                 isChainIncluded="Boolean"
                                            storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                                  storeLocation="LocalMachine/CurrentUser"
                                                   X509FindType=System.Security.Cryptography.X509certificates.X509findtype/>
                                                   <dns value="String"/>
                                                <rsa value="String"/>
                                                <servicePrincipalName value="String"/>
                                                <usePrincipalName value="String"/>
                                              </identity>
                                        </issuer>
                                        <issuerMetadata address=String" >
                               <headers>
                                  <add name="String"
                                       namespace="String" />
                               </headers>
                               <identity>
                                  <certificate encodedValue="String"/>
                                  <certificateReference findValue="String" 
                                     isChainIncluded="Boolean"
                                     storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
                                     storeLocation="LocalMachine/CurrentUser"
                                     x509FindType=System.Security.Cryptography.X509certificates.X509findtype/>
                                  <dns value="String"/>
                                  <rsa value="String"/>
                                  <servicePrincipalName value="String"/>
                                  <usePrincipalName value="String"/>
                               </identity>
                                        </issuerMetadata>
                            <tokenRequestParameters>
                               <xmlElement>
                               </xmlElement>
                            </tokenRequestParameters>
                           </message>
                        </security>
                        <reliableSession ordered="Boolean"
                           inactivityTimeout="TimeSpan"
                           enabled="Boolean" />
                       <readerQuotas             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />    </binding>
                </wsFederationBinding>

Атрибуты и элементы

В следующих разделах описываются атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание

bypassProxyOnLocal

Логическое значение, определяющее, будет ли выполняться обход прокси-сервера для локальных адресов. Значение по умолчанию — false.

closeTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.

hostnameComparisonMode

Задает режим сравнения имен узлов HTTP для анализа универсальных кодов ресурсов (URI). Это атрибут типа HostnameComparisonMode, который указывает, используется ли имя узла для доступа к службе при сравнении по универсальному коду ресурсов (URI). Значение по умолчанию — StrongWildcard, при котором имя узла в найденном соответствии не учитывается.

maxBufferPoolSize

Целое число, задающее максимальный размер буферного пула для этой привязки. Значение по умолчанию — 524 288 байт (512 * 1024). Многие элементы Windows Communication Foundation (WCF) используют буферы. При создании буферов и их уничтожении после каждого использования расходуется слишком много ресурсов; при сборке мусора для буферов также расходуется слишком много ресурсов. Буферные пулы позволяют брать буфер из пула, использовать его, а затем возвращать обратно, когда он больше не требуется. Это позволяет избежать излишней нагрузки, связанной с созданием и уничтожением буферов.

maxReceivedMessageSize

Положительное целое число, задающее, в байтах, максимальный размер сообщения (включая заголовки), которое можно получить по каналу, настроенному с использованием этой привязки. Отправитель сообщения, превышающего это ограничение, получит ошибку SOAP. Получатель отклоняет сообщение и создает запись о событии в журнале трассировки. Значение по умолчанию — 65536.

messageEncoding

Определяет кодировщик, используемый для кодировки сообщения. Допустимы следующие значения:

  • Text: используется кодировщик текстовых сообщений.

  • Mtom: используется кодировщик MTOM 1.0 (Message Transmission Organization Mechanism).

Значение по умолчанию — Text.

Это атрибут типа WSMessageEncoding.

name

Строка, содержащая имя конфигурации привязки. Это значение должно быть уникальным, поскольку оно используется в качестве идентификатора привязки. Начиная с версии .NET Framework 4 для привязок и поведений необязательно задавать имена. Дополнительные сведения о конфигурации по умолчанию и о безымянных привязках и поведениях см. в разделах Simplified Configuration и Simplified Configuration for WCF Services.

openTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции открытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.

privactyNoticeAt

Строка, задающая универсальный код ресурса (URI), определяющий расположение примечания о конфиденциальности.

privactyNoticeVersion

Целое число, определяющее версию текущего уведомления о конфиденциальности.

proxyAddress

Универсальный код ресурса (URI), задающий адрес прокси-сервера HTTP. Если параметр useDefaultWebProxy имеет значение true, данный параметр должен иметь значение null. Значение по умолчанию — null.

receiveTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции получения. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:10:00.

sendTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции отправки. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.

textEncoding

Задает кодировку, используемую при отправке сообщений через привязку. Допустимы следующие значения:

  • BigEndianUnicode: кодировка Юникод (обратный порядок байтов).

  • Unicode: 16-разрядная кодировка.

  • UTF8: 8-разрядная кодировка.

Значение по умолчанию — UTF8. Это атрибут типа Encoding.

transactionFlow

Логическое значение, определяющее, поддерживает ли привязка потоковые спецификации WS-Transactions. Значение по умолчанию — false.

useDefaultWebProxy

Логическое значение, указывающее, должен ли использоваться автоматически настроенный системный прокси-сервер HTTP. Если данный атрибут имеет значение true, адрес прокси-сервера должен быть равен null (то есть не задан). Значение по умолчанию — true.

Дочерние элементы

Элемент Описание

<security> для <wsFederationHttpBinding>

Определяет параметры безопасности сообщения. Это элемент типа WSFederationHttpSecurityElement.

<readerQuotas>

Определяет ограничения по сложности сообщений SOAP, которые могут обрабатываться конечными точками, настроенными с использованием этой привязки. Это элемент типа XmlDictionaryReaderQuotasElement.

reliableSession

Указывает, устанавливаются ли между конечными точками канала надежные сеансы.

Родительские элементы

Элемент Описание

<bindings>

Этот элемент содержит коллекцию стандартных и пользовательских привязок.

Замечания

Федерация — это возможность совместного использования удостоверений в нескольких системах в целях проверки подлинности и авторизации. Эти удостоверения могут ссылаться на пользователей или на компьютеры. Федеративный протокол HTTP поддерживает безопасность SOAP и безопасность в смешанном режиме, но не поддерживает использование исключительно безопасности транспорта. Эта привязка обеспечивает поддержку системой Windows Communication Foundation (WCF) протокола WS-Federation. Службы, настроенные с использованием этой привязки, должны использовать транспорт HTTP.

Привязки состоят из стека элементов привязки. Стек элементов привязки в

wsFederationHttpBinding идентичен тому, что содержится в wsHttpBinding

если <security> для <wsFederationHttpBinding> присвоено значение по умолчанию Message.

Привязка wsFederationHttpBinding управляет сведениями о параметрах безопасности сообщений в Элемент <message> <wsFederationHttpBinding>. Обратите внимание, что элемент <security> для <wsFederationHttpBinding> обеспечивает доступ на получение только в качестве системы безопасности, используемой привязкой, и его нельзя изменить после создания привязки.

Привязка wsFederationHttpBinding также предоставляет атрибут privactyNoticeAt для установки и извлечения универсального кода ресурса (URI), определяющего расположение примечания о конфиденциальности.

Обеспечение безопасности политики особенно важно в федеративных сценариях. Для защиты политики от злоумышленников рекомендуется использовать определенную систему безопасности, например протокол HTTPS.

В федеративных сценариях с использованием этой привязки политика службы потенциально содержит важные сведения, например ключ для шифрования выдаваемого маркера (SAML), тип утверждений, помещаемых в маркер, и так далее. Если политика подделана, атакующий может обнаружить ключ выданного маркера, что приводит к дальнейшим подделкам, раскрытию сведений и другим вредоносным действиям. Чтобы предупредить злонамеренные действия, политика должна быть получена от службы безопасным способом (например, с помощью протокола HTTPS).

Дополнительные сведения об этой привязке см. в разделе How to: Create a WSFederationHttpBinding.

Пример

<configuration>
<system.ServiceModel>
<bindings>
<wsFederationHttpBinding>
    <binding 
        bypassProxyOnLocal="false"
        transactionFlow="false"
        hostNameComparisonMode="WeakWildcard"
        maxReceivedMessageSize="1000"
        messageEncoding="Mtom" 
        proxyAddress="http://foo/bar" 
        textEncoding="Utf16TextEncoding"
        useDefaultWebProxy="false">
        <reliableSession ordered="false"
            inactivityTimeout="00:02:00" enabled="true" />
        <security mode="None">
           <message negotiateServiceCredential="false"
                algorithmSuite="Aes128"
                issuedTokenType="saml" 
                issuedKeyType="PublicKey">
               <issuer address="https://localhost/Sts" />
           </message>
        </security>
    </binding>
</wsFederationBinding>
</bindings>
</system.ServiceModel>
</configuration>

См. также

Справочник

WSFederationHttpBinding
WSFederationHttpBindingElement

Основные понятия

<binding>

Другие ресурсы

How to: Create a WSFederationHttpBinding
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients