Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: zaměstnanci
externí nájemci (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í.
V části Spravovat vyberte Ověřování>Přidat platformu>Android.
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
- Ukázka Javy –
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 .
Zadejte hodnotu hash podpisu vygenerovanou nástrojem KeyTool.
Vyberte Konfigurovat a uložte konfiguraci MSAL, která se zobrazí v podokně konfigurace Androidu, abyste ji mohli zadat při pozdější konfiguraci aplikace.
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:
Otevřete projekt v Android Studiu nebo vytvořte nový projekt.
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 knihovnucom.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.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:
- konfigurace tenanta pracovní síly
- Konfigurace externího klienta
V podokně projektu Android Studia přejděte na app\src\main\res.
Klikněte pravým tlačítkem na res a zvolte Nový>Adresář. Jako název nového adresáře zadejte
raw
a vyberte OK.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í.
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 jakocom.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.
- K nahrazení hodnoty použijte název balíčku
Vytvoření instance sady MSAL SDK
K inicializaci instance sady MSAL SDK použijte následující kód:
- konfigurace tenanta pracovní síly
- Konfigurace externího klienta
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.