Как разрабатывать оффлайн-приложения в Microsoft без истечения срока действия refresh_token через 90 дней

Только что посетил ссылку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? Это звучит скучно для разработчика и неудобно для пользователя …

Есть ли какой-либо основной механизм, чтобы решить эту дилемму? Пожалуйста, поделитесь идеями или обходными путями, чтобы моя душа могла отдохнуть в мире …

1

Решение

В настоящее время не существует механизма для получения токена обновления в мобильных сервисах. Это что-то, что должно быть включено для мобильных приложений службы приложений, но на данный момент оно недоступно через основной поток LoginAsync («aad»). Эта статья рассказывает о Как лучше всего обрабатывать токены доступа AAD в нативных мобильных приложениях и помог бы.

Если вам нужна улучшенная поддержка обновления, и если вы используете .NET, то вы, безусловно, можете использовать ADAL. Он перегружен для LoginAsync, который дополнительно принимает токен доступа (как часть объекта JSON, под ключом «access_token»). Это позволяет клиенту обрабатывать действие обновления.

0

Другие решения

Мы можем найти цитату на Лучшие практики для OAuth 2.0 в Azure AD

Жетоны обновления не имеют указанного времени жизни. Обычно время жизни токенов обновления относительно велико. Однако в некоторых случаях токены обновления истекают, аннулируются или не имеют достаточных привилегий для требуемого действия. Клиентское приложение должно правильно ожидать и обрабатывать ошибки, возвращаемые конечной точкой выдачи токена. Когда вы получите ответ с ошибкой токена обновления, отмените текущий токен обновления и запросите новый код авторизации или токен доступа. В частности, при использовании токена обновления в потоке предоставления кода авторизации, если вы получаете ответ с кодами ошибок взаимодействием_required или invalid_grant, сбросьте токен обновления и запросите новый код авторизации.

Что означает, когда refresh_token истекает, вы получите ошибку, если вы используете этот токен для подачи заявки на новый access_token,

Таким образом, вы можете написать обработчик ошибок в своем скрипте кода при использовании токена обновления в потоке предоставления кода авторизации, если вы получите ответ с interaction_required или же invalid_grant коды ошибок, вам нужно сбросить токен обновления и запросить новый код авторизации.

0

По вопросам рекламы [email protected]