Как Single-logout работает с OKTA(IDP)-Shibboleth(SP)-App

OKTA-Шибболет (Apache) -Nakisa (Tomcat)

SSO работает для входа в систему. Теперь мне нужно настроить Logout. Таким образом, пользователь выходит из приложения, пользователь должен быть перенаправлен на страницу OKTA с плитками.

Но в настоящее время пользователь снова перенаправляется в приложение.

Он отправляет пользователя в /logout?redirect=default.html, но этот default.html фиксируется правилом Apache и снова регистрирует пользователя.

Похоже, что он должен нажать https://xxxx/Shibboleth.sso/Logout. Когда я получаю доступ к этому URL, он говорит, что выход из системы успешно завершен, хотя он не возвращается в OKTA. Означает ли это, что в настройках выхода из приложения им нужно перенаправить на это?

Но как мне заставить пользователя снова вернуться в IdP(т.е. OKTA)?

Это то, что я предполагаю, что это произойдет.

Logout button click > logout from Shibboleth > return to OKTA so user can click other tiles. 

Что-то для настройки Shibboleth2.xml? Документ говорит, что мне просто нужно настроить следующее, которое есть по умолчанию.

<!-- SAML and local-only logout. -->
        <Logout>SAML2 Local</Logout>

Но как он перенаправляет пользователя в OKTA(IdP), когда пользователь выходит из системы? Это настроено в метаданных IdP?

1 ответ

Решение

Вы можете перенаправить пользователя после локального события выхода из системы куда угодно, передав ?return= параметр URL-адрес, то есть вы должны обновить ссылку на выход из системы:

https://xxxx/Shibboleth.sso/Logout?return=https%3A%2F%2Fgoogle.com

для того, чтобы перенаправить людей в Google после выхода из системы.

Теперь вам нужен только URL-адрес Okta, чтобы вернуть людей в... поэтому я думаю, что если ваш клиент Okta является "foobar.okta.com", то перенаправление их после локального выхода на страницу входа Okta не должно побуждать их к входу, так как у них уже будет сессия Okta... так что, возможно, попробуйте:

https://xxxx/Shibboleth.sso/Logout?return=https%3A%2F%2Ffoobar.okta.com%2Flogin

Конечно, вам нужно будет это проверить... но это должно сработать, и при вероятности того, что сессия Shibboleth SP пользователя будет активна, а сессия Okta будет аннулирована с помощью какого-то другого механизма, который просто вернет их их обычная страница входа Okta.

Очевидно, вы можете перенаправить их на любую конечную точку с помощью return параметр, например, любой URL выхода из Okta (если вы тоже хотите убить их сеанс Okta).

Единственный выход, который настраивается с помощью метаданных, - это SLO (одиночный выход), т. Е. Если вы этого хотите, Shibboleth может перенаправить пользователя в Okta после завершения выхода из сеанса SP вместе со специальным ремеслом. <LogoutRequest> полезная нагрузка подтверждения, которую Okta будет анализировать и действовать любым количеством способов, то есть, убивая сеанс Okta пользователя, распространяя последующее инициированное Okta <LogoutRequest> утверждения другим поставщикам услуг и т. д. На практике это никогда не срабатывает, потому что такие конфигурации очень трудно заставить работать между всеми соответствующими сторонами.

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