Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: 
 Externa klienter (läs mer)
 Externa klienter (läs mer)
I den här självstudien kommer du att lära dig hur du lägger till Microsoft Authentication Library (MSAL) för Android i din Android-app. MSAL gör det möjligt för Android-program att autentisera användare med Microsoft Entra.
I den här handledningen ska du
- Lägga till MSAL-beroende
- Lägg till konfiguration
- Skapa MSAL SDK-instans
Förutsättningar
- En hyresgäst för arbetskraft. Du kan använda din standardkatalog eller konfigurera en ny klient.
- Registrera en ny app i administrationscentret för Microsoft Entra, som endast konfigurerats för konton i den här organisationskatalogen. Mer information finns i Registrera ett program . Registrera följande värden från programöversiktssidan för senare användning: - App-ID (klient-ID)
- Katalog-ID (hyresgäst)
 
- Ett Android-projekt. Om du inte har ett Android-projekt skapar du det.
Lägga till en omdirigerings-URI
Du måste konfigurera specifika omdirigerings-URI:er i appregistreringen för att säkerställa kompatibilitet med det nedladdade kodexemplet. Dessa URI:er är viktiga för att omdirigera användare tillbaka till appen när de har loggat in.
- Under Hantera väljer du Autentisering>Lägg till en plattform>Android. 
- Ange projektets paketnamn baserat på exempeltypen som du laddade ned ovan. - Java-exempel – com.azuresamples.msalandroidapp
- Kotlin-exempel – com.azuresamples.msalandroidkotlinapp
 
- Java-exempel – 
- I avsnittet Signaturhash i fönstret Konfigurera din Android-app väljer du Generera en utvecklingssignaturhash. Kopiera kommandot KeyTool till kommandoraden. - KeyTool.exe installeras som en del av Java Development Kit (JDK). Du måste också installera OpenSSL-verktyget för att köra KeyTool-kommandot. För mer information, se Android-dokumentationen om hur du genererar en nyckel.
 
- Ange den signaturhash som genererats av KeyTool. 
- Välj Konfigurera och spara MSAL-konfigurationen som visas i Android-konfigurationsfönstret så att du kan ange den när du konfigurerar appen senare. 
- Välj Färdig. 
Lägga till MSAL-beroende och relevanta bibliotek i projektet
Följ dessa steg för att lägga till MSAL-beroenden i ditt Android-projekt:
- Öppna projektet i Android Studio eller skapa ett nytt projekt. 
- Öppna programmets - build.gradleoch lägg till följande beroenden:- 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.+' //... }- I den - build.gradlekonfigurationen definieras lagringsplatser för projektberoenden. Den innehåller en Url för Maven-lagringsplatsen för- com.microsoft.device.display:display-mask-biblioteket från Azure DevOps. Dessutom använder den Maven Central- och Google-lagringsplatser. Avsnittet beroenden anger implementeringen av MSAL version 5 och potentiellt andra beroenden.
- I Android Studio, välj File>Synkronisera projekt med Gradle-filer. 
Lägg till konfiguration
Du skickar de nödvändiga hyresgivaridentifierarna, till exempel program-ID (klient-ID), till MSAL SDK via en JSON-konfigurationsinställning.
Använd de här stegen för att skapa konfigurationsfilen:
- I Android Studio-projektfönstret navigerar du till app\src\main\res. 
- Högerklicka på res och välj New>Directory. Ange - rawsom nytt katalognamn och välj OK.
- I app>src>main>res>rawskapar du en ny JSON-fil med namnet - auth_config_single_account.jsonoch klistrar in MSAL-konfigurationen som du sparade tidigare.- Klistra in nedanför omdirigerings-URI:n - "account_mode" : "SINGLE",- Konfigurationsfilen bör likna det här exemplet: - { "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" } } ] }- Eftersom den här självstudien bara visar hur du konfigurerar en app i läget 'Ett enda konto', kan du läsa om enkelt kontra flera konton-läge och konfigurera din app för mer information. 
- Vi rekommenderar att du använder "WEBVIEW". Om du vill konfigurera "authorization_user_agent" som "BROWSER" i din app måste du göra följande uppdateringar. a) Uppdatera auth_config_single_account.json med "authorization_user_agent": "Browser". b) Uppdatera AndroidManifest.xml. I appen går du till app>src>main>AndroidManifest.xml, lägger du till aktiviteten - BrowserTabActivitysom ett underordnat element till- <application>. Med den här posten kan Microsoft Entra-ID anropa tillbaka till ditt program när autentiseringen har slutförts:- <!--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>- Använd -paketnamnet för att ersätta värdet för android:host=.. Det bör se ut somcom.azuresamples.msalandroidapp.
- Använd Signature Hash för att ersätta android:path=värde. Se till att det finns en ledande/i början av din signaturhash. Det bör se ut som/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.
 - Du hittar även dessa värden på autentiseringsbladet för din appregistrering. 
- Använd -paketnamnet för att ersätta värdet för 
Skapa MSAL SDK-instans
Om du vill initiera MSAL SDK-instansen använder du följande kod:
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);
        }
    }
);
Den här koden skapar ett offentligt klientprogram för ett enda konto med hjälp av konfigurationsfilen auth_config_single_account.json. När programmet har skapats tilldelar det instansen till mSingleAccountApp och anropar metoden loadAccount(). Om ett fel inträffar under skapandet hanterar det felet genom att anropa metoden displayError(exception).
Se till att du inkluderar importinstruktionerna. Android Studio ska inkludera importinstruktionerna automatiskt.