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
- Ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett Skapa ett konto kostnadsfritt.
- Det här Azure-kontot måste ha behörighet att hantera program. Någon av följande Microsoft Entra-roller innehåller de behörigheter som krävs:
- Appadministratör
- Programutvecklare
- Molnprogramadministratör
- En hyresgäst för arbetskraft. Du kan använda din standardkatalog eller konfigurera en ny klientorganisation.
- Registrera en ny app i administrationscentret för Microsoft Entra med följande konfiguration. Mer information finns i Registrera ett program.
- Namn: identity-client-web-app
- Kontotyper som stöds: Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Multitenant) och personliga Microsoft-konton (t.ex. Skype, Xbox)
- Android Studio
- Android 16+
Lägga till en omdirigerings-URI
Du måste lägga till en omdirigerings-URI i din appregistrering. Den här URI:n används för att omdirigera användare till appen när de har loggat in.
Under Hanteraväljer du Authentication>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 Signature hash i fönstret Konfigurera din Android-app väljer du Generera en utvecklingssignaturhash. och kopiera KeyTool-kommandot 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 hashen Signature som genererats av KeyTool.
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.
Välj Klar.
Ladda ned exempelappen
- Java: Ladda ned koden.
- Kotlin: Ladda ned koden.
Konfigurera exempelprogrammet
I Android Studio-projektfönstret navigerar du till app\src\main\res.
Högerklicka på res och välj New>Directory. Ange
raw
som nytt katalognamn och välj OK.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" } } ] }
Öppna filen /app/src/main/AndroidManifest.xml.
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.
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:
- 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.
- 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
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 |
---|---|
Huvudaktivitet | 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 |
EnkeltKontolägeFragment | 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
- Ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett Skapa ett konto kostnadsfritt.
- Det här Azure-kontot måste ha behörighet att hantera program. Någon av följande Microsoft Entra-roller innehåller de behörigheter som krävs:
- Appadministratör
- Programutvecklare
- Molnprogramadministratör
- En extern hyresgäst. Om du vill skapa en väljer du mellan följande metoder:
- Använd Microsoft Entra External ID-tillägget för att konfigurera en extern hyresgäst direkt i Visual Studio Code. (rekommenderas)
- Skapa en ny extern klient i Microsoft Entras admincenter.
- Registrera en ny app i administrationscentret för Microsoft Entra med följande konfiguration och registrera dess identifierare från sidan Översikt. Mer information finns i Registrera ett program.
- Namn: identity-client-mobile-app
- kontotyper som stöds: endast konton i den här organisationskatalogen (enskild klientorganisation)
Lägga till en url för plattformsomdirigering
Följ dessa steg om du vill ange din apptyp för din appregistrering:
- Under Hanteraväljer du autentisering.
- På sidan Platform-konfigurationer väljer du Lägg till en plattformoch väljer sedan alternativet Android.
- Ange projektets paketnamn. Om du laddade ned exempelkodär det här värdet
com.azuresamples.msaldelegatedandroidkotlinsampleapp
. - 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.
- Ange hashen Signature som genererats av KeyTool.
- Välj Konfigurera.
- Kopiera MSAL-konfigurationen från Android-konfigurationsfönstret och spara den för senare appkonfiguration.
- Välj Klar.
Aktivera offentligt klientflöde
Följ dessa steg för att identifiera din app som en offentlig klient:
Under Hanteraväljer du autentisering.
Under Avancerade inställningarför Tillåt offentliga klientflödenväljer du Ja.
Välj Spara för att spara ändringarna.
Bevilja administratörsmedgivande
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:
På sidan Appregistreringar väljer du det program som du skapade (till exempel ciam-client-app) för att öppna sidan Översikt.
Under Hanteraväljer du API-behörigheter.
- Välj Bevilja administratörsmedgivande för <ditt klientnamn>och välj sedan Ja.
- 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:
Öppna det projekt som du klonade i Android Studio.
Öppna /app/src/main/res/raw/auth_config_ciam.json fil.
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 ärcontoso.onmicrosoft.com
använder ducontoso
. Om du inte känner till klientunderdomänen kan du lära dig hur du läsa klientinformationen.
-
Öppna filen /app/src/main/AndroidManifest.xml.
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.
-
Öppna /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt filen.
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:
I verktygsfältet väljer du din app på menyn Kör konfigurationer.
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.
Välj knappen Kör.
Välj Hämta token interaktivt för att begära en åtkomsttoken.
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