Руководство по Вход пользователей и вызов API Microsoft Graph из приложения Android

Руководство по Вход пользователей и вызов API Microsoft Graph из приложения Android

В этом руководстве показано, как создать приложение Android, которое интегрируется с платформой удостоверений Майкрософт для реализации входа пользователей, и как получить маркер доступа для вызова API Microsoft Graph.

Когда вы завершите работу с этим руководством, ваше приложение сможет принимать операции входа с помощью личных учетных записей Майкрософт (включая outlook.com, live.com и др.), а также рабочих или учебных учетных записей из любой компании или организации, в которых используется Azure Active Directory.

В этом руководстве рассматриваются следующие темы:

  • создание проекта приложения Android в Android Studio;
  • регистрация приложения на портале Azure;
  • добавление кода для поддержки входа и выхода пользователей;
  • добавление кода для вызова API Microsoft Graph.
  • Тестирование приложения

Предварительные требования

  • Android Studio 3.5 и более поздних версий

Как работает это руководство

В этом руководстве приложение авторизует пользователя и получает данные от его имени. Доступ к этим данным будет осуществляться через защищенный API (в данном случае API Microsoft Graph), который требует авторизации и защищен платформой удостоверений Майкрософт.

  • Приложение авторизует пользователя через браузер или Microsoft Authenticator и Корпоративный портал Intune.
  • Пользователь принимает разрешения, которые запрашивает приложение.
  • Приложение выдает маркер доступа для API Microsoft Graph.
  • Этот маркер доступа будет включен в HTTP-запрос к веб-API.
  • Затем обрабатывается ответ Microsoft Graph.

В этом примере используется библиотека проверки подлинности Майкрософт для Android (MSAL), com.microsoft.identity.client, которая помогает реализовать проверку подлинности.

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

В этом учебнике представлены упрощенные примеры работы с MSAL для Android. Для простоты здесь используется режим только одной учетной записи. Более сложные сценарии см. в готовом примере кода на сайте GitHub.

Создание проекта

Если у вас еще нет приложения Android, выполните следующие действия, чтобы настроить новый проект.

  1. Запустите Android Studio и выберите Start a new Android Studio project (Создать проект Android Studio).
  2. Выберите Basic Activity (Базовое действие) и щелкните Next (Далее).
  3. Присвойте имя приложению.
  4. Сохраните имя пакета. Позже вы укажете его на портале Azure.
  5. Измените язык с Kotlin на Java.
  6. Присвойте параметру Minimum API level (Минимальный уровень API) задайте API 19 или выше и щелкните Finish (Готово).
  7. В представлении проекта в раскрывающемся списке выберите Project (Проект), чтобы отобразить исходные и другие файлы проекта, откройте app/build.gradle и задайте параметру значение .

Интеграция с библиотекой проверки подлинности Майкрософт

Регистрация приложения

Если у вас есть доступ к нескольким арендаторам, в верхнем меню используйте фильтр Directories + subscriptions (Каталоги и подписки) , чтобы выбрать арендатор, в котором следует зарегистрировать приложение.

Найдите и выберите Azure Active Directory.

В разделе Управление выберите Регистрация приложений Создать регистрацию.

Введите значение Name (Имя) для приложения. Пользователи приложения могут видеть это имя. Вы можете изменить его позже.

Выберите Зарегистрировать.

В разделе Управление выберите Проверка подлинности Добавить платформу Android.

Введите имя пакета проекта. Если вы скачали код, это будет значение com.azuresamples.msalandroidapp .

В разделе Хэш подписи на странице Настройка приложения Android выберите элемент Generating a development Signature Hash (Создание хэша подписи разработки) и скопируйте команду KeyTool для применения на вашей платформе.

KeyTool. exe устанавливается как часть пакета средств разработки Java (JDK). Необходимо также установить средство OpenSSL для выполнения команды KeyTool. Дополнительные сведения см. в документации Android по созданию ключа.

Введите хэш подписи, созданный с помощью KeyTool.

Щелкните Настройка и сохраните конфигурацию MSAL, отображаемую на странице Настройка Android, чтобы указать ее при последующей настройке приложения.

Нажмите кнопку Готово.

Настройка приложения

На панели проекта Android Studio перейдите к app\src\main\res.

Щелкните правой кнопкой мыши res и выберите New (Создать) Directory (Каталог). Введите raw в качестве имени каталога и нажмите кнопку raw .

В расположенииapp src main res raw создайте файл JSON с именем и вставьте в него ранее сохраненную конфигурацию MSAL.

Поместите следующие данные под URI перенаправления:

Теперь файл конфигурации должен выглядеть примерно так:

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

В app src main AndroidManifest.xml добавьте действие в код приложения, как показано ниже. Эта запись позволяет корпорации Майкрософт выполнять обратный вызов приложения после завершения проверки подлинности:

Замените имя пакета, зарегистрированного на портале Azure, значением android:host= . Замените хэш ключа, зарегистрированный на портале Azure, значением android:path= . Применять к хэшу подписи кодирование по правилам для URL-адреса нельзя. Убедитесь, что в начале хэша подписи присутствует символ / .

Имя пакета, которое вы укажите в качестве значения android:host , должно выглядеть так: com.azuresamples.msalandroidapp . Хэш подписи, который вы укажите в качестве значения android:path , должен выглядеть так: /1wIqXSqBj7w+h11ZifsnqwgyKrY= .

Эти значения также можно найти в колонке "Проверка подлинности" в регистрации приложения. Обратите внимание, что URI перенаправления будет выглядеть следующим образом: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D . Несмотря на то, что к хэшу подписи в конце этого значения применяется кодирование по правилам для URL-адреса, в значении хэш подписи должен быть указан без этого кодирования.

Использование MSAL

Добавление MSAL в проект

В окне проекта Android Studio перейдите к app build.gradle и добавьте следующее:

Необходимые операторы import

Добавьте представленный ниже текст в начало файла app src main java com.example(yourapp) MainActivity.java

Создание экземпляра PublicClientApplication

Инициализация переменных onCreate

В классе MainActivity обратитесь к следующему методу OnCreate(), чтобы создать экземпляр MSAL с помощью SingleAccountPublicClientApplication .

loadAccount initializeUI

Ожидайте нажатия кнопок, а затем вызывайте методы или регистрируйте ошибки соответствующим образом.

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

getAuthInteractiveCallback

Обратный вызов, используемый для интерактивных запросов.

getAuthSilentCallback

Обратный вызов, используемый для запросов без уведомления.

Вызов API Microsoft Graph

В следующем примере кода показано, как обращаться к GraphAPI через пакет средств разработки Graph.

callGraphAPI

Добавление пользовательского интерфейса

Действие

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

updateUI

Включение и отключение кнопок на основе состояния входа и заданного текста.

displayError displayGraphResult performOperationOnSignOut

Метод для обновления текста в пользовательском интерфейсе в соответствии с выходом.

Макет

Пример файла activity_main.xml для вывода кнопок и текстовых полей.

Тестирование приложения

Локальный запуск

Выполните сборку и развертывание приложения на тестовом устройстве или в эмуляторе. При этом должен выполняться вход в приложение и получение маркеров для учетных записей Azure AD или личных учетных записей Майкрософт.

После выполнения входа в приложении будут отображаться данные, возвращенные из конечной точки Microsoft Graph /me . PR 4

Согласие на предоставление разрешений

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

Очистка ресурсов

Удалите ненужный объект приложения, созданный на шаге Регистрация приложения.

Справка и поддержка

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

Дальнейшие действия

Из нашей серии сценариев узнайте, как создавать мобильные приложения, вызывающие защищенные веб-API.

📎📎📎📎📎📎📎📎📎📎