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


Вход пользователей и вызов защищенного веб-API в примере приложения Android (Kotlin)

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

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

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

Необходимые компоненты

  • Android Studio.

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

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

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

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

Чтобы приложение входить в систему с помощью Microsoft Entra, Внешняя идентификация Microsoft Entra должны быть осведомлены о создаваемом приложении. Регистрация приложения устанавливает отношение доверия между приложением и Microsoft Entra. При регистрации приложения внешний идентификатор создает уникальный идентификатор, известный как идентификатор приложения (клиента), значение, используемое для идентификации приложения при создании запросов проверки подлинности.

Ниже показано, как зарегистрировать приложение в Центре администрирования Microsoft Entra:

  1. Войдите в Центр администрирования Microsoft Entra как минимум разработчик приложений.

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

  3. Перейдите к приложениям> удостоверений>Регистрация приложений.

  4. Выберите + Создать регистрацию.

  5. На отображаемой странице регистрации приложения;

    1. Введите понятное имя приложения, отображаемое пользователям приложения, например ciam-client-app.
    2. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
  6. Выберите Зарегистрировать.

  7. Панель обзора приложения отображается при успешной регистрации. Запишите идентификатор приложения (клиента), который будет использоваться в исходном коде приложения.

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

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

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

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

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

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

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

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

После регистрации приложения он получает разрешение User.Read . Однако, поскольку клиент является внешним клиентом, сами пользователи клиента не могут согласиться с этим разрешением. Вы, как администратор, должны предоставить это разрешение от имени всех пользователей в клиенте:

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

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

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

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

После регистрации клиентского приложения и веб-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}или.

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

Чтобы получить пример приложения, можно клонировать его из 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 grant для примера приложения 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}"
    

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

Запуск и проверка примера мобильного приложения Android

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

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

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

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

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

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

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