Dela via


Snabbstart: Logga in användare i en exempelmobilapp

Innan du börjar, använd väljaren Välj en klienttyp högst upp på den här sidan för att välja typ av klient. Microsoft Entra ID tillhandahåller två klientkonfigurationer, personal och externa. En klientkonfiguration för personal är avsedd för dina anställda, interna appar och andra organisationsresurser. En extern användare är avsedd för kundeinriktade appar.

I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur ett Android-program kan logga in användare och få en åtkomsttoken för att anropa Microsoft Graph API.

Program måste representeras av ett appobjekt i Microsoft Entra-ID så att Microsofts identitetsplattform kan tillhandahålla token till ditt program.

Förutsättningar

Registrera programmet

Följ dessa steg för att registrera ditt program och lägga till appens registreringsinformation i din lösning manuellt:

  1. Logga in på Microsoft Entra-administrationscentret åtminstone som en Programutvecklare.

  2. Om du har åtkomst till flera klienter använder du ikonen Inställningar på den översta menyn för att växla till klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.

  3. Navigera till Identity>Applications>App registrations.

  4. Välj Ny registrering.

  5. Ange ett Namn för din applikation. Användare av din app kan se det här namnet och du kan ändra det senare.

  6. För kontotyper som stödsväljer du Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Multitenant) och personliga Microsoft-konton (t.ex. Skype, Xbox). Om du vill ha information om olika kontotyper väljer du alternativet Hjälp mig att välja.

  7. Välj Registrera.

  8. Under Hanteraväljer du Authentication>Lägg till en plattform>Android.

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

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

  11. Ange hashen Signature som genererats av KeyTool.

  12. Välj Konfigurera och spara MSAL-konfiguration som visas i fönstret Android-konfiguration så att du kan ange den när du konfigurerar appen senare.

  13. Välj Klar.

Hämta exempelappen

Konfigurera exempelprogrammet

  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>rawgår du till JSON-filen med namnet auth_config_single_account.json och klistrar in MSAL-konfigurationen som du sparade tidigare.

    Under omdirigerings-URI:n, klistra in:

      "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": false,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    
  4. Öppna filen /app/src/main/AndroidManifest.xml.

  5. Hitta platshållaren:

    • enter_the_signature_hash och ersätt den med den signatur-hash- som du genererade tidigare när du lade till omdirigerings-URL:en för plattformen.

    Eftersom den här självstudien bara visar hur man konfigurerar en app i läget för enskilt konto, se enkelt kontra flera kontolägen och hur du konfigurerar din app för mer information

Kör exempelappen

Välj din emulator eller fysiska enhet från Android Studio:s tillgängliga enheter listrutan och kör appen.

Exempelappen startar på skärmen läge för enskilt konto. Ett standardomfång, user.read, tillhandahålls som standard, som används när du läser dina egna profildata under Microsoft Graph API-anropet. URL:en för Microsoft Graph API-anropet tillhandahålls som standard. Du kan ändra båda om du vill.

Skärmbild av MSAL-exempelappen som visar enkel och flera kontoanvändning.

Använd appmenyn för att ändra mellan enstaka och flera kontolägen.

Logga in med ett arbets- eller hemkonto i läget för ett enskilt konto:

  1. Välj Hämta grafdata interaktivt för att fråga användaren om deras autentiseringsuppgifter. Du ser utdata från anropet till Microsoft Graph API längst ned på skärmen.
  2. När du har loggat in väljer du Hämta grafdata tyst för att göra ett anrop till Microsoft Graph API utan att fråga användaren om autentiseringsuppgifter igen. Du ser utdata från anropet till Microsoft Graph API längst ned på skärmen.

I flera kontolägen kan du upprepa samma steg. Dessutom kan du ta bort det inloggade kontot, vilket även tar bort cachelagrade token för det kontot.

Så här fungerar exemplet

diagram som visar hur exempelappen som genereras av den här snabbstarten fungerar.

Koden är uppdelad i fragment som visar hur du skriver en enskild och flera konton MSAL-app. Kodfilerna ordnas på följande sätt:

Fil Demonstrerar
MainActivity Hanterar användargränssnittet
MSGraphRequestWrapper Anropar Microsoft Graph API med hjälp av den token som tillhandahålls av MSAL
FleraKontolägeFragment Initierar ett program med flera konton, läser in ett användarkonto och hämtar en token för att anropa Microsoft Graph API
SingleAccountModeFragment Initierar ett program med ett enda konto, läser in ett användarkonto och hämtar en token för att anropa Microsoft Graph API
res/auth_config_multiple_account.json Konfigurationsfilen för flera konton
res/auth_config_single_account.json Konfigurationsfilen för ett konto
Gradle Scripts/build.gradle (Modul:app) MSAL-biblioteksberoenden läggs till här

Nu ska vi titta närmare på de här filerna och framhäva den MSAL-specifika koden i var och en.

Nästa steg

Gå vidare till Android-självstudien där du skapar en Android-app som hämtar en åtkomsttoken från Microsofts identitetsplattform och använder den för att anropa Microsoft Graph API.

Snabbstarten hjälper dig att konfigurera Android-, .NET MAUI Android- och iOS/macOS-appar för att logga in användare genom att registrera program, konfigurera omdirigerings-URL:er, uppdatera konfigurationer och testa appen.

Förutsättningar

Registrera programmet

För att din applikation ska kunna logga in användare med Microsoft Entra måste Microsoft Entras externa ID få information om den applikation du skapar. Appregistreringen upprättar en förtroenderelation mellan appen och Microsoft Entra. När du registrerar ett program genererar externt ID en unik identifierare som kallas ett program-ID (klient)-ID, ett värde som används för att identifiera din app när du skapar autentiseringsbegäranden.

Följande steg visar hur du registrerar din app i administrationscentret för Microsoft Entra:

  1. Logga in på Microsoft Entra-administrationscentret åtminstone som en Programutvecklare.

  2. Om du har åtkomst till flera klientorganisationer använder du ikonen Inställningar i den övre menyn för att växla till den externa klientorganisationen från menyn Kataloger och prenumerationer.

  3. Navigera till Identity>Applications>App registrations.

  4. Välj + Ny registrering.

  5. På sidan Registrera en ansökan som visas.

    1. Ange ett meningsfullt program Namn som visas för appens användare, till exempel ciam-client-app.
    2. Under Kontotyper som stödsväljer du endast Konton i den här organisationskatalogen.
  6. Välj Registrera.

  7. Programmets översiktsfönster visas vid lyckad registrering. Registrera program-ID (klient)-ID:t som ska användas i programmets källkod.

Lägga till en url för plattformsomdirigering

Följ dessa steg om du vill ange din apptyp för din appregistrering:

  1. Under Hanteraväljer du autentisering.
  2. På sidan Platform-konfigurationer väljer du Lägg till en plattformoch väljer sedan alternativet Android.
  3. Ange projektets paketnamn. Om du laddade ned exempelkodär det här värdet com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. I avsnittet Signature hash i fönstret Konfigurera din Android-app väljer du Generera en utvecklingssignaturhash. Detta ändras för varje utvecklingsmiljö. Kopiera och kör KeyTool-kommandot för operativsystemet i terminalen.
  5. Ange hashen Signature som genererats av KeyTool.
  6. Välj Konfigurera.
  7. Kopiera MSAL-konfigurationen från Android-konfigurationsfönstret och spara den för senare appkonfiguration.
  8. Välj Klar.

Aktivera offentligt klientflöde

Följ dessa steg för att identifiera din app som en offentlig klient:

  1. Under Hanteraväljer du autentisering.

  2. Under Avancerade inställningarför Tillåt offentliga klientflödenväljer du Ja.

  3. Välj Spara för att spara ändringarna.

När du har registrerat ditt program tilldelas det behörigheten User.Read. Men eftersom hyresgästen är en extern tenant kan kundanvändarna själva inte samtycka till den här behörigheten. Du som klientadministratör måste godkänna den här behörigheten för alla användare i klientorganisationen:

  1. På sidan Appregistreringar väljer du det program som du skapade (till exempel ciam-client-app) för att öppna sidan Översikt.

  2. Under Hanteraväljer du API-behörigheter.

    1. Välj Bevilja administratörsmedgivande för <ditt klientnamn>och välj sedan Ja.
    2. Välj Uppdatera, och kontrollera sedan att Beviljad för <ditt klientnamn> visas under Status för behörigheten.

Klona exempelprogram

Om du vill hämta exempelprogrammet kan du antingen klona det från GitHub eller ladda ned det som en .zip fil.

  • Om du vill klona exemplet öppnar du en kommandotolk och navigerar till den platsen där du vill skapa projektet och anger följande kommando:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
    

Konfigurera exempelprogrammet

Om du vill aktivera autentisering och åtkomst till Microsoft Graph-resurser konfigurerar du exemplet genom att följa dessa steg:

  1. Öppna det projekt som du klonade i Android Studio.

  2. Öppna /app/src/main/res/raw/auth_config_ciam.json fil.

  3. Hitta platshållaren:

    • Enter_the_Application_Id_Here och ersätt det med program-ID (klient)-ID:t för appen som du registrerade tidigare.
    • Enter_the_Redirect_Uri_Here och ersätt det med värdet för redirect_uri i konfigurationsfilen för Microsoft Authentication Library (MSAL) som du laddade ned tidigare när du lade till url:en för omdirigering av plattformen.
    • Enter_the_Tenant_Subdomain_Here och ersätt det med katalogens (hyresgästens) underdomän. Om din primära klientdomän till exempel är contoso.onmicrosoft.comanvänder du contoso. Om du inte känner till klientunderdomänen kan du lära dig hur du läsa klientinformationen.
  4. Öppna filen /app/src/main/AndroidManifest.xml.

  5. Hitta platshållaren:

    • ENTER_YOUR_SIGNATURE_HASH_HERE och ersätt den med den signatur-hash- som du genererade tidigare när du lade till omdirigerings-URL:en för plattformen.
  6. Öppna /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt filen.

  7. Hitta egenskapen med namnet scopes och ange de omfång som registrerats i Bevilja administratörsmedgivande. Om du inte har registrerat några omfång kan du lämna den här omfångslistan tom.

    private const val scopes = "" // Developers should set the respective scopes of their Microsoft Graph resources here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

Du har konfigurerat appen och den är redo att köras.

Kör och testa exempelappen

Följ dessa steg för att skapa och köra din app:

  1. I verktygsfältet väljer du din app på menyn Kör konfigurationer.

  2. I målenhetsmenyn väljer du den enhet som du vill köra appen på.

    Om du inte har konfigurerat några enheter måste du antingen skapa en virtuell Android-enhet för att använda Android-emulatorn eller ansluta en fysisk Android-enhet.

  3. Välj knappen Kör.

  4. Välj Hämta token interaktivt för att begära en åtkomsttoken.

  5. Om du väljer API – Utför GET- för att anropa ett skyddat ASP.NET Core-webb-API får du ett fel.

Mer information om hur du anropar ett skyddat webb-API finns i vår nästa steg

Nästa steg