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


Руководство. Подготовка приложения Android (Kotlin) для проверки подлинности

Это второй учебник в серии учебников, демонстрирующий добавление библиотеки проверки подлинности Майкрософт (MSAL) для Android в приложение Android (Kotlin). MSAL позволяет приложениям Android проходить проверку подлинности пользователей с помощью Microsoft Entra.

В этом руководстве вы выполните следующие действия.

  • Добавьте зависимости MSAL.
  • Добавление конфигурации.

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

Добавление зависимостей MSAL

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

  1. Откройте проект в Android Studio или создайте новый проект.

  2. Откройте приложение 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 и потенциально других зависимостей.

  3. В Android Studio выберите проект синхронизации файлов>с файлами Gradle.

Добавление конфигурации

Необходимо передать необходимые идентификаторы клиента, например идентификатор приложения (клиента), в пакет SDK MSAL через параметр конфигурации JSON.

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

  1. На панели проекта Android Studio перейдите к app\src\main\res.

  2. Щелкните правой кнопкой мыши res и выберите новый>каталог. Введите raw имя нового каталога и нажмите кнопку "ОК".

  3. В app\src\main\res\raw создайте новый JSON-файл auth_config_ciam_auth.json.

  4. 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. Если вы не знаете поддомен клиента, узнайте, как прочитать сведения о клиенте.
  5. Откройте файл /app/src/main/AndroidManifest.xml .

  6. В 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 доменное имя.

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

  1. Выполните действия, описанные в разделе "Включение пользовательских доменов URL-адресов" для приложений во внешних клиентах , чтобы включить личный ДОМЕН URL-адресов для внешнего клиента.

  2. Откройте файл auth_config_ciam_auth.json :

    1. Измените значение authority_url свойства https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Hereна . Замените Enter_the_Custom_Domain_Here домен личного URL-адреса и Enter_the_Tenant_ID_Here идентификатором клиента. Если у вас нет идентификатора клиента, узнайте, как прочитать сведения о клиенте.
    2. Добавьте 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)