Я пытаюсь добавить решение на основе единого входа/единого входа на основе SAML, позволяющее смешанной экосистеме веб-приложений придать конечному пользователю впечатление, что они взаимодействуют с одним приложением.Как объединить Single Sign Off и безгражданую аутентификацию
Стандартным подходом к этому, как представляется, является то, что IdP управляет аутентификацией пользователя (которая устанавливает сеанс IdP), а затем по мере необходимости выдает подписанный знак SAML на запросы для установления сеанса в каждом компонентном приложении.
Выйти можно с помощью SAML Single Sign Off, где при выводе IdP выдает обратный вызов канала каждому поставщику услуг, чтобы аннулировать сеанс.
Это отлично подходит для традиционных приложений, основанных на сеансах, но я пытаюсь выяснить, как мы интегрируем приложения, использующие токен JWT без имени, вместо сеанса на стороне сервера.
Знак на куске работает эквивалентно, мы просто выдаем JWT в ответ на знак SAML вместо того, чтобы устанавливать традиционную сессию. Выход из одной службы является практичным, просто удалив файл cookie.
Но есть ли способ достичь единого выхода? Единственный подход, который я вижу:
- Хост все лица без приложения на том же домене (или на LEST поддоменов)
- на сайт-аут, удалить все лица без куки аутентификации для этого домена, а не только один для индивидуальной заявки
- После очистки этих файлов cookie активируйте поток единого входа SAML для работы с приложениями statefull.
Есть ли более стандартный подход к этому или это всегда ручная работа?
В моих исследованиях я столкнулся с большим количеством использования токенов без гражданства для единого входа и регистрации использования единого знака из полностью заполненных приложений, используя либо домашний рост, либо стандарты, такие как SAML Sign Off. Но я не могу найти ничего более простого или более стандартного, чем то, что я описал для объединения двух в смешанной среде.
Ссылки:
- Single sign off using OAuth 2 - в то время как злоупотребление OAuth, аналогичная ситуация с тем, что я описываю, но решается за счет создания на стороне сервера для проверки состояния OAuth маркеров для достижения знака от
- Transparent user session over several sites (single sign-on + single sign-off) & How to do stateless (session-less) & cookie-less authentication? хорошо описывают тип потока аутентификации без учета состояния, который я очень хочу включить, но, похоже, полагаются либо на хранилище токенов, либо на общий сервер, либо просто полагаются на тайм-аут, а не на точный вывод
Я меньше беспокоюсь о том, что токен продолжает действовать, поскольку я не (чрезмерно) обеспокоен отзывом, за исключением случаев, когда пользователь его запрашивает. Моя главная проблема заключается в том, что, когда пользователь «выходил из системы» на общем терминале, тот, кто использует тот же браузер, не может повторно получить доступ к своему сеансу. Хотя ваш ответ действительно решает проблему аннулирования, для проверки токена требуется общий хранилище действительных идентификаторов сеанса и разрешить выход из системы SAML, что я и надеялся избежать. Спасибо за ответ, вы подтвердили мое мнение о том, что без общего состояния существуют ограниченные возможности. – EdC