Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применяется к: арендаторы рабочей силы
внешние клиенты (подробнее)
В этом руководстве описано, как добавить библиотеку проверки подлинности Майкрософт (MSAL) для Android в приложение Android. MSAL позволяет приложениям Android проходить проверку подлинности пользователей с помощью Microsoft Entra.
В этом руководстве вы получите следующее:
- Добавьте зависимость MSAL
- Добавление конфигурации
- Создание экземпляра пакета SDK MSAL
Необходимые условия
- Арендатор рабочей силы. Вы можете использовать каталог по умолчанию или настроить нового арендатора.
- Зарегистрируйте новое приложение в Центре администрирования Microsoft Entra, настроенное только для учетных записей в этом каталоге организации. Дополнительные сведения см. в статье "Регистрация приложения ". Запишите следующие значения на странице обзора приложения для последующего использования:
- Идентификатор приложения (клиента)
- Идентификатор каталога (арендатора)
- Проект Android. Если у вас нет проекта Android, создайте его.
Добавьте 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, чтобы можно было ввести ее при последующей настройке приложения.
Нажмите кнопку Готово.
Добавление зависимостей MSAL и соответствующих библиотек в проект
Чтобы добавить зависимости MSAL в проект Android, выполните следующие действия.
Откройте проект в Android Studio или создайте новый проект.
Откройте
build.gradle
вашего приложения и добавьте следующие зависимости:allprojects { repositories { //Needed for com.microsoft.device.display:display-mask library maven { url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' name 'Duo-SDK-Feed' } mavenCentral() google() } } //... dependencies { implementation 'com.microsoft.identity.client:msal:5.+' //... }
В конфигурации
build.gradle
репозитории определяются для зависимостей проекта. Он содержит URL-адрес репозитория Maven для библиотекиcom.microsoft.device.display:display-mask
из Azure DevOps. Кроме того, он использует репозитории Maven Central и Google. В разделе зависимостей указывается реализация MSAL версии 5 и потенциально других зависимостей.В Android Studio выберите Файл>Синхронизировать проект с файлами Gradle.
Добавление конфигурации
Необходимо передать необходимые идентификаторы клиента, например идентификатор приложения (клиента), в пакет SDK MSAL через параметр конфигурации JSON.
Чтобы создать файл конфигурации, выполните следующие действия.
В области проектов Android Studio перейдите к app\src\main\res.
Щелкните правой кнопкой мыши на res и выберите "Создать директорию>". Введите
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": true, "account_mode": "SINGLE", "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" } } ] }
Это руководство демонстрирует, как настраивать приложение только в режиме одной учетной записи. Для получения дополнительной информации см. раздел о режиме одной и нескольких учетных записей и раздел о настройке вашего приложения.
Рекомендуется использовать WEBVIEW. Если вы хотите настроить "authorization_user_agent" в качестве браузера в приложении, вам потребуется внести следующие обновления. a) Обновите auth_config_single_account.json, заменив "authorization_user_agent" на "Браузер". b) Обновить AndroidManifest.xml. В приложении перейдите к приложению>src>main>AndroidManifest.xmlи добавьте активность
BrowserTabActivity
в качестве дочернего элемента<application>
. Эта запись позволяет идентификатору Microsoft Entra вернуться к приложению после завершения проверки подлинности:<!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in--> <activity android:name="com.microsoft.identity.client.BrowserTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="msauth" android:host="Enter_the_Package_Name" android:path="/Enter_the_Signature_Hash" /> </intent-filter> </activity>
- Используйте имя пакета для замены значения
android:host=.
. Он должен выглядеть какcom.azuresamples.msalandroidapp
. - Используйте хэш подписи для замены значения
android:path=
. Убедитесь, что в начале хэша подписи есть начальный/
. Это должно выглядеть как/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Эти значения также можно найти на панели аутентификации регистрации вашего приложения.
- Используйте имя пакета для замены значения
Создание экземпляра пакета SDK MSAL
Чтобы инициализировать экземпляр ПАКЕТА SDK MSAL, используйте следующий код:
PublicClientApplication.createSingleAccountPublicClientApplication(
getContext(),
R.raw.auth_config_single_account,
new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
@Override
public void onCreated(ISingleAccountPublicClientApplication application) {
// Initialize the single account application instance
mSingleAccountApp = application;
loadAccount();
}
@Override
public void onError(MsalException exception) {
// Handle any errors that occur during initialization
displayError(exception);
}
}
);
Этот код создает одно клиентское приложение общедоступной учетной записи с помощью файла конфигурации auth_config_single_account.json. После успешного создания приложения он назначает экземпляр mSingleAccountApp
и вызывает метод loadAccount()
. Если во время создания возникает ошибка, она обрабатывает ошибку путем вызова метода displayError(exception).
Убедитесь, что вы включили инструкции импорта. Android Studio должна включать автоматические инструкции импорта.