Время ожидания сеанса ADFS 2.0 в сценарии единого входа
В настоящее время мы работаем над проектом единого входа, который использует ADFS 2.0. как доверие IDP/CP. Одним из основных требований к дизайну приложения является повторная аутентификация пользователя после периода простоя (может быть любым). После тщательного поиска я обнаружил лишь несколько реализаций (кроме примеров SharePoint), в которых говорится о настройках WebSSOlifetime и TokenLifeTime на сервере ADFS. Я понимаю, что WebSSOLifeTime - это настройка сервера (значение по умолчанию:480), а TokenLifeTime - настройка уровня RP (значение по умолчанию 0 - 10 часов) для истечения срока действия токена. Чтобы случайным образом протестировать настройки, я изменил значение WebSSOlifetime на 5 минут, а TokenLifeTime на 3 минуты для моего приложения RP. Но он не инициировал повторную аутентификацию после 5 минут простоя (как установлено в WebSSOlifetime). Приложения RP, которые я тестировал, включают в себя - приложения Google - интегрированную систему единого входа ADFS и одностраничное приложение для проверки значений претензий. Было бы здорово, если бы кто-нибудь мог опубликовать какие-либо соответствующие указатели на функции обслуживания сеанса ADFS 2.0.
1 ответ
Я нашел решение этого после некоторого пота. Этот пост в Stackru предоставил мне отправную точку (спасибо за это!). Ключевым параметром, который управляет приглашением для входа в систему для IP/STS, является значение свежести (которое является необязательным параметром, как упомянуто в документации Oasis).
Этот параметр (установленный как freshness="0") при включении в раздел federatedAuthentication вашего web.config предложит IDP проверить значение свежести токена на основе текущего времени в параметре WCT. После этого я обнаружил (после многих испытаний), что TokenLifeTime, установленный через скрипт оболочки, входит в картину. Это (TokenLifeTime) контролирует время, в течение которого пользователь может быть активным, прежде чем перенаправить его на экран входа в систему.
Как вы можете видеть в запросе URL: https://XXX/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fXXX%2fXXX&wfresh=0&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fXXX%252fDefault.aspx&wct=2013-02-14T01%3a36%3a17Z
Значения wfresh и wctx передаются в IDP для проверки.
Я все еще не уверен, как все (свежесть, TokenLifetime и WebSSOLifetime) синхронизируются за кулисами. Хорошее объяснение по поводу фона было бы очень полезно (и, конечно, добавит немного репутации:)).