Выполните вход пользователей и вызовите API в демонстрационном приложении для Android с помощью встроенной аутентификации
применяется к: арендаторы рабочей силы
внешние клиенты (подробнее)
Из этого краткого руководства вы узнаете, как настроить пример мобильного приложения Android для вызова веб-API ASP.NET Core.
Необходимые условия
Регистрация приложения веб-API
Войдите в Центр администрирования Microsoft Entra как минимум в качестве Разработчика приложений.
Если у вас есть доступ к нескольким тенантам, используйте значок Настройки
в верхнем меню, чтобы переключиться на внешний тенант из меню Каталоги и подписки.
Перейдите к идентификация>приложения>регистрации приложений.
Выберите + Новая регистрация.
На появившемся странице регистрации приложения введите сведения о регистрации приложения:
В разделе "Имя" введите понятное имя приложения, которое будет отображаться пользователям приложения, например ciam-ToDoList-api.
В разделе Поддерживаемые типы учетных записейвыберите Только учетные записи в этом каталоге организации.
Выберите Регистр, чтобы создать приложение.
Область обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента) и идентификатор приложения (клиента), который будет использоваться в исходном коде приложения.
Настройка областей API
API должен опубликовать минимум одну область действия, также называемую Делегированное разрешение, чтобы клиентские приложения успешно получили токен доступа для пользователя. Чтобы опубликовать область охвата, выполните следующие действия.
На странице регистрации приложений выберите созданное приложение API (ciam-ToDoList-api), чтобы открыть страницу обзора.
В разделе Управлениевыберите Опубликовать API.
В верхней части страницы рядом с URI идентификатора приложениявыберите ссылку Добавить, чтобы создать уникальный URI для этого приложения.
Примите предлагаемый URI идентификатора приложения, например
api://{clientId}
, и выберите Сохранить. Когда веб-приложение запрашивает маркер доступа для веб-API, он добавляет URI в качестве префикса для каждой области, определяемой для API.В разделе Области, определенные этим API, выберите Добавить область.
Введите следующие значения, определяющие доступ для чтения к API, а затем выберите Добавить область, чтобы сохранить изменения:
Свойство Ценность Имя области ToDoList.Читать Кто может согласиться Только для администраторов Отображаемое имя согласия администратора Прочитать список дел пользователей с помощью todoListApi Описание согласия администратора Разрешить приложению использовать TodoListApi для чтения списка дел пользователя. Государство включено Выберите Добавить область еще раз, и введите следующие значения для определения области доступа чтения и записи к API. Выберите Добавить область видимости, чтобы сохранить изменения:
Свойство Ценность Имя области ToDoList.ReadWrite Кто может согласиться Только для администраторов Отображаемое имя согласия администратора Список дел для чтения и записи пользователей с использованием ToDoListApi Описание согласия администратора Разрешить приложению читать и записывать список задач пользователя, используя 'ToDoListApi' Государство включено
Узнайте больше о принципе минимальных привилегий при публикации разрешений для веб-API.
Настройка ролей приложения
API должен опубликовать как минимум одну роль приложения, также называемую разрешение приложения, чтобы клиентские приложения могли получить токен доступа самостоятельно. Разрешения приложений — это тип разрешений, которые API должны публиковать, когда они хотят позволить клиентским приложениям успешно проходить аутентификацию самостоятельно, без необходимости выполнять вход пользователей. Чтобы опубликовать разрешение приложения, выполните следующие действия.
На странице регистрации приложений выберите созданное вами приложение (например, ciam-ToDoList-api), чтобы открыть его страницу обзора.
В разделе Управлениевыберите роли для приложений.
Выберите Создать роль приложения, а затем введите следующие значения, а затем выберите Применить, чтобы сохранить изменения:
Свойство Ценность Отображаемое имя ToDoList.Read.All Разрешенные типы участников приложения Ценность ToDoList.Read.All Описание Разрешить приложению читать список задач каждого пользователя с помощью TodoListApi Вы хотите включить эту роль приложения? Оставьте его отмеченным Снова выберите Создать роль приложения, а затем введите следующие значения для второй роли приложения, а затем нажмите Применить, чтобы сохранить изменения:
собственность Ценность Отображаемое имя ToDoList.ReadWrite.All Разрешенные типы участников приложения Ценность ToDoList.ReadWrite.All Описание Разрешить приложению читать и записывать список дел каждого пользователя, используя ToDoListApi Вы хотите включить эту роль приложения? Оставьте его отмеченным
Настройка необязательных утверждений
Вы можете добавить дополнительное утверждение, чтобы помочь веб-API определить, является ли токен токеном приложения или токеном приложения + пользователя. Хотя вы можете использовать сочетание утверждений scp и ролей для той же цели, использование утверждения idtyp будет самым простым способом отличить токен приложения от токена приложения + пользователя. Например, значение этого утверждения составляет приложение, когда токен предназначен исключительно для приложений.
Предоставьте разрешения API демонстрационному приложению Android
После регистрации клиентского приложения и веб-API, а также предоставления API путем создания областей, вы можете настроить разрешения клиента для API, выполнив следующие действия.
На странице регистрации приложений выберите приложение, которое вы создали (например, ciam-client-app), чтобы открыть его страницу Обзор.
В разделе Управлениевыберите разрешения на доступ к API.
В разделе Настроенные разрешениявыберите Добавить разрешение.
Выберите вкладку , на которой находятся API, используемые моей организацией.
В списке API выберите API, например ciam-ToDoList-api.
Выберите Делегированные разрешения.
В списке разрешений выберите ToDoList.Read, ToDoList.ReadWrite (при необходимости используйте поле поиска).
Нажмите кнопку Добавить разрешения.
На этом этапе вы правильно назначили разрешения. Тем не менее, поскольку арендатор является клиентом клиента, пользователи-потребители сами не могут согласиться с этими разрешениями. Чтобы устранить эту проблему, администратор должен согласиться с этими разрешениями от имени всех пользователей в клиенте:
Выберите предоставить согласие администратора для арендатора <>, затем выберите Да.
Выберите Обновить, а затем убедитесь, что Предоставлено для <ваше имя арендатора> отображается в разделе Состояние для обоих разрешений.
В списке Настроенные разрешения последовательно выберите разрешение ToDoList.Read и разрешение ToDoList.ReadWrite, а затем скопируйте полный URI каждого разрешения для последующего использования. Полный URI разрешений выглядит примерно так же, как
api://{clientId}/{ToDoList.Read}
илиapi://{clientId}/{ToDoList.ReadWrite}
.
Клонирование или скачивание примера веб-API
Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.
Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
Скачайте .zip файл. Извлеките его в путь к файлу, где длина имени меньше 260 символов.
Настройка и запуск примера веб-API
В редакторе кода откройте файл
2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json
.Найдите заполнитель:
-
Enter_the_Application_Id_Here
и замените его на идентификатор приложения (клиента) для веб-API, который вы скопировали ранее. -
Enter_the_Tenant_Id_Here
и замените его идентификатором каталога (арендатора), скопированного ранее. -
Enter_the_Tenant_Subdomain_Here
и замените его поддоменом каталога (клиента). Например, если основной домен клиентаcontoso.onmicrosoft.com
, используйтеcontoso
. Если у вас нет имени арендатора, узнайте, как получить сведения об арендаторе.
-
Чтобы Android-пример приложения мог его вызвать, необходимо разместить ваше веб-API. Следуйте краткому руководству: Развертывание веб-приложения на основе ASP.NET для развертывания вашего веб-API.
Настройка примера мобильного приложения Android для вызова веб-API
В этом примере можно настроить несколько конечных точек URL-адреса веб-API и наборов областей. В этом случае вы настраиваете только одну конечную точку URL веб-API и соответствующие ей области.
В Android Studio откройте файл
/app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt
.Найдите свойство с именем
WEB_API_URL_1
и задайте URL-адрес веб-API.private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
Найдите свойство с именем
scopesForAPI1
и задайте области, которые указаны в , чтобы предоставить разрешения API для тестового приложения Android.private val scopesForAPI1 = listOf<String>() // Developers should set the respective scopes of their web API here. For example, private val scopes = listOf<String>("api://{clientId}/{ToDoList.Read}", "api://{clientId}/{ToDoList.ReadWrite}")
Запуск примера приложения Android и вызов веб-API
Чтобы создать и запустить приложение, выполните следующие действия.
На панели инструментов выберите приложение в меню конфигураций запуска.
В меню целевого устройства выберите устройство, на которое вы хотите запустить приложение.
Если у вас нет устройств, необходимо создать виртуальное устройство Android для использования эмулятора Android или подключить физическое устройство.
Нажмите кнопку Запуск. Приложение открывается на экране электронной почты и однократного секретного кода.
Перейдите на вкладку API, чтобы проверить вызов API. Успешный вызов веб-API возвращает HTTP-
200
, а HTTP-403
означает несанкционированный доступ.