Dela via


Snabbstart: Logga in användare och anropa ett webb-API i en exempelmobilapp

Gäller för: vit cirkel med en grå X-symbol. Workforce-hyresgäster grön cirkel med en vit bockmarkeringssymbol. externa hyresgäster (lära dig mer)

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 klienttyp. 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 hyresgäst är för dina kundinriktade appar.

Den här guiden visar hur du konfigurerar ett exempel på mobilprogram för att logga in användare och anropar ett ASP.NET Core-webb-API.

I den här artikeln utför du följande uppgifter:

  • Registrera ett program i administrationscentret för Microsoft Entra.
  • Lägg till en URL för plattformsomdirigering.
  • Aktivera offentliga klientflöden.
  • Uppdatera Exempelfilen för Android-konfigurationskoden för att använda ditt eget externa Microsoft Entra-ID för kundklientinformation.
  • Kör och testa android-exempelmobilprogrammet.
  • Anropa ett skyddat webb-API.

Förutsättningar

  • Android Studio.

  • En extern hyresgäst. Om du inte redan har en, registrera dig för en kostnadsfri provperiod.

  • En API-registrering som exponerar minst ett omfång (delegerade behörigheter) och en app-roll (programbehörighet), som ToDoList.Read. Om du inte redan har gjort det, följ anvisningarna för ring ett API i en Android-exempelmobilapp för att ha ett funktionellt skyddat ASP.NET Core-webb-API. Se till att du slutför följande steg:

    • Registrera ett webb-API-program
    • Konfigurera API-omfång
    • Konfigurera app-roller
    • Konfigurera valfria anspråk
    • Klona eller ladda ned exempelwebb-API
    • Konfigurera och köra exempelwebb-API

Registrera en applikation

För att ditt program ska kunna logga in användare med Microsoft Entra måste Microsoft Entra External ID informeras om det program som 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å administrationscentret för Microsoft Entra som minst 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 den externa klientorganisationen från menyn Kataloger + prenumerationer.

  3. Bläddra till Identity>Applications>App registrations.

  4. Välj + Ny registrering.

  5. På sidan Registrera ett program 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 applikations-ID (klient-ID) för användning i applikationens 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 klientorganisationen är en extern klientorganisation kan kundanvändarna inte själva 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 Uppdateraoch kontrollera sedan att Beviljas för <ditt klientnamn> visas under Status för behörigheten.

Bevilja webb-API-behörigheter till exempelappen

När du har registrerat både klientappen, webb-API:et och du har exponerat API:et genom att skapa omfång, kan du konfigurera klientens behörigheter till API:et genom att följa dessa steg:

  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.

  3. Under Konfigurerade behörigheterväljer du Lägg till en behörighet.

  4. Välj API:er som min organisation använder fliken.

  5. I listan över API:er väljer du API:et, till exempel ciam-ToDoList-api.

  6. Välj alternativet Delegerade behörigheter.

  7. I behörighetslistan väljer du ToDoList.Read, ToDoList.ReadWrite (använd sökrutan om det behövs).

  8. Välj knappen Lägg till behörigheter.

  9. Nu har du tilldelat behörigheterna korrekt. Men eftersom hyresgästen är en kunds hyresgäst kan konsumentanvändarna inte samtycka till dessa behörigheter. För att åtgärda detta måste du som administratör samtycka till dessa behörigheter för alla användare i klientorganisationen:

    1. Välj Bevilja administratörsmedgivande för <ditt klientnamn>och välj sedan Ja.

    2. Välj Uppdateraoch kontrollera sedan att Beviljas för <ditt klientnamn> visas under Status för båda behörigheterna.

  10. I listan Konfigurerade behörigheter väljer du behörigheterna ToDoList.Read och ToDoList.ReadWrite, en i taget, och kopierar sedan behörighetens fullständiga URI för senare användning. Den fullständiga behörighets-URI:n ser ut ungefär som api://{clientId}/{ToDoList.Read} eller api://{clientId}/{ToDoList.ReadWrite}.

Klona mobilprogramexempel

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 android-exempelprogrammet

Om du vill aktivera autentisering och åtkomst till webb-API-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 med underdomänen Katalog (tenant). 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 filen /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.

  7. Hitta egenskapen med namnet WEB_API_BASE_URL och ange URL:en till webb-API:et.

  8. Hitta egenskapen med namnet scopes och ange omfången som registrerats i Bevilja webb-API-behörigheter till Android-exempelappen.

    private const val scopes = "" // Developers should set the respective scopes of their web API 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öra exempelappen och anropa webb-API

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. Välj API – Utför GET för att anropa det tidigare konfigurerade webb-API:et för ASP.NET Core. Ett lyckat anrop till webb-API:et returnerar HTTP 200, medan HTTP 403 innebär obehörig åtkomst.