Руководство. Подготовка приложения Android (Kotlin) для проверки подлинности
Это второй учебник в серии учебников, демонстрирующий добавление библиотеки проверки подлинности Майкрософт (MSAL) для Android в приложение Android (Kotlin). MSAL позволяет приложениям Android проходить проверку подлинности пользователей с помощью Microsoft Entra.
В этом руководстве вы выполните следующие действия.
- Добавьте зависимости MSAL.
- Добавление конфигурации.
Необходимые компоненты
- Android Studio
- Если вы еще не сделали этого, следуйте инструкциям в руководстве по регистрации и настройке мобильного приложения Android (Kotlin) и регистрации приложения во внешнем клиенте.
- Проект Android. Если у вас нет проекта 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
имя нового каталога и нажмите кнопку "ОК".В app\src\main\res\raw создайте новый JSON-файл
auth_config_ciam_auth.json
.auth_config_ciam_auth.json
В файле добавьте следующие конфигурации MSAL:{ "client_id" : "Enter_the_Application_Id_Here", "authorization_user_agent" : "DEFAULT", "redirect_uri" : "Enter_the_Redirect_Uri_Here", "account_mode" : "SINGLE", "authorities" : [ { "type": "CIAM", "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" } ] }
Файл конфигурации JSON задает различные параметры для приложения Android. Он включает идентификатор клиента, агент пользователя авторизации, URI перенаправления и режим учетной записи. Кроме того, он определяет центр проверки подлинности, указывая URL-адрес типа и центра.
Замените следующие заполнители значениями клиента, полученными из Центра администрирования Microsoft Entra:
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 .
В AndroidManifest.xml добавьте следующую спецификацию данных в фильтр намерений:
<data android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE" android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE" android:scheme="msauth" />
Найдите заполнитель:
- ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE и замените его именем пакета проекта Android.
- ENTER_YOUR_SIGNATURE_HASH_HERE и замените его хэшом подписи, созданным ранее при добавлении URL-адреса перенаправления платформы.
Использование личного домена URL-адреса (необязательно)
Используйте личный домен для полной фирменной символики URL-адреса проверки подлинности. С точки зрения пользователя пользователи остаются в домене во время проверки подлинности, а не перенаправляются на ciamlogin.com доменное имя.
Чтобы использовать личный домен, выполните следующие действия.
Выполните действия, описанные в разделе "Включение пользовательских доменов URL-адресов" для приложений во внешних клиентах , чтобы включить личный ДОМЕН URL-адресов для внешнего клиента.
Откройте файл auth_config_ciam_auth.json :
- Измените значение
authority_url
свойства https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Hereна . ЗаменитеEnter_the_Custom_Domain_Here
домен личного URL-адреса иEnter_the_Tenant_ID_Here
идентификатором клиента. Если у вас нет идентификатора клиента, узнайте, как прочитать сведения о клиенте. - Добавьте
knownAuthorities
свойство со значением [Enter_the_Custom_Domain_Here].
- Измените значение
После внесения изменений в файл auth_config_ciam_auth.json, если личный домен URL-адреса login.contoso.com, а идентификатор клиента — aaaabbbb-0000-cccc-1111-dd222eeee, файл должен выглядеть следующим фрагментом кода:
{
"client_id" : "Enter_the_Application_Id_Here",
"authorization_user_agent" : "DEFAULT",
"redirect_uri" : "Enter_the_Redirect_Uri_Here",
"account_mode" : "SINGLE",
"authorities" : [
{
"type": "CIAM",
"authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
"knownAuthorities": ["login.contoso.com"]
}
]
}
Создание экземпляра пакета SDK MSAL
Чтобы инициализировать экземпляр ПАКЕТА SDK MSAL, используйте следующий код:
private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
this@MainActivity,
R.raw.auth_config_ciam_auth
)
}
Код инициализирует одно клиентское приложение общедоступной учетной записи асинхронно. Он использует предоставленный файл конфигурации проверки подлинности и запускается в диспетчере ввода-вывода.
Убедитесь, что вы включили инструкции импорта. Android Studio должна включать автоматические инструкции импорта.
Следующие шаги
Руководство. Вход пользователей в мобильное приложение Android (Kotlin)