Sdílet prostřednictvím


Kurz: Příprava aplikace pro Android (Kotlin) na ověřování

Toto je druhý kurz v sérii kurzů, který ukazuje, jak do aplikace Android (Kotlin) přidat knihovnu Microsoft Authentication Library (MSAL) pro Android. MSAL umožňuje aplikacím pro Android ověřovat uživatele pomocí Microsoft Entra.

V tomto kurzu:

  • Přidejte závislosti MSAL.
  • Přidat konfiguraci.

Požadavky

Přidání závislostí MSAL

Pokud chcete do projektu Androidu přidat závislosti MSAL, postupujte takto:

  1. Otevřete projekt v Android Studiu nebo vytvořte nový projekt.

  2. Otevřete aplikaci build.gradle a přidejte následující závislosti:

    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 V konfiguraci jsou úložiště definována pro závislosti projektu. Obsahuje adresu URL úložiště Maven pro knihovnu com.microsoft.device.display:display-mask z Azure DevOps. Kromě toho využívá centrální úložiště Maven a Google. Část závislosti určuje implementaci knihovny MSAL verze 5 a potenciálně i jiné závislosti.

  3. V Android Studiu vyberte Projekt synchronizace souborů>se soubory Gradle.

Přidání konfigurace

Požadované identifikátory tenanta, jako je ID aplikace (klienta), předáte sadě MSAL SDK prostřednictvím nastavení konfigurace JSON.

K vytvoření konfiguračního souboru použijte tento postup:

  1. V podokně projektu Android Studia přejděte na app\src\main\res.

  2. Klikněte pravým tlačítkem myši na možnost Res a vyberte Nový>adresář. Zadejte raw jako název nového adresáře a vyberte OK.

  3. V aplikaci\src\main\res\raw vytvořte nový soubor JSON s názvem auth_config_ciam_auth.json.

  4. auth_config_ciam_auth.json Do souboru přidejte následující konfigurace 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/"
        }
      ]
    }
    

    Konfigurační soubor JSON určuje různá nastavení pro aplikaci pro Android. Zahrnuje ID klienta, autorizačního uživatelského agenta, identifikátor URI přesměrování a režim účtu. Kromě toho definuje autoritu pro ověřování a určuje typ a adresu URL autority.

    Nahraďte následující zástupné symboly hodnotami tenanta, které jste získali z Centra pro správu Microsoft Entra:

    • Enter_the_Application_Id_Here a nahraďte ho ID aplikace (klienta), kterou jste zaregistrovali dříve.
    • Enter_the_Redirect_Uri_Here a nahraďte ji hodnotou redirect_uri v konfiguračním souboru knihovny MSAL (Microsoft Authentication Library), který jste stáhli dříve při přidání adresy URL pro přesměrování platformy.
    • Enter_the_Tenant_Subdomain_Here a nahraďte ji subdoménou adresáře (tenanta). Pokud je například primární doména vašeho tenanta contoso.onmicrosoft.com, použijte contoso. Pokud subdoménu tenanta neznáte, přečtěte si, jak si přečíst podrobnosti o tenantovi.
  5. Otevřete soubor /app/src/main/AndroidManifest.xml .

  6. Do AndroidManifest.xml přidejte do filtru záměru následující specifikaci dat:

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

    Vyhledejte zástupný symbol:

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE a nahraďte ho názvem balíčku projektu androidu.
    • ENTER_YOUR_SIGNATURE_HASH_HERE a nahraďte ji hodnotou Hash podpisu, kterou jste předtím vygenerovali při přidání adresy URL pro přesměrování platformy.

Použití vlastní domény URL (volitelné)

Pomocí vlastní domény plně označte adresu URL ověřování. Z pohledu uživatele zůstanou uživatelé ve vaší doméně během procesu ověřování místo přesměrování na ciamlogin.com název domény.

Pomocí následujících kroků použijte vlastní doménu:

  1. Pomocí kroků v části Povolit vlastní domény URL pro aplikace v externích tenantech povolte pro externího tenanta vlastní doménu URL.

  2. Otevřete soubor auth_config_ciam_auth.json :

    1. Aktualizujte hodnotu authority_url vlastnosti na https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Herehodnotu . Nahraďte Enter_the_Custom_Domain_Here vlastní doménou URL a Enter_the_Tenant_ID_Here ID tenanta. Pokud nemáte ID tenanta, přečtěte si, jak si přečíst podrobnosti o tenantovi.
    2. Přidejte knownAuthorities vlastnost s hodnotou [Enter_the_Custom_Domain_Here].

Po provedení změn v souboru auth_config_ciam_auth.json , pokud je vaše vlastní doména URL login.contoso.com a ID vašeho tenanta je aaaabbbbbb-0000-cccc-1111-dddd2222eeeee, měl by váš soubor vypadat podobně jako následující fragment kódu:

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

Vytvoření instance sady MSAL SDK

K inicializaci instance sady MSAL SDK použijte následující kód:

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

Kód inicializuje jednu veřejnou klientskou aplikaci účtu asynchronně. Používá zadaný konfigurační soubor ověřování a spouští se na dispečeru vstupně-výstupních operací.

Nezapomeňte zahrnout příkazy importu. Android Studio by měl automaticky obsahovat příkazy pro import.

Další kroky

Kurz: Přihlášení uživatelů v mobilní aplikaci Android (Kotlin)