Использование нескольких протоколов доверия в сценариях федерации

Возможны сценарии, в которых федеративные клиенты взаимодействуют со службой и службой маркеров безопасности, версии доверия которых не совпадают. Код WSDL службы может содержать утверждение RequestSecurityTokenTemplate с элементами WS-Trust, версии которых не совпадают с версией службы маркеров безопасности. В таких случаях клиент Windows Communication Foundation (WCF) преобразует WS-Trust элементы, полученные из коллекции, в соответствии с RequestSecurityTokenTemplate версией доверия STS. WCF обрабатывает несовпадение версий доверия только для стандартных привязок. Все стандартные параметры алгоритма, распознаваемые WCF, являются частью стандартной привязки. В этом разделе описывается поведение WCF с различными параметрами доверия между службой и службой маркеров безопасности.

Проверяющая сторона и служба маркеров безопасности используют версию февраля 2005 г.

Код WSDL проверяющей стороны содержит следующие элементы в разделе RequestSecurityTokenTemplate:

  • CanonicalizationAlgorithm

  • EncryptionAlgorithm

  • EncryptWith

  • SignWith

  • KeySize

  • KeyType

Файл конфигурации клиента содержит список параметров.

WCF не может различать параметры клиента и службы; он добавляет все параметры и отправляет их в RequestSecurityTokenTemplate (RST).

Проверяющая сторона и служба маркеров безопасности используют версию Trust 1.3

Код WSDL проверяющей стороны содержит следующие элементы в разделе RequestSecurityTokenTemplate:

  • CanonicalizationAlgorithm

  • EncryptionAlgorithm

  • EncryptWith

  • SignWith

  • KeySize

  • KeyType

  • KeyWrapAlgorithm

Файл конфигурации клиента содержит элемент secondaryParameters, являющийся оболочкой для параметров, заданных проверяющей стороной.

WCF удаляет EncryptionAlgorithmCanonicalizationAlgorithm элементы из KeyWrapAlgorithm элемента верхнего уровня в RST, если они присутствуют внутри SecondaryParameters элемента. WCF добавляет SecondaryParameters элемент к исходящему RST неизмененному.

Проверяющая сторона использует версию февраля 2005 г., а служба маркеров безопасности - версию Trust 1.3

Код WSDL проверяющей стороны содержит следующие элементы в разделе RequestSecurityTokenTemplate:

  • CanonicalizationAlgorithm

  • EncryptionAlgorithm

  • EncryptWith

  • SignWith

  • KeySize

  • KeyType

Файл конфигурации клиента содержит список параметров.

В файле конфигурации клиента WCF не может различать параметры службы и клиента. Поэтому WCF преобразует все параметры в пространство имен Trust версии 1.3.

WCF обрабатывает KeyTypeэлементы и KeySizeTokenType элементы следующим образом:

  • Загружается код WSDL, создается привязка и присваиваются значения KeyType, KeySize и TokenType на основании параметров проверяющей стороны. Создается файл конфигурации клиента.

  • Теперь клиент может изменять любые параметры в файле конфигурации.

  • Во время выполнения WCF копирует все параметры, указанные в AdditionalTokenParameters разделе файла конфигурации клиента, кроме KeyTypeтого, KeySize и TokenType, поскольку эти параметры учитываются во время создания файла конфигурации.

Проверяющая сторона использует версию Trust 1.3, а служба маркеров безопасности - версию февраля 2005 г.

Код WSDL проверяющей стороны содержит следующие элементы в разделе RequestSecurityTokenTemplate:

  • CanonicalizationAlgorithm

  • EncryptionAlgorithm

  • EncryptWith

  • SignWith

  • KeySize

  • KeyType

  • KeyWrapAlgorithm

Файл конфигурации клиента содержит элемент secondaryParameters, являющийся оболочкой для параметров, заданных проверяющей стороной.

WCF копирует все параметры, указанные в SecondaryParameters разделе, в элемент RST верхнего уровня, но не преобразует их в пространство имен 2005 WS-Trust.