Что должно произойти между SAML SP, тайм-аутом сеанса и IDP? - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время я тестирую свой код SAML SP для SSOCircle IDP. SP в настоящее время настроен на тайм-аут входа в систему через 7200 секунд (2 часа); то есть, если пользователь пытается выполнить аутентификацию через 2 часа после того, как он в последний раз сделал это, ему нужно снова ввести свои учетные данные в IDP, чтобы получить новое AuthnStatement, которое находится в течение 2 часов до этого момента.

Однако у ВПЛ другой тайм-аут. Я не уверен, как долго, но это дольше, чем 2 часа. Это означает, что есть окно, когда SP требует, чтобы пользователь снова вошел в систему, но IDP все равно будет автоматически использовать тот же AuthnStatement. Это, конечно, не может подтвердить. Чтобы обойти это, пользователь может вручную перейти к SSOCircle и выйти из системы.

Это кажется ужасно неудобным. Для меня было бы больше смысла, если бы SP мог перенаправить пользователя для повторного ввода его учетных данных в IDP. Но я не видел ничего в документации или онлайн, ссылающихся на это окно. Я могу вручную установить WebSSOProfileConsumerImpl.maxAuthenticationAge, чтобы соответствовать IDP, но похоже на хрупкую повязку.

Я предполагаю, что все ВПЛ в этом отношении будут вести себя одинаково. Это верно? Что SP должен делать по-другому в этом окне?

1 Ответ

0 голосов
/ 07 мая 2018

Я предполагаю, что все ВПЛ в этом отношении будут вести себя одинаково. Это правильно?

Более или менее, да, но дело не в том, как IdP ведут себя по сравнению с SP. Это связано с тем, что сеанс приложения, установленный SP, полностью отделен от сеанса SSO, установленного IdP. Дело не в том, что должно произойти. Это то, что вы хотите увидеть. Есть много сценариев, в которых этот вариант использования оказывается раздражающим или очень много других, где это вполне приемлемо. Вам нужно решить, что работает для вас.

Что SP должен делать по-другому в этом окне?

Если вы хотите заставить IdP повторно запрашивать учетные данные и игнорировать свой собственный сеанс, вы можете пометить запрос аутентификации, отправленный для использования forcedAuthn=true. Затем IdP должен бросить вызов пользователю, предполагая, что он поддерживает запросы принудительной аутентификации SAML.

...