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


Краткое руководство: вход пользователей и вызов веб-API в образце мобильного приложения

Применимо: Белый круг с серым символом X. Арендаторы рабочей силы Зеленый круг с символом белой галочки. Внешние арендаторы (узнать больше)

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

В этом руководстве показано, как настроить пример мобильного приложения для входа пользователей и вызвать веб-API ASP.NET Core.

Ниже перечислены действия, которые вы выполните в этой статье.

  • Добавьте URL-адрес перенаправления платформы в веб-приложение.
  • Включите общедоступные потоки клиентов.
  • Обновите пример конфигурационного кода для Android, чтобы использовать ваш собственный внешний идентификатор Microsoft Entra для сведений о клиенте.
  • Запустите и проверьте пример мобильного приложения Android.
  • Вызов защищенного веб-API.

Предпосылки

  • Андроид Студия.

  • Внешний арендатор. Если у вас еще нет пробной версии, зарегистрируйтесь на бесплатную пробную версию.

  • Зарегистрируйте новое клиентское веб-приложение в Центре администрирования Microsoft Entra, настроенное для учетных записей в любом каталоге организации и личных учетных записях Майкрософт. Дополнительные сведения см. в статье "Регистрация приложения ". Запишите следующие значения на странице обзора приложения для последующего использования:

    • Идентификатор приложения (клиента)
    • Идентификатор каталога (арендатора)
  • Регистрация веб-API, которая предоставляет по крайней мере одну область (делегированные разрешения) и одну роль приложения (разрешение приложения), например ToDoList.Read. Если вы еще не сделали этого, следуйте инструкциям по вызову API в примере мобильного приложения Android, чтобы иметь функциональный защищенный веб-API ASP.NET Core. Убедитесь, что выполните следующие действия.

    • Настройка областей API
    • Настройка ролей приложения
    • Настройка необязательных утверждений
    • Клонирование или скачивание примера веб-API
    • Настройка и запуск примера веб-API

Добавить URL-адрес перенаправления платформы

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

  1. В разделе Управление выберите Проверка подлинности.
  2. На странице конфигураций платформы выберите "Добавить платформу" и выберите вариант Android.
  3. Введите имя пакета проекта. Если вы скачали пример кода, это значение равно com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. В разделе хэша подписи окна «Настройка приложения Android» выберите «Создать хэш подписи для разработки». Этот хэш будет меняться в зависимости от среды разработки. Скопируйте и выполните команду KeyTool для вашей операционной системы в терминале.
  5. Введите хэш подписи, созданный с помощью KeyTool.
  6. Выберите и настройте.
  7. Скопируйте конфигурацию MSAL из области конфигурации Android и сохраните ее для последующей настройки приложения.
  8. Нажмите кнопку Готово.

Включение публичного клиентского потока

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

  1. В разделе Управление выберите Проверка подлинности.

  2. В разделе "Дополнительные параметры" для параметра "Разрешить общедоступные потоки клиентов" нажмите кнопку "Да".

  3. Выберите Сохранить, чтобы сохранить изменения.

Предоставление разрешений веб-API примерному приложению

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

  1. На странице регистрации приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора .

  2. В разделе Управление выберите Разрешения API.

  3. В разделе Настроенные разрешения выберите Добавить разрешение.

  4. Выберите вкладку API, которые использует моя организация.

  5. В списке API выберите API, например ciam-ToDoList-api.

  6. Выберите параметр "Делегированные разрешения ".

  7. В списке разрешений выберите ToDoList.Read, ToDoList.ReadWrite (при необходимости используйте поле поиска).

  8. Нажмите кнопку Add permissions (Добавить разрешения).

  9. На этом этапе вы правильно задали разрешения. Тем не менее, поскольку арендатор является арендатором клиента, потребители-пользователи сами не могут согласиться с этими разрешениями. Чтобы устранить эту проблему, вы как администратор должны согласиться с этими разрешениями от имени всех пользователей в данном клиенте.

    1. Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".

    2. Выберите «Обновить», а затем убедитесь, что под < для обоих разрешений отображается Предоставлено для >имя вашего арендатора.

  10. В списке настроенных разрешений выберите разрешения ToDoList.Read и ToDoList.ReadWrite по одному за раз, а затем скопируйте полный универсальный код ресурса (URI) разрешения для последующего использования. Полный URI разрешений выглядит примерно так же, как api://{clientId}/{ToDoList.Read} или api://{clientId}/{ToDoList.ReadWrite}.

Клонирование примера мобильного приложения

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.

  • Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
    

Настройка примера мобильного приложения Android

Чтобы включить проверку подлинности и доступ к ресурсам веб-API, настройте пример, выполнив следующие действия.

  1. В Android Studio откройте клонируемый проект.

  2. Откройте файл /app/src/main/res/raw/auth_config_ciam.json .

  3. Найдите плейсхолдер:

    • Замените Enter_the_Application_Id_Here на идентификатор приложения (идентификатор клиента) того приложения, которое вы зарегистрировали ранее.
    • Enter_the_Redirect_Uri_Here и замените его на значение redirect_uri в файле конфигурации библиотеки проверки подлинности Майкрософт (MSAL), который вы скачали ранее, когда вы добавляли URL-адрес перенаправления платформы.
    • Enter_the_Tenant_Subdomain_Here и замените его на поддомен каталога (домен клиента). Например, если основной домен клиента — это contoso.onmicrosoft.com, используйте contoso. Если вы не знаете поддомен клиента, узнайте, как прочитать сведения о клиенте.
  4. Откройте файл /app/src/main/AndroidManifest.xml.

  5. Найдите плейсхолдер:

    • ENTER_YOUR_SIGNATURE_HASH_HERE и замените его на хэш подписи, который вы создали ранее, когда добавляли URL-адрес перенаправления платформы.
  6. Откройте файл /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt .

  7. Найдите свойство с именем WEB_API_BASE_URL и задайте URL-адрес веб-API.

  8. Найдите свойство с именем scopes и установите области, указанные в разрешениях веб-API для тестового Android приложения.

    private const val scopes = "" // Developers should set the respective scopes of their web API here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

Вы настроили приложение, и оно готово к запуску.

Запуск примера приложения и вызов веб-API

Чтобы создать и запустить приложение, выполните следующие действия.

  1. На панели инструментов выберите приложение в меню конфигураций запуска.

  2. В меню целевого устройства выберите устройство, на которое вы хотите запустить приложение.

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

  3. Нажмите кнопку Запустить.

  4. Выберите "Получить маркер" в интерактивном режиме , чтобы запросить маркер доступа.

  5. Выберите API— выполните GET , чтобы вызвать ранее настроенный веб-API ASP.NET Core. Успешный вызов веб-API возвращает HTTP 200, а HTTP 403 означает несанкционированный доступ.