Udostępnij za pośrednictwem


Samouczek: przygotowywanie aplikacji systemu Android (Kotlin) do uwierzytelniania

Jest to drugi samouczek z serii samouczków, który pokazuje, jak dodać bibliotekę Microsoft Authentication Library (MSAL) dla systemu Android do aplikacji Systemu Android (Kotlin). Biblioteka MSAL umożliwia aplikacjom systemu Android uwierzytelnianie użytkowników w usłudze Microsoft Entra.

W tym samouczku wykonasz następujące elementy:

  • Dodaj zależności biblioteki MSAL.
  • Dodaj konfigurację.

Wymagania wstępne

Dodawanie zależności biblioteki MSAL

Aby dodać zależności biblioteki MSAL w projekcie systemu Android, wykonaj następujące kroki:

  1. Otwórz projekt w programie Android Studio lub utwórz nowy projekt.

  2. Otwórz aplikację build.gradle i dodaj następujące zależności:

    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 W konfiguracji repozytoria są definiowane dla zależności projektu. Zawiera on adres URL repozytorium Maven dla com.microsoft.device.display:display-mask biblioteki z usługi Azure DevOps. Ponadto korzysta z repozytoriów Maven Central i Google. Sekcja zależności określa implementację biblioteki MSAL w wersji 5 i potencjalnie innych zależności.

  3. W programie Android Studio wybierz pozycję Projekt synchronizacji plików>z plikami Gradle.

Dodawanie konfiguracji

Wymagane identyfikatory dzierżawy, takie jak identyfikator aplikacji (klienta), są przekazywane do zestawu SDK biblioteki MSAL za pomocą ustawienia konfiguracji JSON.

Wykonaj następujące kroki, aby utworzyć plik konfiguracji:

  1. W okienku projektu programu Android Studio przejdź do pozycji app\src\main\res.

  2. Kliknij prawym przyciskiem myszy pozycję res i wybierz pozycję Nowy>katalog. Wprowadź raw jako nazwę nowego katalogu i wybierz przycisk OK.

  3. W pliku app\src\main\res\raw utwórz nowy plik JSON o nazwie auth_config_ciam_auth.json.

  4. auth_config_ciam_auth.json W pliku dodaj następujące konfiguracje biblioteki 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/"
        }
      ]
    }
    

    Plik konfiguracji JSON określa różne ustawienia aplikacji systemu Android. Obejmuje identyfikator klienta, agenta użytkownika autoryzacji, identyfikator URI przekierowania i tryb konta. Ponadto definiuje urząd uwierzytelniania, określając typ i adres URL urzędu.

    Zastąp następujące symbole zastępcze wartościami dzierżawy uzyskanymi z centrum administracyjnego firmy Microsoft Entra:

    • Enter_the_Application_Id_Herezastąp ją identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.
    • Enter_the_Redirect_Uri_Here i zastąp ją wartością redirect_uri w pobranym wcześniej pliku konfiguracji biblioteki Microsoft Authentication Library (MSAL) po dodaniu adresu URL przekierowania platformy.
    • Enter_the_Tenant_Subdomain_Here i zastąp ją poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa dzierżawy to contoso.onmicrosoft.com, użyj polecenia contoso. Jeśli nie znasz poddomeny dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy.
  5. Otwórz plik /app/src/main/AndroidManifest.xml .

  6. W AndroidManifest.xml dodaj następującą specyfikację danych do filtru intencji:

    <data
        android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE"
        android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE"
        android:scheme="msauth" />
    

    Znajdź symbol zastępczy:

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE i zastąp go nazwą pakietu projektu systemu Android.
    • ENTER_YOUR_SIGNATURE_HASH_HERE i zastąp go skrótem sygnatury wygenerowaną wcześniej podczas dodawania adresu URL przekierowania platformy.

Użyj niestandardowej domeny adresu URL (opcjonalnie)

Użyj domeny niestandardowej, aby w pełni oznaczyć adres URL uwierzytelniania. Z perspektywy użytkownika użytkownicy pozostają w domenie podczas procesu uwierzytelniania, a nie przekierowywani do ciamlogin.com nazwy domeny.

Aby użyć domeny niestandardowej, wykonaj następujące czynności:

  1. Wykonaj kroki opisane w temacie Włączanie niestandardowych domen url dla aplikacji w dzierżawach zewnętrznych, aby włączyć niestandardową domenę adresu URL dla dzierżawy zewnętrznej.

  2. Otwórz plik auth_config_ciam_auth.json :

    1. Zaktualizuj wartość authority_url właściwości na https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Zastąp Enter_the_Custom_Domain_Here ciąg domeną niestandardowego adresu URL i Enter_the_Tenant_ID_Here identyfikatorem dzierżawy. Jeśli nie masz identyfikatora dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy.
    2. Dodaj knownAuthorities właściwość o wartości [Enter_the_Custom_Domain_Here].

Po wprowadzeniu zmian w pliku auth_config_ciam_auth.json , jeśli domena niestandardowego adresu URL jest login.contoso.com, a identyfikator dzierżawy to aaaabbbb-0000-cccc-1111-dddd2222eeeee, plik powinien wyglądać podobnie do następującego fragmentu kodu:

{
    "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"]
    }
    ]
}

Tworzenie wystąpienia zestawu MSAL SDK

Aby zainicjować wystąpienie zestawu MSAL SDK, użyj następującego kodu:

private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
    return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
        this@MainActivity,
        R.raw.auth_config_ciam_auth
    )
}

Kod inicjuje jedno konto publicznej aplikacji klienckiej asynchronicznie. Używa on dostarczonego pliku konfiguracji uwierzytelniania i działa w dyspozytorze we/wy.

Upewnij się, że dołączysz instrukcje importowania. Program Android Studio powinien automatycznie dołączać instrukcje importowania.

Następne kroki

Samouczek: logowanie użytkowników w aplikacji mobilnej Dla systemu Android (Kotlin)