Sdílet prostřednictvím


Kurz: Nastavení aplikace pro Android pro přihlášení uživatelů pomocí platformy Microsoft Identity Platform

Platí pro: Zelený kruh se symbolem bílé značky zaškrtnutí, který označuje následující obsah platí pro tenanty pracovních sil. Tenanti pracovních sil zelený kruh se symbolem bílé značky zaškrtnutí, který označuje následující obsah platí pro externí tenanty. Externí tenanti (další informace)

V tomto kurzu přidáte knihovnu Microsoft Authentication Library (MSAL) pro Android do aplikace pro Android. MSAL umožňuje aplikacím pro Android ověřovat uživatele pomocí Microsoft Entra.

V tomto kurzu budete;

  • Přidání závislosti MSAL
  • Přidat konfiguraci
  • Vytvoření instance sady MSAL SDK

Požadavky

  • Součást pracovního týmu. Můžete použít výchozí adresář nebo nastavit nového tenanta.
  • Zaregistrujte novou aplikaci v Centru pro správu Microsoft Entra, která je nakonfigurovaná jenom pro účty v tomto organizačním adresáři. Další podrobnosti najdete v tématu Registrace aplikace . Na stránce Přehled aplikace si poznamenejte následující hodnoty pro pozdější použití:
    • ID aplikace (klienta)
    • ID adresáře (klienta)
  • Android projekt. Pokud projekt Pro Android nemáte, vytvořte ho.

Přidejte URI pro přesměrování

V registraci aplikace musíte nakonfigurovat konkrétní identifikátory URI přesměrování, abyste zajistili kompatibilitu se staženým vzorovým kódem. Tyto identifikátory URI jsou nezbytné pro přesměrování uživatelů zpět do aplikace po úspěšném přihlášení.

  1. V části Spravovat vyberte Ověřování>Přidat platformu>Android.

  2. Zadejte název balíčku projektu na základě výše staženého ukázkového typu.

    • Ukázka Javy – com.azuresamples.msalandroidapp
    • Ukázka Kotlinu – com.azuresamples.msalandroidkotlinapp
  3. Ve části Hash podpisu podokna Konfigurace aplikace pro Android vyberte Generování vývojového hash podpisu. a zkopírujte příkaz KeyTool do příkazového řádku.

    • KeyTool.exe se instaluje jako součást sady Java Development Kit (JDK). Musíte také nainstalovat nástroj OpenSSL ke spuštění příkazu KeyTool. Další informace najdete v dokumentaci k Androidu o generování klíče .
  4. Zadejte hodnotu hash podpisu vygenerovanou nástrojem KeyTool.

  5. Vyberte Konfigurovat a uložte konfiguraci MSAL, která se zobrazí v podokně konfigurace Androidu, abyste ji mohli zadat při pozdější konfiguraci aplikace.

  6. Vyberte Hotovo.

Přidejte závislost MSAL a relevantní knihovny do vašeho projektu

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 ve své 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.+'
        //...
    }
    

    V konfiguraci build.gradle 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. Sekce závislostí specifikuje implementaci knihovny MSAL verze 5 a potenciálně i další závislosti.

  3. V Android Studio vyberte Soubor>Synchronizovat projekt s Gradle soubory.

Přidat konfiguraci

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 na res a zvolte Nový>Adresář. Jako název nového adresáře zadejte raw a vyberte OK.

  3. V aplikaci >src>main>res>rawvytvořte nový soubor JSON s názvem auth_config_single_account.json a vložte konfiguraci MSAL, kterou jste si uložili dříve.

    Pod adresu URI přesměrování vložte:

      "account_mode" : "SINGLE",
    

    Konfigurační soubor by měl vypadat podobně jako v tomto příkladu:

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

    Tento návod ukazuje, jak nakonfigurovat aplikaci v režimu jednoho účtu; viz také režim jednoho vs. více účtů a konfiguraci aplikace pro více informací.

  4. Doporučujeme použít webVIEW. V případě, že chcete v aplikaci nakonfigurovat "authorization_user_agent" jako PROHLÍŽEČ, musíte provést následující aktualizace. a) Aktualizujte auth_config_single_account.json s "authorization_user_agent": "Browser". b) Aktualizace AndroidManifest.xml. V aplikaci přejděte na app>src>hlavní>AndroidManifest.xml, přidejte aktivitu BrowserTabActivity jako podřízený prvek <application>. Tato položka umožňuje Microsoft Entra ID volat zpět do vaší aplikace po dokončení ověřování:

    <!--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>
    
    • K nahrazení hodnoty použijte název balíčku android:host=.. Měl by vypadat jako com.azuresamples.msalandroidapp.
    • Hodnotu nahraďte android:path= podpisu. Ujistěte se, že na samém začátku hash podpisu je úvodní /. Měl by vypadat jako /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    Tyto hodnoty najdete také v okně Ověřování registrace aplikace.

Vytvoření instance sady MSAL SDK

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

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);
        }
    }
);

Tento kód vytvoří veřejnou klientskou aplikaci s jedním účtem pomocí konfiguračního souboru auth_config_single_account.json. Po úspěšném vytvoření aplikace přiřadí instanci mSingleAccountApp a zavolá metodu loadAccount(). Pokud během vytváření dojde k chybě, zpracuje chybu voláním metody displayError(exception).

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

Další kroky