Согласно спецификации WS-Federation 1.2, этот сценарий рассматривается как профиль пассивного инициатора запроса. Клиенты браузера используются для перенаправления форм; в клиентах отсутствует логика сериализации WS-Trust. Это позволяет защитить веб-приложение ASP.NET, в котором используется пассивная федерация, двумя указанными ниже способами.
- С помощью элемента управления
FederatedPassiveSignIn.
- Добавьте в раздел конфигурации
Microsoft.IdentityModel
файлаweb.config
элемент<PassiveRedirect>
.
Второй способ — включить в веб-приложении модуль WSFederationAuthenticationModule. Для поддержки сеанса проверки подлинности также потребуется модуль SessionAuthenticationModule. Дополнительные сведения см. в разделе Общие сведения о модуле федеративной проверки подлинности (WS-Federated Authentication Module).
Существует два метода настройки страницы входа для федерации: 1) с помощью элемента управления FederatedPassiveSignIn и 2) путем настройки модуля WS-FAM для пассивного перенаправления.
Метод 1. Использование элемента управления FederatedPassiveSignIn
WIF предоставляет элемент управления FederatedPassiveSignIn, с помощью которого можно легко интегрировать в веб-приложения модель удостоверений на основе утверждений и обеспечить поддержку утверждений в веб-приложениях. С помощью этого элемента управления можно делегировать функции проверки подлинности службе STS, указав ее адрес, на который веб-приложение будет перенаправлять пользователей. При получении ответа от службы STS элемент управления выполняет проверку подлинности содержащегося в ответе маркера безопасности. При успешной проверке подлинности элемент управления выпускает куки-файл, который вызывающая сторона будет использовать при последующих вызовах, чтобы избежать повторных перенаправлений на службу STS. По истечении срока действия куки-файла вызывающая сторона снова должна пройти проверку подлинности в службе STS и получить новый маркер безопасности.
Если используется Visual Studio 2005, перед началом
работы установите элементы управления WIF на панель элементов
Visual Studio. Чтобы это сделать, откройте панель элементов,
щелкните ее правой кнопкой мыши и выберите пункт Выбрать
элементы.... В открывшемся диалоговом окне перейдите на вкладку
Компоненты .NET Framework и нажмите кнопку Обзор в
правом нижнем углу. Выберите сборку
Microsoft.IdentityModel.dll
в каталоге Reference
Assemblies в папке установки WIF и нажмите кнопку Открыть.
Нажмите кнопку ОК. Новые элементы управления появятся на
панели элементов в категории Стандартные. Один из элементов
управления (FederatedPassiveSignIn
) будет
использоваться далее.
- В Visual Studio добавьте на страницу элемент управления
FederatedPassiveSignIn
.
- Присвойте свойству Issuer URL-адрес указанного
поставщика маркеров.
- Задайте свойство Realm. Это свойство используется
службой STS для идентификации экземпляра проверяющей стороны и
выбора соответствующей политики выпуска маркеров и сертификата
шифрования.
- В разметке можно задать обработчики событий, например
обработчик, который будет вызываться при проверке маркера. Также
можно указать, будет ли возвращаться пользователю куки-файл после
проверки подлинности маркера (свойству SignInMode присвоено
значение
Session
) или нет. В последнем случае (свойству SignInMode присвоено значениеSingle
) вызывающая сторона будет перенаправляться на службу STS при каждом новом запросе пользователя. Значение по умолчанию —Session
.
- Внешний вид и поведение элемента управления задается с помощью
свойств в категории Внешний вид. Например, свойство
SignInButtonStyle определяет, будет ли элемент управления
отображаться на странице в виде изображения, реагирующего на щелчок
мышью, или в виде простой ссылки.
В приведенном ниже примере кода показана разметка для
элемента управления FederatedPassiveSignIn
.
Копировать код | |
---|---|
<wif:FederatedPassiveSignIn id="FederatedPassiveSignIn1" runat="server" Issuer="https://www.contoso.com:441/PassiveIdentityProvider/default.aspx" SignInButtonType="Link" Realm="https://www.contoso.com:441" OnSecurityTokenReceived="FederatedPassiveSignIn1_SecurityTokenReceived"> </wif:FederatedPassiveSignIn> |
Метод 2. Использование элемента <passiveRedirect> для автоматического входа в систему вызывающей стороны
В модуле WS-FAM есть элемент конфигурации
<passiveRedirect>
, предназначенный для включения
автоматического перенаправления непроверенных запросов
пользователей на назначенную службу STS. Чтобы включить пассивное
перенаправление, добавьте в раздел
Microsoft.IdentityModel
элемент
federatedAuthentication
. При включенном автоматическом
пассивном перенаправлении используются два обязательных атрибута. В
атрибуте issuer
указывается служба STS, выпускающая
маркеры. Атрибут realm
используется для идентификации
проверяющей стороны в службе STS. Эти атрибуты аналогичны свойствам
Issuer
и Realm
элемента управления
FederatedPassiveSignIn
, описанным в предыдущем
разделе. В следующем примере кода показано, как добавить этот
элемент.
Копировать код | |
---|---|
<federatedAuthentication enabled="true"> <passiveRedirect enabled="true" issuer="https://localhost/SimplePassiveSTS1/default.aspx" realm="https://localhost/ClaimsAwareWebApp1"></passiveRedirect> </federatedAuthentication> |
Дополнительные сведения см. в разделе Инструкции: создание приложения проверяющей стороны ASP.NET.