Konfigurera autentisering i en Android-exempelapp med hjälp av Azure AD B2C

Den här artikeln använder ett Android-exempelprogram (Kotlin och Java) för att illustrera hur du lägger till Azure Active Directory B2C-autentisering (Azure AD B2C) i dina mobilappar.

Översikt

OpenID Anslut (OIDC) är ett autentiseringsprotokoll som bygger på OAuth 2.0. Du kan använda OIDC för att logga in användare på ett säkert sätt i ett program. Det här mobilappexemplet använder Microsoft Authentication Library (MSAL) med OIDC-auktoriseringskoden PKCE-flöde. MSAL är ett bibliotek från Microsoft som förenklar tillägg av stöd för autentisering och auktorisering i mobilappar.

Inloggningsflödet omfattar följande steg:

  1. Användarna öppnar appen och väljer logga in.
  2. Appen öppnar den mobila enhetens systemwebbläsare och startar en autentiseringsbegäran till Azure AD B2C.
  3. Användare registrerar sig eller loggar in, återställer lösenordet eller loggar in med ett socialt konto.
  4. När användarna har loggat in returnerar Azure AD B2C en auktoriseringskod till appen.
  5. Appen vidtar följande åtgärder:
    1. Den utbyter auktoriseringskoden till en ID-token, åtkomsttoken och uppdateringstoken.
    2. Den läser ID-tokenanspråken.
    3. Den lagrar token i en minnesintern cache för senare användning.

Översikt över appregistrering

Om du vill att din app ska kunna logga in med Azure AD B2C och anropa ett webb-API registrerar du två program i Azure AD B2C-katalogen.

  • Registreringen av mobilprogram gör att din app kan logga in med Azure AD B2C. Under appregistreringen anger du omdirigerings-URI:n. Omdirigerings-URI:n är den slutpunkt som användarna omdirigeras till av Azure AD B2C när de har autentiserats med Azure AD B2C. Appregistreringsprocessen genererar ett program-ID, även kallat klient-ID, som unikt identifierar din mobilapp (till exempel app-ID: 1).

  • Med registreringen av webb-API :et kan din app anropa ett skyddat webb-API. Registreringen exponerar webb-API-behörigheterna (omfång). Appregistreringsprocessen genererar ett program-ID som unikt identifierar ditt webb-API (till exempel app-ID: 2). Ge din mobilapp (App-ID: 1) behörigheter till webb-API-omfången (App-ID: 2).

Appregistreringen och programarkitekturen illustreras i följande diagram:

Diagram of the mobile app with web API call registrations and tokens.

Anropa ett webb-API

När autentiseringen är klar interagerar användarna med appen, som anropar ett skyddat webb-API. Webb-API:et använder autentisering med ägartoken . Ägartoken är den åtkomsttoken som appen hämtade från Azure AD B2C. Appen skickar token i auktoriseringshuvudet för HTTPS-begäran.

Authorization: Bearer <token>

Om åtkomsttokens omfång inte matchar webb-API:ets omfång hämtar autentiseringsbiblioteket en ny åtkomsttoken med rätt omfång.

Utloggningsflödet

Utloggningsflödet omfattar följande steg:

  1. Från appen loggar användarna ut.
  2. Appen rensar sina sessionsobjekt och autentiseringsbiblioteket rensar sin tokencache.
  3. Appen tar användarna till azure AD B2C-utloggningsslutpunkten för att avsluta Azure AD B2C-sessionen.
  4. Användarna omdirigeras tillbaka till appen.

Förutsättningar

En dator som kör:

Steg 1: Konfigurera användarflödet

När användare försöker logga in på din app startar appen en autentiseringsbegäran till auktoriseringsslutpunkten via ett användarflöde. Användarflödet definierar och styr användarupplevelsen. När användarna har slutfört användarflödet genererar Azure AD B2C en token och omdirigerar sedan användarna tillbaka till ditt program.

Om du inte redan har gjort det skapar du ett användarflöde eller en anpassad princip.

Steg 2: Registrera mobilprogram

Skapa mobilappen och webb-API-programregistreringen och ange omfången för ditt webb-API.

Steg 2.1: Registrera webb-API-appen

Så här skapar du appregistreringen för webb-API:et (App-ID: 2):

  1. Logga in på Azure-portalen.

  2. Kontrollera att du använder katalogen som innehåller din Azure AD B2C-klientorganisation. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.

  3. I portalinställningarna | Sidan Kataloger + prenumerationer , leta upp din Azure AD B2C-katalog i listan Katalognamn och välj sedan Växla.

  4. I Azure Portal söker du efter och väljer Azure AD B2C.

  5. Välj Appregistreringar och välj sedan Ny registrering.

  6. För Namn anger du ett namn för programmet (till exempel my-api1). Lämna standardvärdena för omdirigerings-URI och kontotyper som stöds.

  7. Välj Register (Registrera).

  8. När appregistreringen är klar väljer du Översikt.

  9. Registrera program-ID-värdet (klient) för senare användning när du konfigurerar webbprogrammet.

    Screenshot that demonstrates how to get a web A P I application I D.

Steg 2.2: Konfigurera webb-API-appomfång

  1. Välj det my-api1-program som du skapade (App-ID: 2) för att öppna dess översiktssida .

  2. Under Hantera väljer du Exponera ett API.

  3. Bredvid Program-ID-URI väljer du länken Ange . Ersätt standardvärdet (GUID) med ett unikt namn (till exempel tasks-api) och välj sedan Spara.

    När ditt webbprogram begär en åtkomsttoken för webb-API:et bör den lägga till denna URI som prefix för varje omfång som du definierar för API:et.

  4. Under Omfång som definieras av det här API:et väljer du Lägg till ett omfång.

  5. Så här skapar du ett omfång som definierar läsåtkomst till API:et:

    1. Som Omfångsnamn anger du tasks.read.
    2. För Visningsnamn för administratörsmedgivande anger du LÄS-åtkomst till uppgifters API.
    3. I Beskrivning av administratörsmedgivande anger du Tillåt läsåtkomst till aktivitets-API:et.
  6. Välj Lägg till omfång.

  7. Välj Lägg till ett omfång och lägg sedan till ett omfång som definierar skrivåtkomst till API:et:

    1. Som Omfångsnamn anger du tasks.write.
    2. För Visningsnamn för administratörsmedgivande anger du Skrivåtkomst till uppgifters API.
    3. För Beskrivning av administratörsmedgivande anger du Tillåter skrivåtkomst till aktivitets-API:et.
  8. Välj Lägg till omfång.

Steg 2.3: Registrera mobilappen

Så här skapar du registreringen av mobilappen:

  1. Logga in på Azure-portalen.

  2. Välj Appregistreringar och välj sedan Ny registrering.

  3. Under Namn anger du ett namn för programmet (till exempel android-app1).

  4. Under Kontotyper som stöds väljer du Konton i valfri identitetsprovider eller organisationskatalog (för att autentisera användare med användarflöden).

  5. Under Omdirigerings-URI väljer du Offentlig klient/intern (mobilt & skrivbord) och i rutan URL anger du sedan någon av följande URI:er:

    • För Kotlin-exemplet: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • För Java-exemplet: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Välj Register (Registrera).

  7. När appregistreringen är klar väljer du Översikt.

  8. Registrera program-ID :t (klient) för senare användning när du konfigurerar mobilprogrammet.

    Screenshot highlighting the Android application ID

Steg 2.4: Bevilja mobilappsbehörigheter för webb-API:et

Följ dessa steg om du vill ge din app (app-ID: 1) behörigheter:

  1. Välj Appregistreringar och välj sedan den app som du skapade (App-ID: 1).

  2. Under Hantera väljer du API-behörigheter.

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

  4. Välj fliken Mina API:er .

  5. Välj det API (app-ID: 2) som webbprogrammet ska beviljas åtkomst till. Ange till exempel my-api1.

  6. Under Behörighet expanderar du aktiviteter och väljer sedan de omfång som du definierade tidigare (till exempel tasks.read och tasks.write).

  7. Välj Lägg till behörigheter.

  8. Välj Bevilja administratörsmedgivande för <ditt klientnamn>.

  9. Välj Ja.

  10. Välj Uppdatera och kontrollera sedan att Beviljad för ... visas under Status för båda omfången.

  11. I listan Konfigurerade behörigheter väljer du omfånget och kopierar sedan det fullständiga omfångsnamnet.

    Screenshot of the configured permissions pane, showing that read access permissions are granted.

Steg 3: Hämta Android-mobilappexemplet

Gör något av följande:

  • Ladda ned något av följande exempel:

    Extrahera exempelfilen .zip till arbetsmappen.

  • Klona Android-exempelmobilprogrammet från GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Steg 4: Konfigurera exempelwebb-API:et

Det här exemplet hämtar en åtkomsttoken med relevanta omfång som mobilappen kan använda för ett webb-API. Om du vill anropa ett webb-API från kod gör du följande:

  1. Använd ett befintligt webb-API eller skapa ett nytt. Mer information finns i Aktivera autentisering i ditt eget webb-API med hjälp av Azure AD B2C.
  2. Ändra exempelkoden för att anropa ett webb-API.

Steg 5: Konfigurera exempelmobilappen

Öppna exempelprojektet med Android Studio eller en annan kodredigerare och öppna sedan filen /app/src/main/res/raw/auth_config_b2c.json .

Konfigurationsfilen auth_config_b2c.json innehåller information om din Azure AD B2C-identitetsprovider. Mobilappen använder den här informationen för att upprätta en förtroenderelation med Azure AD B2C, logga in och ut användare, hämta token och verifiera dem.

Uppdatera följande egenskaper för appinställningar:

Tangent Värde
client_id ID för mobilprogram från steg 2.3.
redirect_uri Omdirigerings-URI för mobilprogram från steg 2.3.
Myndigheterna Utfärdaren är en URL som anger en katalog som MSAL kan begära token från. Använd följande format: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. Ersätt <your-tenant-name> med ditt Azure AD B2C-klientnamn. <your-sign-in-sign-up-policy> Ersätt sedan med användarflöden eller anpassade principer som du skapade i steg 1.

B2CConfiguration Öppna klassen och uppdatera följande klassmedlemmar:

Tangent Värde
Principer Listan över användarflöden eller anpassade principer som du skapade i steg 1.
azureAdB2CHostName Den första delen av ditt Azure AD B2C-klientnamn (till exempel https://contoso.b2clogin.com).
tenantName Ditt fullständiga klientnamn för Din Azure AD B2C-klientorganisation (till exempel contoso.onmicrosoft.com).
scopes Webb-API:ets omfång som du skapade i steg 2.4.

Steg 6: Kör och testa mobilappen

  1. Skapa och kör projektet.

  2. Längst upp till vänster väljer du hamburgarikonen (kallas även för den komprimerade menyikonen), som du ser här:

    Screenshot highlighting the hamburger, or collapsed menu, icon.

  3. Välj B2C-läge i den vänstra rutan.

    Screenshot highlighting the

  4. Välj Kör Flow.

    Screenshot highlighting the

  5. Registrera dig eller logga in med ditt lokala eller sociala Azure AD B2C-konto.

  6. Efter en lyckad autentisering visas visningsnamnet i fönstret B2C-läge .

    Screenshot showing a successful authentication, with signed-in user and policy displayed.

Nästa steg

Lär dig att: