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


Элемент <localServiceSettings>

Задает параметры безопасности локальной службы для этой привязки.

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

<system.serviceModel>
  <bindings>
    <customBinding>
      <binding>
        <security> для <customBinding>

Синтаксис

<security>
   <localServiceSettings detectReplays="Boolean"
      inactivityTimeout="TimeSpan"
      issuedCookieLifeTime="TimeSpan"
      maxCachedCookies="Integer" 
      maxClockSkew="TimeSpan" 
      maxPendingSessions="Integer"
      maxStatefulNegotiations="Integer"
      negotiationTimeout="TimeSpan"
      reconnectTransportOnFailure="Boolean"
            replayCacheSize="Integer"
      replayWindow="TimeSpan"
      sessionKeyRenewalInterval="TimeSpan"
      sessionKeyRolloverInterval="TimeSpan"
      timestampValidityDuration="TimeSpan" />
</security>

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

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

Атрибуты

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

detectReplays

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

inactivityTimeout

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

issuedCookieLifeTime

Значение типа TimeSpan, которое задает время существования для всех новых файлов безопасности cookie. Файлы cookie, время существования который превышает заданное время, используются повторно и снова должны быть согласованы. Значение по умолчанию — 10:00:00.

maxCachedCookies

Положительное целое число, указывающее максимальное количество файлов cookie, которые могут быть кэшированы. Значение по умолчанию — 1000.

maxClockSkew

Значение типа TimeSpan, указывающее максимальный разброс времени между системными часами взаимодействующих сторон. Значение по умолчанию — 00:05:00.

Если задано значение по умолчанию, получатель принимает сообщения с отметками времени отправки, которое на пять минут раньше или позже времени получения сообщения. Сообщения, которые не прошли проверку времени отправки, отклоняются. Данная настройка используется в сочетании с атрибутом replayWindow.

maxPendingSessions

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

maxStatefulNegotiations

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

negotiationTimeout

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

reconnectTransportOnFailure

Логическое значение, указывающее, будет ли после транспортных сбоев выполняться попытка восстановления подключений, использующих режим обмена сообщениями WS-Reliable. По умолчанию используется значение true, что означает бесконечное число попыток повторного подключения. Цикл нарушается при возникновении тайм-аута бездействия, в результате чего канал вызывает исключение при невозможности повторного подключения.

replayCacheSize

Положительное целое число, указывающее количество кэшированных параметров nonce, используемых для определения ответов. При превышении лимита самые старые параметры nonce удаляются, и создаются новые параметры nonce для новых сообщений. Значение по умолчанию — 500 000.

replayWindow

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

По истечении данного срока сообщение с тем же параметром nonce, что и у сообщения, отправленного ранее, приниматься не будет. Данный атрибут используется вместе с атрибутом maxClockSkew в целях предотвращения атак с повторением передачи пакетов. Злоумышленник может повторно отправить сообщение после закрытия окна повторной отправки сообщения. Данное сообщение, тем не менее, не пройдет проверку maxClockSkew, в результате которой отклоняются сообщения с отметками времени отправки, превышающими указанный период до или после времени получения сообщения.

sessionKeyRenewalInterval

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

sessionKeyRolloverInterval

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

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

timestampValidityDuration

Положительное значение типа TimeSpan, указывающее срок действия отметки времени. Значение по умолчанию — 00:15:00.

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

Нет.

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

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

<security> для <customBinding>

Задает параметры безопасности для пользовательской привязки.

<secureConversationBootstrap>

Задает значения по умолчанию, используемые для инициализации службы безопасного обмена данными.

Замечания

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

Описанные ниже атрибуты элемента localServiceSecuritySettings могут способствовать снижению риска атак типа «отказ в обслуживании».

  • maxCachedCookies управляет максимальным числом ограниченных по времени маркеров SecurityContextTokens, кэшируемых сервером после согласования протокола SPNEGO или SSL.

  • issuedCookieLifetime управляет временем существования маркеров SecurityContextTokens, выпускаемых сервером после согласования протокола SPNEGO или SSL. Сервер кэширует маркеры SecurityContextTokens на данный период времени.

  • maxPendingSessions управляет максимальным числом безопасных диалогов, установленных на сервере, но для которых ни одно сообщение приложения не было обработано. Данная квота препятствует установлению клиентами безопасных диалогов в службе; таким образом, служба должна отслеживать состояние каждого из клиентов, но не использовать их.

  • inactivityTimeout управляет максимальным сроком, в течение которого служба поддерживает безопасный диалог, не получая сообщений приложения в этой связи. Данная квота препятствует установлению клиентами безопасных диалогов в службе; таким образом, служба должна отслеживать состояние каждого из клиентов, но не использовать их.

В процессе сеанса безопасного диалога следует учесть, что атрибуты inactivityTimeout и receiveTimeout в привязке влияют на тайм-аут сеанса. Самый короткий из них определяет время наступления тайм-аута.

См. также

Справочник

<customBinding>
LocalServiceSecuritySettingsElement
LocalServiceSettings
LocalServiceSettings
LocalServiceSecuritySettings
CustomBinding

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

Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
How To: Create a Custom Binding Using the SecurityBindingElement
Custom Binding Security