Azure B2C Как организовать скользящий сеанс с максимальным ограничением сеанса?

#azure #session-cookies #azure-ad-b2c #azure-ad-b2c-custom-policy

Вопрос:

Я хотел бы настроить пользовательскую политику таким образом, чтобы

  • Пользователь, который не был активен более 1 дня, выйдет из системы и будет вынужден снова войти в систему.
  • Если они будут постоянно использовать приложение, то их сессия сможет продолжать использовать приложение еще много дней
  • Но через 30 дней, даже если они использовали приложение каждый день, они будут вынуждены выйти из системы и должны будут снова войти в систему. Возможно ли это?

Я пытался сделать это с помощью веб-сеанса, но, похоже, не могу найти способ.

https://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior?pivots=b2c-custom-policy#configure-azure-ad-b2c-session-behavior

Это может быть не 1 день прокатки и не 30-дневный верхний предел. Может быть, это 1-часовая скользящая сессия и верхний предел на 1 день. Таким образом, пользователю нужно будет снова войти в систему после 1 часа простоя, или, если он продолжит использовать приложение, ему нужно будет снова войти в систему через 24 часа.

Ответ №1:

Установите следующее:

  1. срок службы токена доступа 1 час
  2. срок службы токена обновления 24 часа, абсолютная продолжительность (фиксированные 24 часа для приложений SPA). Сократите это время ниже (3), чтобы увеличить вероятность продления веб-сеанса.
  3. 24-часовая веб-сессия продолжается. Продлевается только тогда, когда (2) истекает, но (3) все еще действует.

Он максимально приближается к вашим требованиям.

Комментарии:

1. Как настроить пользовательскую политику так, чтобы веб-сеанс был перенесен на 30 дней?

2. docs.microsoft.com/en-us/azure/active-directory-b2c/. … Установите для параметра SessionExpiryType значение Rolling.

3. Также docs.microsoft.com/en-us/azure/active-directory-b2c/…

4. Я прочитал обе статьи, но, возможно, я что-то неправильно понял… Я понимаю , что если я установлю SessionExpiryType значение Rolling и SessionExpiryInSeconds на 1 день, то сеанс закончится через 1 день бездействия, но если пользователь использует приложение каждый день, сеанс будет продолжаться вечно. Но где я могу установить верхний предел в 30 дней? Я хочу, чтобы пользователь вышел из системы через 1 день бездействия, но если он будет оставаться активным и использовать приложение каждый день, он выйдет из системы через 30 дней?

5. @rbrayb Можете ли вы указать мне, что именно мне нужно настроить для настройки 1-дневной скользящей сессии И 30-дневной абсолютной сессии? Похоже, я могу настроить его только так, чтобы он шел в ту или иную сторону, а не в обе стороны 🙁

Ответ №2:

Стандартное время обновления токена составляет 24 часа, поэтому оно должно охватывать день бездействия.

Вам не должна понадобиться скользящая сессия.

Сделайте тайм-аут сеанса веб-приложения «Абсолютным», что указывает на то, что пользователь вынужден повторно пройти аутентификацию по истечении указанного периода времени.

Что касается принудительного сброса пароля, посмотрите здесь.

Комментарии:

1. Извините, я, возможно, не был очень ясен в своем первоначальном вопросе. Я не спрашиваю о принудительном отдыхе пароля. Что я хотел знать, так это можете ли вы провести скользящий сеанс с верхней границей? Например, Время ожидания сеанса веб-приложения «прокручивается» в течение 1 часа. Если они перестанут использовать приложение более чем на 1 час, им необходимо снова войти в систему. Но если они будут продолжать использовать приложение каждый час в течение 14 дней, пользователь выйдет из системы и будет вынужден снова войти в систему. Как бы я этого добился? (Я немного изменил цифры по сравнению с исходным вопросом, но идея та же).