ITfoxtec SAML с веб-серверами с балансировкой нагрузки
Мы используем библиотеку ITfoxtec.Identity.Saml2 для аутентификации в нашей службе единого входа.
Проблема в том, что мы используем это на серверах с балансировкой нагрузки. Если мы отключаем липкие сессии, приложение больше не работает.
Я попытался установить isPersistent= true, когда мы создаем сеанс, но это никак не повлияло. Я видел похожие проблемы, связанные с хранением состояния SAML в веб-ферме, с предложениями от:
Изменение конфигурации так, чтобы все серверы в веб-ферме использовали один и тот же ключ компьютера. Создание того, что составляет службу состояний для хранения аутентификации.
Я думаю, что был бы способ сохранить пользовательское состояние в файле cookie, который можно будет использовать повторно независимо от того, используется ли балансировка нагрузки или нет.
Любые предложения о том, как атаковать это?
1 ответ
Используя ITfoxtec.Identity.Saml2.Mvc и ASP.NET MVC isPersitent
это параметр на CreateSession
метод. Метод CreateSession, используемый в примере приложения ASP.NET.
Метод вызывается после того, как ответ SAML 2.0 принят для создания файла cookie идентификации пользователя, обрабатываемого SessionAuthenticationModule
,
По умолчанию куки идентификации пользователя не являются постоянными. Настройка isPersitent=true
привести к созданию постоянных файлов cookie идентификации пользователя.
Не должно быть проблемой использовать балансировку нагрузки, если только isReferenceMode=true
, Эталонный режим изменяет куки-файлы идентификации пользователя с автономного на указатель.
В эталонном режиме во время сериализации создается простой артефакт, а материал токена сохраняется в кэше токена, который связан с обработчиком токена. Кэш токена является экземпляром класса, производным от SessionSecurityTokenCache. Для сценариев веб-фермы кэш токена должен работать на всех узлах фермы.
Может быть, вам нужно реализовать кеш токена.