Только что посетил ссылкуhttp://www.cloudidentity.com/blog/2015/03/20/azure-ad-token-lifetime/для справки и выяснил, что refresh_token
получил от Microsoft OAuth2.0 будет работать только 90 дней исчерпывающего использования, и после этого мы должны позволить пользователям снова аутентифицировать приложение Microsoft
Как мы должны разрабатывать приложения для Microsoft с offline_access
сфера, если refresh_token
будет работать только в течение следующих 90 дней?
Пользователь может не посещать веб-приложение снова, и ему может понадобиться приложение для Microsoft, чтобы оно выполняло свою работу в фоновом режиме и служило цели …
Должны ли мы уведомить пользователей каким-либо способом (электронная почта, смс, телефонный звонок ivr) для повторной аутентификации приложения Microsoft? Это звучит скучно для разработчика и неудобно для пользователя …
Есть ли какой-либо основной механизм, чтобы решить эту дилемму? Пожалуйста, поделитесь идеями или обходными путями, чтобы моя душа могла отдохнуть в мире …
В настоящее время не существует механизма для получения токена обновления в мобильных сервисах. Это что-то, что должно быть включено для мобильных приложений службы приложений, но на данный момент оно недоступно через основной поток LoginAsync («aad»). Эта статья рассказывает о Как лучше всего обрабатывать токены доступа AAD в нативных мобильных приложениях и помог бы.
Если вам нужна улучшенная поддержка обновления, и если вы используете .NET, то вы, безусловно, можете использовать ADAL. Он перегружен для LoginAsync, который дополнительно принимает токен доступа (как часть объекта JSON, под ключом «access_token»). Это позволяет клиенту обрабатывать действие обновления.
Мы можем найти цитату на Лучшие практики для OAuth 2.0 в Azure AD
Жетоны обновления не имеют указанного времени жизни. Обычно время жизни токенов обновления относительно велико. Однако в некоторых случаях токены обновления истекают, аннулируются или не имеют достаточных привилегий для требуемого действия. Клиентское приложение должно правильно ожидать и обрабатывать ошибки, возвращаемые конечной точкой выдачи токена. Когда вы получите ответ с ошибкой токена обновления, отмените текущий токен обновления и запросите новый код авторизации или токен доступа. В частности, при использовании токена обновления в потоке предоставления кода авторизации, если вы получаете ответ с кодами ошибок взаимодействием_required или invalid_grant, сбросьте токен обновления и запросите новый код авторизации.
Что означает, когда refresh_token
истекает, вы получите ошибку, если вы используете этот токен для подачи заявки на новый access_token
,
Таким образом, вы можете написать обработчик ошибок в своем скрипте кода при использовании токена обновления в потоке предоставления кода авторизации, если вы получите ответ с interaction_required
или же invalid_grant
коды ошибок, вам нужно сбросить токен обновления и запросить новый код авторизации.