Azure AD - несколько вкладок или браузеров - управление сессиями - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь определить, как обрабатывать управление сессиями с помощью нескольких вкладок и браузеров. Я хочу, чтобы мое приложение реагирования:

  • разрешало только один активный токен, чтобы при входе в новую вкладку или браузер сеанс предыдущей вкладки завершался (или, по крайней мере, будущие запросы наэто было бы недействительным). В настоящее время я могу войти в систему любое количество раз на новых вкладках или в разных браузерах и каждый раз получать новый токен, предыдущие также будут работать.

  • Если вы дублируете вкладку, тот же сеанс/ Локальное хранилище информации есть, поэтому токен тот же, это допустимо.

  • Если у вас есть две вкладки с помощью дублирования, и вы выходите из одной, другая должна перестать работать, потому чтотокен больше не должен быть действительным

Я использую пакетact-adal и в основном следую Это руководство для сеанса mgmnt , но это недостающие требования I 'Я пытаюсь заполнить. Я не могу найти ничего об этих конфигурациях в документации AAD. Все, что я нашел, это параметры тайм-аута, ничего о одновременных вкладках и разных браузерах.

1 Ответ

0 голосов
/ 21 октября 2019

Не существует стандартного решения, о котором я знаю. Однако, если вы можете поддерживать состояние сеанса в процессе или вне процесса (используя Redis, SQL или учетную запись хранения и т. Д.), Вы можете сгенерировать один токен использования для каждого динамического (изменяющего состояние) запроса содержимого.

Вам потребуется проверять этот токен для каждого запроса, и он должен быть связан с пользователем. Если пользователь не представляет токен или имеется несоответствие токена, перенаправьте его на URL-адрес выхода. Ваша логика может перезаписать токен при новом входе в систему, что сделает старый сеанс недействительным. Это похоже на токены анти-CSRF.

В руководстве, которое вы связали, объясняется, как вы можете выйти из системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...