Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере федерации показана федеративная безопасность.
Детали образца
Windows Communication Foundation (WCF) обеспечивает поддержку развертывания федеративных архитектур безопасности с помощью wsFederationHttpBinding.
wsFederationHttpBinding обеспечивает безопасную, надежную и совместимую привязку, которая включает использование HTTP в качестве базового транспортного механизма для коммуникации запрос/ответ и текст/XML в качестве формата передачи для кодирования. Дополнительные сведения о федерации в WCF см. в разделе "Федерация".
Сценарий состоит из 4 частей:
Служба BookStore
BookStore STS
HomeRealm STS
Клиент BookStore
Сервис BookStore поддерживает две операции: BrowseBooks и BuyBook. Оно позволяет анонимный доступ к операции BrowseBooks, но требует проверки подлинности для доступа к операции BuyBooks. Аутентификация оформляется в виде маркера, выданного службой BookStore STS. Файл конфигурации для службы BookStore направляет клиентов на службу BookStore STS с помощью wsFederationHttpBinding.
<wsFederationHttpBinding>
<!-- This is the Service binding for the BuyBooks endpoint. It redirects clients to the BookStore STS -->
<binding name='BuyBookBinding'>
<security mode="Message">
<message>
<issuerMetadata
address='http://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
<identity>
<dns value ='BookStoreSTS.com'/>
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
Служба STS BookStore требует, чтобы клиенты аутентифицировались с помощью токена, выданного службой STS HomeRealm. Опять же, файл конфигурации для службы STS BookStore указывает клиентам на службу STS HomeRealm с помощью wsFederationHttpBinding.
<wsFederationHttpBinding>
<!-- This is the binding for the clients requesting tokens from this STS. It redirects clients to the HomeRealm STS -->
<binding name='BookStoreSTSBinding'>
<security mode='Message'>
<message>
<issuerMetadata
address='http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
<identity>
<dns value ='HomeRealmSTS.com' />
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
Последовательность событий при доступе BuyBook к операции выглядит следующим образом:
Клиент проходит проверку подлинности в HomeRealm STS, используя учетные данные Windows.
HomeRealm STS выдает токен, который можно использовать для аутентификации в BookStore STS.
Клиент аутентифицируется в STS BookStore с помощью токена, выданного системой STS HomeRealm.
Служба STS BookStore выдает маркер, который можно использовать для проверки подлинности в службе BookStore.
Клиент аутентифицируется в сервисе BookStore с помощью токена, выданного BookStore STS.
Клиент обращается к
BuyBookоперации.
См. следующие инструкции по настройке и запуску этого примера.
Замечание
Для выполнения этого примера необходимо иметь разрешения на запись в каталог wwwroot .
Настройка, сборка и запуск примера
Откройте командное окно пакета SDK. В примере пути выполните Setup.bat. При этом создаются виртуальные каталоги, необходимые для примера, и устанавливаются необходимые сертификаты с соответствующими разрешениями.
Замечание
Пакетный файл Setup.bat предназначен для запуска из командной строки Пакета SDK для Windows. Для этого необходимо, чтобы переменная среды MSSDK указывала на каталог, в котором установлен пакет SDK. Эта переменная среды автоматически устанавливается в командной строке пакета SDK для Windows. В Windows Vista необходимо убедиться, что совместимость управления IIS 6.0 установлена, так как настройка использует сценарии администратора IIS. Для запуска скрипта настройки в Windows Vista требуются права администратора.
Откройте FederationSample.sln в Visual Studio и выберите "Сборка решения" в меню "Сборка". При этом создаются общие файлы проекта, служба Bookstore, служба Bookstore STS, HomeRealm STS и их развертывание в IIS. Это также создает клиентское приложение Bookstore и помещает исполняемый BookStoreClient.exe в папку FederationSample\BookStoreClient\bin\Debug.
Дважды щелкните BookStoreClient.exe. Откроется окно BookStoreClient.
Вы можете просмотреть книги, доступные в книжном магазине, нажав кнопку "Обзор книг".
Чтобы приобрести определенную книгу, выберите книгу в списке и нажмите кнопку "Купить книгу". Приложение запускается и проходит проверку подлинности с помощью проверки подлинности Windows с помощью службы маркеров безопасности HomeRealm.
Этот пример настроен для того, чтобы пользователи могли приобрести книги, которые стоят $ 15 или меньше. Попытка купить книги, которые стоят более $15, приводит к тому, что клиент получает сообщение "Доступ запрещен" от службы книжного магазина.
Замечание
Пример не обновляет кредитный лимит пользователя после покупки. Вы можете многократно приобрести книги в пределах (фиксированного) кредитного лимита пользователя.
Очистка
Запустите Cleanup.bat. При этом удаляются виртуальные каталоги, созданные во время настройки, а также удаляются сертификаты, установленные во время установки.