Как задать имя участника-пользователя для идентификатора службы поставщика STS для привязки ws-федерации через config? - PullRequest
0 голосов
/ 17 марта 2012

Как указать имя участника службы в клиенте WCF config для эмитента STS при связывании с использованием WS-Federation?

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

Чтобы правильно использовать Kerberos, мне нужно установить основное имя пользователя STS на клиентском интерфейсе.Я не могу понять, как это сделать.

У меня возникла проблема с подключением, которая заключается в том, что откат к NTLM не работает, если указывается издатель с помощью полного доменного имени, а Kerberos не удается (сбой согласования SSPI)потому что у меня нет имени участника эмитента в конфигурации.Если вместо этого я назначу эмитента с использованием IP-адреса, то аутентификация на STS будет успешной с использованием NTLM, я думаю, поэтому у меня есть обходной путь.

STS выдает токены на основе аутентификации Windows на этой конечной точке.У него есть другие конечные точки для проверки подлинности на основе форм и т. Д.

Возможно, проблема в нашей сети связана с тем, что клиенты Silverlight, которые обращаются к веб-службам, не работают без добавления серверов в зону локальной интрасети вручную.IE.Похоже, по какой-то причине серверы приложений не рассматриваются как находящиеся в одном домене.Любые подсказки очень ценятся!

1 Ответ

0 голосов
/ 19 марта 2012

Я нашел решение относительно установки имени пользователя STS.Мне просто нужно было установить его в элементе источника привязки федерации: ОК, не знаю, почему я не смог найти это раньше, но первым делом в понедельник утром сразу же появляется ответ: http://msdn.microsoft.com/en-us/library/aa347735.aspx

Элемент эмитента в wsfederation - это конфигурация конечной точки, которая позволяет вам установить в ней имя участника-пользователя.

Схема по приведенной выше ссылке находится здесь:

<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>

Относительно проблем сети, это была проблема DNS.PTR используется вместо псевдонимов.

...