Как использовать URI перенаправления nativeclient при аутентификации в Microsoft Azure?

#azure #flutter #authentication #oauth-2.0 #msal

#azure #flutter #аутентификация #oauth-2.0 #msal

Вопрос:

Я играю с Microsoft Azure и выполняю вход из приложения Flutter, используя OAuth2. Я использую плагин flutter_appauth для входа в систему, и я настроил пользовательскую схему URI, как описано в инструкциях по подключению. В моем случае я использую com.onmicrosoft.example.mytestapp://oauth/redirect .

Все работает так, как ожидалось, я могу войти в систему и получить ID-токен, но одна вещь все еще немного озадачивает: в документации Microsoft говорится:

Для собственных и мобильных приложений следует использовать значение по умолчанию https://login.microsoftonline.com/common/oauth2/nativeclient

Этот URI также является одним из автоматически создаваемых для моего приложения на портале Azure. Использование его в моем мобильном приложении не работает, но использование пользовательской схемы работает. Лучше ли использовать этот URI вместо моего пользовательского URI схемы, и если да, то как мне заставить его работать с моим приложением Flutter?

Ответ №1:

Пользовательские URI схемы являются наиболее распространенным вариантом, как вы говорите, и обычно используются с AppAuth. Вы можете использовать URL обратного вызова Microsoft только при использовании старых (устаревших) учетных записей webview, которые заблокированы некоторыми поставщиками, такими как Google.

ТОЧКА ЗРЕНИЯ ПУРИСТА БЕЗОПАСНОСТИ

Последние рекомендации по API финансового уровня предполагают, что заявленные схемы HTTPS являются предпочтительным мобильным вариантом для приложений с более высоким уровнем безопасности.

В этом случае вам необходимо владеть доменом HTTPS и связать его с цифровой подписью вашего мобильного приложения через файл онлайн-ресурсов. Конечно, вы не можете сделать это для URL-адреса Microsoft.

МОИ РЕСУРСЫ

В моем блоге есть дополнительная информация о заявленных схемах HTTPS с AppAuth, включая примеры кода, которые вы можете запускать со своего локального компьютера, на случай, если вы захотите продолжить рассмотрение этой области. Однако это сложно реализовать: