Проверяющая сторона в сценарии веб-фермы (IsSessionMode = true)

Во-первых, я должен был установить IsSessionMode = true, чтобы уменьшить размер файла cookie.

Мне нужно сбалансировать 2 экземпляра RP Я сделал следующие шаги на 2 разных машинах с экземплярами RP:

1) Подписан на событие ServiceConfigurationCreated

private void WSFederationAuthenticationModule_ServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
    {
        X509Certificate2 certificate = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, ConfigHelper.FrontendCertificate);

        var sessionTransforms = new List<CookieTransform>(new CookieTransform[] 
        { 
            new DeflateCookieTransform(), 
            new RsaEncryptionCookieTransform(certificate),
            new RsaSignatureCookieTransform(certificate)
        });

        SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
        e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
    }

2) забрал сессию в госслужбу asp.net

Проблема:

Когда я пытаюсь войти в систему STS, я получаю бесконечное перенаправление с RP на STS

Я не могу понять почему. Токен хранится в сеансе (IsSessionMode = true). Служба состояний asp.net разделяет сеанс между двумя разными хостами.

В чем проблема? Что я упустил?

Я думаю, что я не понимаю что-то важное.

1 ответ

Мое предположение заключается в том, что WIF просто не может установить сеанс на стороне RP, и пользователь попадает на несанкционированную страницу (возможно, на страницу с пользовательской ошибкой?), Которая предлагает WIF перенаправить обратно на STS для аутентификации, и теперь вы Зацикливаемся.

Некоторые эксперименты, которые вы можете попробовать:

  1. Отключите IsSessionMode = false и посмотрите, не возникла ли проблема. Если это не так, то вы знаете, что WIF задыхается при создании сеанса, и вы можете проверить, чтобы убедиться, что ваш RP успешно связывается со службой состояний ASP.NET, например.

  2. Установите Fiddler (http://fiddler2.com/fiddler2/), который является бесценным инструментом для отладки таких бесконечных перенаправлений. Соберите несколько следов, посмотрите, что происходит. Вы также можете рассмотреть возможность размещения вашего RP web.config.

Другие вопросы по тегам