Только для iOS: AADSTS165000 «токены запроса не соответствуют пользовательскому контексту» после повторного открытия встIOS

Программируем под IOS
Ответить
Anonymous
 Только для iOS: AADSTS165000 «токены запроса не соответствуют пользовательскому контексту» после повторного открытия вст

Сообщение Anonymous »

Контекст

Я встраиваю Microsoft Teams в наше родное приложение для iOS через модуль Flutter (пользовательский интерфейс Flutter, размещенный внутри собственного контейнера iOS). Тот же подход работает на Android, но на iOS мы сталкиваемся с ошибкой аутентификации после закрытия и повторного открытия пользовательского интерфейса клиента Teams.
Настройка
  • Пользовательский интерфейс клиента Teams запускается из модуля Flutter внутри собственного контейнера приложения iOS
  • Аутентификация использует Microsoft Graph API
  • Токены доступа получаются на стороне сервера (корпоративный CAS) и передаются в мобильное приложение
  • При первом запуске токены работают, а запросы Graph выполняются
  • После закрытия и повторного открытия Teams (тот же сеанс приложения) вход в систему не выполняется. на только для iOS
Проблема

На iOS после закрытия и повторного открытия клиента Teams мы получаем:

Код: Выделить всё

AADSTS165000: Request tokens do not match user context
Похоже, это несоответствие токена/контекста пользователя, вызванное тем, что iOS повторно использует некоторый устаревший контекст аутентификации/сессии, даже несмотря на то, что мы снова предоставляем новые токены.
Примечания:
  • Сброс состояния Flutter (сброс движка / «возрождение приложения») не надежно исправляет это
  • Android не демонстрирует такое поведение при той же выдаче токена на стороне сервера.
  • Похоже, что состояние аутентификации хранится вне жизненного цикла Flutter (например, кеш MSAL, хранилище файлов cookie WebView, ASWebAuthenticationSession, Keychain и т. д.)
Что я пробовал
  • Воссоздание FlutterEngine/сброс состояния модуля Flutter
  • Повторное открытие пользовательского интерфейса клиента Teams из «холодного» состояния Flutter
  • Повторный запрос токенов с сервера (новый токен доступа), но iOS по-прежнему не работает после повторно открыть
Вопросы
  • Во встроенных сценариях iOS сохраняет ли MSAL / WebView / Teams состояние аутентификации вне жизненного цикла механизма Flutter (например, кэш токена связки ключей или общее хранилище файлов cookie)?
  • Есть существует рекомендуемый способ полностью очистить/сбросить контекст аутентификации на iOS, чтобы можно было установить новый контекст пользователя (например, MSAL RemoveAccount, очистка файлов cookie WKWebView, очистка состояния ASWebAuthenticationSession и т. д.)?
  • Кто-нибудь видел, чтобы AADSTS165000 происходило на только iOS после закрытие/повторное открытие встроенного интерфейса Teams и какова основная причина?


Подробнее здесь: https://stackoverflow.com/questions/798 ... r-reopenin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»