Как обновить токен в Azure AD B2C, а не в токене доступа и идентификатора, а в «пожизненном»
Я использую MSAL для B2C с Android, и я следую этому примеру. При первом входе в систему я использую №1 для получения токена / запуска пользовательского потока и №3 для получения токена без уведомления, когда мне нужно вызвать API и срок действия моего токена истек.
Тихий токен, похоже, соответствует времени жизни токена доступа и идентификатора (в минутах) на портале Azure.
Пользовательский поток для susi, кажется, соответствует продолжительности жизни (дни) на портале:
Я думаю, что 90 дней истекли, так что мне делать, чтобы обновить этот токен, и как мне узнать, близки ли мне эти 90 дней?
Может, я не совсем понимаю это.
ОБНОВИТЬ
Хорошо, я увидел ответ ниже, который был полезен, но я не знаю, можно ли и как реализовать мой вариант использования, учитывая предоставленную информацию.
Вот пример использования: у меня есть приложение, которое можно использовать в автономном режиме, и часто оно используется на общем устройстве. Приложение должно быть подключено для загрузки и регистрации пользователя на устройстве. Когда устройство подключено, оно также отправляет данные в облако, но в остальном сохраняет их локально. При отправке данных в облако необходимо тихое обновление токена.
Все это работает, пока не истекут 90 дней, и мне нужно повторно пройти аутентификацию. Это было бы хорошей политикой, но, учитывая отключенный характер приложения, я хотел бы начать спрашивать пользователя, использующего закусочную, по мере приближения обратного отсчета. Согласно ответу теперь есть способ определить истечение срока действия 90, и я видел это, поскольку profile.getExpiresOn(), похоже, содержит дату истечения срока действия токена доступа (60-минутный) и возвращается к дате, когда профиль был создается, когда заканчивается 90-дневный. По крайней мере, я так думаю. Я хотел бы иметь доступ к обеим датам, но думаю, что нет, и это, как я думаю, было подтверждено ниже.
Есть ли у кого-нибудь еще такой вариант использования? Похоже, что это может быть не так уж и редко, и можно увидеть необходимость в 90-дневном сроке действия токена.
1 ответ
Чтобы полностью понять это, вам необходимо понять разницу между приведенными ниже настройками и тем, что они означают.
Срок действия токена обновления по умолчанию составляет 14 дней, что означает, что вы можете погасить токен обновления в течение 14 дней с момента его выпуска. Когда вы активируете токен обновления, выдается новая пара токенов доступа, идентификатора и обновления. Новый токен обновления снова действителен в течение 14 дней.
Если у вас установлен ограниченный срок действия скользящего окна токена обновления, а продолжительность жизни составляет 90 дней, пользователям потребуется повторная аутентификация независимо от того, когда был выпущен последний токен обновления.
Если у вас установлен срок действия скользящего окна токена обновления без истечения срока действия , продолжительность жизни больше не будет настраиваться. В этом случае, если токен обновления погашается каждые 14 дней (настроен в параметре Срок действия токена обновления), пользователям никогда не придется повторно проходить аутентификацию.
Если вы не хотите заставлять пользователей проходить повторную аутентификацию через 90 дней, вы можете либо установить для Lifetime length максимальное значение 365 дней, либо установить для срока действия скользящего окна токена обновления значение без истечения срока действия .
Вы не получите никаких уведомлений до истечения срока действия токена обновления. Однако вы можете проверить свойство signInSessionsValidFromDateTime через Graph API или refreshTokensValidFromDateTime через PowerShell, чтобы узнать, когда токен обновления был в последний раз выдан пользователю.