Поделиться через


Проверка подлинности и авторизация в Службе приложений Azure для мобильных приложений

Заметка

Этот продукт отставлен. Сведения о замене проектов с помощью .NET 8 или более поздней версии см. вбиблиотеке Community Toolkit Datasync.

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

Предупреждение

В этой статье рассматриваются версии 4.2.0 клиентского пакета SDK для мобильных приложений Azure. Текущий выпуск использует новый механизм проверки подлинности и не поддерживает проверку подлинности Службы приложений Azure & авторизацию таким же образом.

Сведения о том, как работает проверка подлинности и авторизация в службе приложений, см. в аутентификации и авторизации в службе приложений Azure.

Проверка подлинности с помощью пакета SDK поставщика

После настройки всего в Службе приложений можно изменить мобильные клиенты для входа в службу приложений. Ниже приведены два подхода.

  • Используйте пакет SDK, публикуемого указанным поставщиком удостоверений, чтобы установить удостоверение, а затем получить доступ к службе приложений.
  • Используйте одну строку кода, чтобы клиентский пакет SDK для мобильных приложений смог войти в систему пользователей.

Кончик

Большинство приложений должны использовать пакет SDK поставщика, чтобы обеспечить более согласованный интерфейс при входе пользователей, использовать поддержку обновления маркеров и получить другие преимущества, указанные поставщиком.

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

После получения маркера поставщика необходимо отправить в службу приложений для проверки. Служба приложений Azure проверяет маркер. Затем служба создает новый маркер для клиента. Клиентский пакет SDK для мобильных приложений содержит вспомогательные методы для управления этим обменом и автоматическое присоединение маркера ко всем запросам к серверной части приложения. Вы также можете сохранить ссылку на маркер поставщика.

Заметка

Некоторые платформы, такие как Windows (WPF), будут работать ТОЛЬКО с потоком, направленным клиентом. Другие будут работать одинаково хорошо как с сервером, так и с потоком клиента. Если платформа работает только с потоком, направленным клиентом, краткое руководство будет отображать это.

Дополнительные сведения о потоке проверки подлинности см. в потоке проверки подлинности службы приложений.

Проверка подлинности без пакета SDK поставщика

Если вы не хотите настроить пакет SDK поставщика, вы можете разрешить службе приложений Azure обрабатывать вход. Клиентский пакет SDK для мобильных приложений Azure откроет веб-представление поставщику выбранного пользователя и войдите в систему. Этот метод называется потоком сервера или потоком, направленным на сервер, так как сервер управляет процессом входа пользователей. Клиентский пакет SDK никогда не получает маркер поставщика.

Отправка маркера из потока, направляемого клиентом

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

Затем можно создать соответствующий объект JSON. Например, если вы используете MSAL для выполнения клиентского потока в .NET в приложении WPF, можно использовать следующий код:

var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);

Текст запроса должен соответствовать ожиданиям, как описано в документации.