Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: арендаторы рабочей силы
внешние арендаторы (узнать больше)
Прежде чем начать, используйте селектор Выбрать тип арендатора в верхней части этой страницы, чтобы выбрать тип арендатора. Microsoft Entra ID предоставляет две конфигурации клиента, рабочей среды и внешней среды. Конфигурация арендатора рабочей силы предназначена для ваших сотрудников, внутренних приложений и других организационных ресурсов. Внешний клиент предназначен для ваших клиентских приложений.
В этом кратком руководстве вы скачаете и запустите пример кода, демонстрирующий, как в приложении Android реализовать вход пользователей и получить токен доступа для вызова API Microsoft Graph.
Приложения должны быть представлены объектом приложения в Microsoft Entra ID, чтобы платформа удостоверений Майкрософт могла предоставлять токены вашему приложению.
Предпосылки
- Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи, Создайте ее бесплатно.
- Эта учетная запись Azure должна иметь разрешения на управление приложениями. Любые из следующих ролей Microsoft Entra включают необходимые разрешения:
- Администратор приложений
- Разработчик приложения
- Администратор облачных приложений
- Арендатор рабочей силы. Вы можете использовать каталог по умолчанию или настроить новый клиент.
- Зарегистрируйте новое приложение в центре администрирования Microsoft Entra с помощью следующей конфигурации. Дополнительные сведения см. в разделе Регистрация приложения.
- Имя: identity-client-web-app
- Поддерживаемые типы учетных записей: учетные записи в любом каталоге организации (любой каталог Microsoft Entra — Multitenant) и личные учетные записи Microsoft (например, Skype, Xbox)
- Android Studio
- Android 16+
Добавьте URI перенаправления
Вам потребуется добавить URI перенаправления в регистрацию приложения. Этот универсальный код ресурса (URI) используется для перенаправления пользователей в приложение после входа.
В разделе Управление выберите Проверка подлинности>Добавить платформу>Android.
Введите имя пакета проекта в зависимости от загруженного выше типа.
- Пример Java —
com.azuresamples.msalandroidapp
- Пример Kotlin —
com.azuresamples.msalandroidkotlinapp
- Пример Java —
В разделе Хэш подписи области настройки приложения Android выберите Создание хэша подписи для разработки и скопируйте команду KeyTool в вашу командную строку.
- KeyTool. exe устанавливается как часть пакета средств разработки Java (JDK). Необходимо также установить средство OpenSSL для выполнения команды KeyTool. Для получения дополнительных сведений см. документацию Android по созданию ключа.
Введите хэш подписи, созданный с помощью KeyTool.
Выберите "Настроить и сохранить конфигурацию MSAL", которая отображается в области конфигурации Android, чтобы можно было ввести ее при последующей настройке приложения.
Нажмите кнопку Готово.
Скачивание примера приложения
- Java: скачайте код.
- Kotlin: скачайте код.
Настройка примера приложения
На панели проекта Android Studio перейдите к app\src\main\res.
Щелкните правой кнопкой мыши res и выберите New (Создать) >Directory (Каталог). Введите
raw
имя нового каталога и нажмите кнопку "ОК".В приложении>src>main>res>raw перейдите в JSON-файл с именем
auth_config_single_account.json
и вставьте сохраненную ранее конфигурацию MSAL.Под URI перенаправления вставьте:
"account_mode" : "SINGLE",
Теперь файл конфигурации должен выглядеть примерно так:
{ "client_id": "00001111-aaaa-bbbb-3333-cccc4444", "authorization_user_agent": "WEBVIEW", "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D", "broker_redirect_uri_registered": false, "account_mode": "SINGLE", "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" } } ] }
Откройте файл /app/src/main/AndroidManifest.xml.
Найдите плейсхолдер:
-
enter_the_signature_hash
и замените его на хэш подписи, который вы создали ранее, когда добавляли URL-адрес перенаправления платформы.
Это руководство демонстрирует, как настраивать приложение только в режиме одной учетной записи. Для получения дополнительной информации см. раздел о режиме одной и нескольких учетных записей и раздел о настройке вашего приложения.
-
Запуск примера приложения
Выберите эмулятор или физическое устройство из раскрывающегося списка доступных устройств Android Studio и запустите приложение.
Пример приложения запускается на экране Single Account Mode (Режим единой учетной записи). Область по умолчанию, user.read, предоставляется по умолчанию и используется при чтении данных собственного профиля во время вызова API Microsoft Graph. URL-адрес для вызова Microsoft Graph API предоставляется по умолчанию. При необходимости их можно изменить.
Используйте меню приложения для переключения между режимами одной и нескольких учетных записей.
В режиме одной учетной записи войдите с помощью рабочей или домашней учетной записи:
- Выберите Get graph data interactively (Получить данные графов в интерактивном режиме ), чтобы запросить у пользователя учетные данные. Вы увидите выходные данные вызова API Microsoft Graph в нижней части экрана.
- После входа в систему выберите Get graph data silently (Получить данные графов без уведомления), чтобы вызвать Microsoft Graph API, не запрашивая у пользователя учетные данные снова. Вы увидите выходные данные вызова API Microsoft Graph в нижней части экрана.
В режиме нескольких учетных записей можно повторить те же действия. Кроме того, можно удалить учетную запись для входа. При этом кэшированные токены для этой учетной записи также удаляются.
Как работает этот пример
Код разделен на фрагменты, демонстрирующие, как записывать приложение MSAL для одной и нескольких учетных записей. Файлы кода организованы следующим образом:
Файл | Демонстрирует |
---|---|
MainActivity | Управляет пользовательским интерфейсом |
Упаковщик запросов MS Graph | Вызывает API Microsoft Graph, используя токен, предоставленный MSAL |
ФрагментРежимаМножественныхАккаунтов | Инициализирует приложение с несколькими учетными записями, загружает учетную запись пользователя и получает токен для вызова API Microsoft Graph |
SingleAccountModeFragment | Инициализирует приложение с одной учетной записью, загружает учетную запись пользователя и получает токен для вызова API Microsoft Graph |
res/auth_config_multiple_account.json | Файл конфигурации нескольких учетных записей |
res/auth_config_single_account.json | Файл конфигурации одной учетной записи |
Скрипты Gradle/build.grade (модуль: app) | Здесь добавляются зависимости библиотеки MSAL |
Теперь мы рассмотрим эти файлы подробнее и вызовем код, относящийся к MSAL, в каждом из них
Дальнейшие действия
Перейдите к учебнику по Android, с помощью которого вы создадите приложение Android, получающее маркер доступа от платформы удостоверений Майкрософт и использующее его для вызова API Microsoft Graph.
Краткое руководство по настройке примеров приложений Android, .NET MAUI Android и iOS/macOS для входа пользователей путем регистрации приложений, настройки URL-адресов перенаправления, обновления конфигураций и тестирования приложения.
Предпосылки
- Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи, Создайте ее бесплатно.
- Эта учетная запись Azure должна иметь разрешения на управление приложениями. Любые из следующих ролей Microsoft Entra включают необходимые разрешения:
- Администратор приложений
- Разработчик приложения
- Администратор облачных приложений
- Внешний арендатор. Чтобы создать его, выберите один из следующих методов:
- Используйте расширение Microsoft Entra External ID, чтобы настроить внешний клиент непосредственно в Visual Studio Code. (Рекомендуется)
- Создайте нового внешнего клиента в центре администрирования Microsoft Entra.
- Зарегистрируйте новое приложение в Центре администрирования Microsoft Entra со следующей конфигурацией и запишите его идентификаторы на странице обзора приложения. Дополнительные сведения см. в разделе Регистрация приложения.
- Имя: identity-client-mobile-app
- Поддерживаемые типы учетных записей: учетные записи в этом каталоге организации (только один клиент)
Добавить URL-адрес перенаправления платформы
Чтобы указать тип приложения для регистрации приложения, выполните следующие действия.
- В разделе Управление выберите Проверка подлинности.
- На странице конфигураций платформы выберите "Добавить платформу" и выберите вариант Android.
- Введите имя пакета проекта. Если вы скачали пример кода, это значение равно
com.azuresamples.msaldelegatedandroidkotlinsampleapp
. - В разделе хэша подписи окна «Настройка приложения Android» выберите «Создать хэш подписи для разработки». Этот хэш будет меняться в зависимости от среды разработки. Скопируйте и выполните команду KeyTool для вашей операционной системы в терминале.
- Введите хэш подписи, созданный с помощью KeyTool.
- Выберите и настройте.
- Скопируйте конфигурацию MSAL из области конфигурации Android и сохраните ее для последующей настройки приложения.
- Нажмите кнопку Готово.
Включение публичного клиентского потока
Чтобы определить приложение как общедоступный клиент, выполните следующие действия.
В разделе Управление выберите Проверка подлинности.
В разделе "Дополнительные параметры" для параметра "Разрешить общедоступные потоки клиентов" нажмите кнопку "Да".
Выберите Сохранить, чтобы сохранить изменения.
Предоставление согласия администратора
После регистрации приложения ему предоставляется разрешение User.Read. Однако, поскольку клиент является внешним клиентом, сами пользователи клиента не могут согласиться с этим разрешением. Вы, как администратор клиента, должны предоставить это разрешение от имени всех пользователей в клиенте:
На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.
В разделе Управление выберите Разрешения API.
- Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".
- Выберите Обновить, а затем убедитесь, что предоставлено для <имя вашего арендатора> отображается в разделе Состояние для разрешения.
Клонирование примера приложения
Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.
Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
Настройка примера приложения
Чтобы включить проверку подлинности и доступ к ресурсам Microsoft Graph, настройте пример, выполнив следующие действия.
В Android Studio откройте клонируемый проект.
Откройте файл /app/src/main/res/raw/auth_config_ciam.json .
Найдите плейсхолдер:
- Замените
Enter_the_Application_Id_Here
на идентификатор приложения (идентификатор клиента) того приложения, которое вы зарегистрировали ранее. -
Enter_the_Redirect_Uri_Here
и замените его на значение redirect_uri в файле конфигурации библиотеки проверки подлинности Майкрософт (MSAL), который вы скачали ранее, когда вы добавляли URL-адрес перенаправления платформы. -
Enter_the_Tenant_Subdomain_Here
и замените его на поддомен каталога (домен клиента). Например, если основной домен клиента — этоcontoso.onmicrosoft.com
, используйтеcontoso
. Если вы не знаете поддомен клиента, узнайте, как прочитать сведения о клиенте.
- Замените
Откройте файл /app/src/main/AndroidManifest.xml.
Найдите плейсхолдер:
-
ENTER_YOUR_SIGNATURE_HASH_HERE
и замените его хэшом подписи , созданным ранее при добавлении URL-адреса перенаправления платформы.
-
Откройте файл /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt .
Найдите свойство с именем
scopes
и задайте области, записанные в разделе "Предоставление согласия администратора". Если вы не записали сферы, вы можете оставить этот список сфер пустым.private const val scopes = "" // Developers should set the respective scopes of their Microsoft Graph resources here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
Вы настроили приложение, и оно готово к запуску.
Запуск и проверка примера приложения
Чтобы создать и запустить приложение, выполните следующие действия.
На панели инструментов выберите приложение в меню конфигураций запуска.
В меню целевого устройства выберите устройство, на которое вы хотите запустить приложение.
Если у вас нет устройств, необходимо создать виртуальное устройство Android для использования эмулятора Android или подключить физическое устройство Android.
Нажмите кнопку Запустить.
Выберите "Получить маркер" в интерактивном режиме , чтобы запросить маркер доступа.
Если вы выберете API — выполните GET для вызова защищенного веб-API ASP.NET Core, появится сообщение об ошибке.
Дополнительные сведения о вызове защищенного веб-API см. в следующих шагах.