Технология единого входа в систему JWT с отключенным сторонним cookie - PullRequest
0 голосов
/ 05 июня 2018

Я разработал стратегию единого входа для входа в систему / выхода из системы / обновления для нескольких доменов с помощью токенов JWT.Управление единым входом осуществляется через встроенные фреймы postMessage, как описано здесь: Поток единого входа с использованием JWT для междоменной аутентификации

Проблема, с которой я столкнулся, заключается в том, что у пользователя отключены сторонние файлы cookie в его браузере.

Тогда метод postMessage с iframe больше не работает:

  • При передаче сообщения сверху вниз (установка cookie внутри iframe), оно завершается неудачей
  • При передаче сообщения снизу вверх (чтение файла cookie внутри iframe) оно также завершается сбоем

Поэтому мне необходимо разработать резервный рабочий процесс для всех пользователей с отключенными сторонними файлами cookie.

Работает следующим образом:

  • Пользователь регистрируется на сервере авторизации
  • На сервере аутентификации устанавливается cookie-файл
  • Пользователь перенаправляется обратно на страницу Aи еще один файл cookie (с тем же содержимым) находится там
  • Пользователь заходит на страницу B и хочет войти туда
  • Пользователь перенаправляется на сервер авторизации.Файл cookie распознается, и пользователь перенаправляется обратно на страницу B, и другой файл cookie (с тем же содержимым) устанавливается
  • Все 3 файла cookie теперь "синхронизированы"
  • Проблема возникает, когда пользовательобновляет свой токен на странице B.затем он не может обновить его снова на странице A, и он должен снова войти в систему на странице A
  • Поскольку TTL маркера доступа очень короткий, это очень плохой опыт

MyВывод: если пользователь отключил сторонние файлы cookie, удалите весь SSO.Пользователь просто должен войти в систему на каждой странице.

Я прав или я что-то упускаю?

...