Инструкции: создание приложения проверяющей стороны WCF

В этом упражнении служба STS не используется. Здесь создается служба WCF для доступа к утверждениям текущего пользователя через свойство IClaimsPrincipal. Для этого необходимо добавить в проект модуль ClaimsPrincipalHttpModule с помощью программы FedUtil. Этот модуль позволяет преобразовать объект IPrincipal текущего пользователя в объект IClaimsPrincipal.

Примечание

Для корректной работы FedUtil необходимо запустить Visual Studio в режиме с повышенными правами.

Сначала создайте службу WCF, поддерживающую утверждения, как показано в разделе Служба WCF, поддерживающая утверждения.

Затем щелкните правой кнопкой мыши проект в обозревателе решений и выберите команду "Добавить ссылку на службу STS".

392cd2c5-5098-44c7-9738-f43e40da090f

Откроется программа FedUtil. Откроется диалоговое окно FedUtil со страницей приветствия служебной программы федерации.

35d73636-c363-47cf-a67f-16b3ca195d40

На этой странице необходимо заполнить два поля:

  1. Местоположение конфигурации приложения: укажите путь к файлу web.config службы WCF. При запуске программы FedUtil не из Visual Studio это поле пусто. При запуске программы FedUtil запущена из Visual Studio данное поле уже будет содержать путь к файлу web.config текущего проекта. Файл web.config должен к этому моменту существовать и находиться в состоянии по умолчанию (в том, в каком он был создан средствами Visual Studio). Если программа FedUtil запускается несколько раз для одного и того же файла web.config, она будет просто перезаписывать содержимое, добавляемое в web.config.

  2. URI приложения: укажите код URI своей службы WCF. Следует иметь в виду, что это SVC-файл. При запуске программы FedUtil не из Visual Studio это поле пусто. При запуске программы FedUtil из Visual Studio данное поле будет содержать два кода URI для этого проекта: один с именем localhost, другой с полным доменным именем данного компьютера (если оно определено). Этот код URI используется в качестве значения области при настройке приложения для поддержки утверждений. Если код URI не является безопасным (т. е. не начинается с https://), при нажатии кнопки "Далее" появится соответствующее предупреждение.

После ввода необходимых сведений нажмите кнопку "Далее". Откроется страница "Сведения о приложении".

c869d84f-313b-436c-800c-48570365b607

Выберите имя настраиваемой службы и имя контракта конечной точки, после чего нажмите кнопку "Далее". Если у службы несколько конечных точек, а утверждения требуется настроить только для некоторых из них, выберите эти конечные точки.

Откроется страница "Служба STS".

bdecc626-5ded-43dc-b569-3513a2bddbeb

Выберите параметр "Без службы STS". Будет создана служба WCF, поддерживающая утверждения и не использующая для выпуска утверждений службу STS. Эта служба получает созданные платформой утверждения по умолчанию. Нажмите кнопку "Далее". Откроется страница "Сводка".

8619f6b7-c5a8-4da8-87e9-de5bb9f67638

Нажмите кнопку "Готово".

Если сейчас открыть файл web.config, можно увидеть, что он изменен программой FedUtil:

  • Элемент <configuration>/<configSections> теперь содержит ссылку на раздел конфигурации microsoft.IdentityModel:

    <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    
  • Элемент <configuration> теперь включает раздел конфигурации microsoft.identityModel с указанным ранее универсальным кодом ресурса (URI) приложения:

    <microsoft.identityModel> <service name="ClaimsAwareService1.Service"> <audienceUris> <add value="https://localhost:64705/ClaimsAwareService1/Service.svc" /> </audienceUris> </service> </microsoft.identityModel>