Dela via


Självstudie: Konfigurera en Android-app för att logga in användare med hjälp av Microsofts identitetsplattform

Gäller för: Grön cirkel med en vit bockmarkeringssymbol som anger att följande innehåll gäller för personalklienter.Personalklienter Grön cirkel med en vit bockmarkeringssymbol som anger att följande innehåll gäller för externa klienter. 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.

  1. Under Hantera väljer du Autentisering>Lägg till en plattform>Android.

  2. Ange projektets paketnamn baserat på exempeltypen som du laddade ned ovan.

    • Java-exempel – com.azuresamples.msalandroidapp
    • Kotlin-exempel – com.azuresamples.msalandroidkotlinapp
  3. I avsnittet Signaturhash i fönstret Konfigurera din Android-app väljer du Generera en utvecklingssignaturhash. Kopiera kommandot KeyTool till kommandoraden.

  4. Ange den signaturhash som genererats av KeyTool.

  5. 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.

  6. 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:

  1. Öppna projektet i Android Studio eller skapa ett nytt projekt.

  2. Öppna programmets build.gradle och 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.gradle konfigurationen 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.

  3. 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:

  1. I Android Studio-projektfönstret navigerar du till app\src\main\res.

  2. Högerklicka på res och välj New>Directory. Ange raw som nytt katalognamn och välj OK.

  3. I app>src>main>res>rawskapar du en ny JSON-fil med namnet auth_config_single_account.json och 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.

  4. 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 BrowserTabActivity som 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 som com.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.

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.

Nästa steg