Hitelesítés konfigurálása androidos mintaalkalmazásban az Azure AD B2C használatával

Ez a cikk egy Android-mintaalkalmazást (Kotlin és Java) használ az Azure Active Directory B2C (Azure AD B2C) hitelesítés mobilalkalmazásaihoz való hozzáadásának szemléltetésére.

Áttekintés

Az OpenID Csatlakozás (OIDC) egy olyan hitelesítési protokoll, amely az OAuth 2.0-ra épül. Az OIDC használatával biztonságosan bejelentkezhet a felhasználók egy alkalmazásba. Ez a mobilalkalmazás-minta a Microsoft Authentication Libraryt (MSAL) használja OIDC engedélyezési kóddal PKCE-folyamattal. Az MSAL egy Microsoft által biztosított kódtár, amely leegyszerűsíti a hitelesítés és az engedélyezés támogatását a mobilalkalmazásokhoz.

A bejelentkezési folyamat a következő lépéseket foglalja magában:

  1. A felhasználók megnyitják az alkalmazást, és kiválasztják a bejelentkezést.
  2. Az alkalmazás megnyitja a mobileszköz rendszerböngészőjét, és elindít egy hitelesítési kérést az Azure AD B2C-hez.
  3. A felhasználók regisztrálnak vagy bejelentkeznek, visszaállítják a jelszót, vagy egy közösségi fiókkal jelentkeznek be.
  4. Miután a felhasználók sikeresen bejelentkeznek, az Azure AD B2C egy engedélyezési kódot ad vissza az alkalmazásnak.
  5. Az alkalmazás a következő műveleteket hajtja végre:
    1. Az engedélyezési kódot azonosító jogkivonatra, hozzáférési jogkivonatra és frissítési jogkivonatra cseréli.
    2. Beolvassa az azonosító jogkivonat jogcímeit.
    3. A jogkivonatokat egy memóriabeli gyorsítótárban tárolja későbbi használatra.

Alkalmazásregisztráció áttekintése

Ha engedélyezni szeretné, hogy az alkalmazás bejelentkezhessen az Azure AD B2C-vel, és meghívjon egy webes API-t, regisztráljon két alkalmazást az Azure AD B2C címtárban.

  • A mobilalkalmazás-regisztrációval az alkalmazás bejelentkezhet az Azure AD B2C-vel. Az alkalmazásregisztráció során adja meg az átirányítási URI-t. Az átirányítási URI az a végpont, amelyre az Azure AD B2C átirányítja a felhasználókat az Azure AD B2C-vel való hitelesítés után. Az alkalmazásregisztrációs folyamat létrehoz egy alkalmazásazonosítót, más néven ügyfél-azonosítót, amely egyedileg azonosítja a mobilalkalmazást (például: 1. alkalmazásazonosító).

  • A webes API-regisztrációval az alkalmazás meghívhat egy védett webes API-t. A regisztráció elérhetővé teszi a webes API-engedélyeket (hatóköröket). Az alkalmazásregisztrációs folyamat létrehoz egy alkalmazásazonosítót, amely egyedileg azonosítja a webes API-t (például alkalmazásazonosító: 2). Adjon engedélyt mobilalkalmazásának (alkalmazásazonosító: 1) a webes API-hatóköröknek (alkalmazásazonosító: 2).

Az alkalmazásregisztrációt és az alkalmazásarchitektúrát az alábbi diagramok szemléltetik:

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

Webes API meghívása

A hitelesítés befejezése után a felhasználók kapcsolatba lépnek az alkalmazással, amely egy védett webes API-t hív meg. A webes API tulajdonosi jogkivonat-hitelesítést használ. A tulajdonosi jogkivonat az az alkalmazás által az Azure AD B2C-ből beszerzett hozzáférési jogkivonat. Az alkalmazás átadja a jogkivonatot a HTTPS-kérés engedélyezési fejlécében.

Authorization: Bearer <access token>

Ha a hozzáférési jogkivonat hatóköre nem egyezik a webes API hatóköreivel, a hitelesítési kódtár egy új hozzáférési jogkivonatot szerez be a megfelelő hatókörökkel.

A kijelentkezés folyamata

A kijelentkezés folyamata a következő lépésekből áll:

  1. Az alkalmazásból a felhasználók kijelentkeznek.
  2. Az alkalmazás törli a munkamenet-objektumokat, a hitelesítési tár pedig törli a jogkivonat-gyorsítótárát.
  3. Az alkalmazás az Azure AD B2C bejelentkezési végpontra viszi a felhasználókat az Azure AD B2C-munkamenet leállításához.
  4. A rendszer visszairányítja a felhasználókat az alkalmazásba.

Előfeltételek

Futó számítógép:

1. lépés: A felhasználói folyamat konfigurálása

Amikor a felhasználók megpróbálnak bejelentkezni az alkalmazásba, az alkalmazás elindít egy hitelesítési kérést az engedélyezési végponthoz egy felhasználói folyamaton keresztül. A felhasználói folyamat határozza meg és szabályozza a felhasználói élményt. Miután a felhasználók befejezték a felhasználói folyamatot, az Azure AD B2C létrehoz egy jogkivonatot, majd visszairányítja a felhasználókat az alkalmazásba.

Ha még nem tette meg, hozzon létre egy felhasználói folyamatot vagy egy egyéni szabályzatot. Ismételje meg a lépéseket három különálló felhasználói folyamat létrehozásához az alábbiak szerint:

  • Kombinált bejelentkezés és felhasználói folyamat regisztrálása , például susi. Ez a felhasználói folyamat az Elfelejtett jelszó funkciót is támogatja.
  • Profilszerkesztési felhasználói folyamat, például edit_profile.
  • Új jelszó kérése felhasználói folyamat, például reset_password.

Az Azure AD B2C előre fel van függve B2C_1_ a felhasználói folyamat nevére. Például a susi következő lesz B2C_1_susi: .

2. lépés: Mobilalkalmazások regisztrálása

Hozza létre a mobilalkalmazást és a webes API-alkalmazásregisztrációt, és adja meg a webes API hatóköreit.

2.1. lépés: A web API-alkalmazás regisztrálása

A webes API-alkalmazásregisztráció létrehozásához (alkalmazásazonosító: 2) kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.

  2. Győződjön meg arról, hogy az Azure AD B2C-bérlőt tartalmazó könyvtárat használja. Válassza a Címtárak + előfizetések ikont a portál eszköztárán.

  3. A Portál beállításai | Címtárak + előfizetések lap, keresse meg az Azure AD B2C-címtárat a címtárnévlistában, majd válassza a Váltás lehetőséget.

  4. Az Azure Portalon keresse meg és válassza ki az Azure AD B2C-t.

  5. Válassza a Alkalmazásregisztrációk, majd az Új regisztráció lehetőséget.

  6. A Név mezőbe írja be az alkalmazás nevét (például my-api1). Hagyja meg az átirányítási URI és a támogatott fióktípusok alapértelmezett értékeit.

  7. Válassza ki a pénztárgépet.

  8. Az alkalmazásregisztráció befejezése után válassza az Áttekintés lehetőséget.

  9. Jegyezze fel az alkalmazás (ügyfél) azonosítóját a webalkalmazás konfigurálásakor későbbi használatra.

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

2.2. lépés: Web API-alkalmazások hatóköreinek konfigurálása

  1. Válassza ki a létrehozott my-api1 alkalmazást (alkalmazásazonosító: 2) az Áttekintés lap megnyitásához.

  2. A Kezelés területen válassza az API-k felfedése lehetőséget.

  3. Az alkalmazásazonosító URI-ja mellett válassza a Hivatkozás beállítása lehetőséget. Cserélje le az alapértelmezett értéket (GUID) egy egyedi névre (például tasks-api), majd válassza a Mentés lehetőséget.

    Amikor a webalkalmazás hozzáférési jogkivonatot kér a webes API-hoz, ezt az URI-t kell hozzáadnia az API-hoz definiált hatókörök előtagjaként.

  4. Az API által definiált hatókörök alatt válassza a Hatókör hozzáadása lehetőséget.

  5. Az API olvasási hozzáférését meghatározó hatókör létrehozása:

    1. A hatókör neveként adja meg a tasks.read nevet.
    2. Ha Rendszergazda hozzájárulás megjelenítendő nevét, írja be a Feladatok API olvasási hozzáférését.
    3. A Rendszergazda hozzájárulás leírásához írja be A feladatok API olvasási hozzáférésének engedélyezése című cikket.
  6. Válassza a Hatókör hozzáadása lehetőséget.

  7. Válassza a Hatókör hozzáadása lehetőséget, majd adjon hozzá egy, az API írási hozzáférését meghatározó hatókört:

    1. A Hatókör neve mezőbe írja be a tasks.write nevet.
    2. Ha Rendszergazda hozzájárulás megjelenítendő nevét szeretné megadni, írja be a Feladatok API írási hozzáférését.
    3. A Rendszergazda hozzájárulás leírásához írja be a Tevékenység API írási hozzáférését.
  8. Válassza a Hatókör hozzáadása lehetőséget.

2.3. lépés: A mobilalkalmazás regisztrálása

A mobilalkalmazás-regisztráció létrehozásához tegye a következőket:

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza a Alkalmazásregisztrációk, majd az Új regisztráció lehetőséget.

  3. A Név területen adja meg az alkalmazás nevét (például android-app1).

  4. A Támogatott fióktípusok területen válassza a Fiókok lehetőséget bármely identitásszolgáltatóban vagy szervezeti címtárban (a felhasználók felhasználói folyamatokkal való hitelesítéséhez).

  5. Az Átirányítási URI területen válassza a Nyilvános ügyfél/natív (mobil & asztali) lehetőséget, majd az URL-mezőbe írja be az alábbi URI-k egyikét:

    • A Kotlin-minta esetében: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • A Java-minta esetében: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Válassza ki a pénztárgépet.

  7. Az alkalmazásregisztráció befejezése után válassza az Áttekintés lehetőséget.

  8. A mobilalkalmazás konfigurálásakor jegyezze fel az alkalmazás (ügyfél) azonosítóját későbbi használatra.

    Screenshot highlighting the Android application ID

2.4. lépés: Mobilalkalmazás-engedélyek megadása a webes API-hoz

Az alkalmazás (alkalmazásazonosító: 1) engedélyének megadásához kövesse az alábbi lépéseket:

  1. Válassza Alkalmazásregisztrációk, majd válassza ki a létrehozott alkalmazást (alkalmazásazonosító: 1).

  2. A Kezelés területen válassza ki az API-engedélyeket.

  3. A Konfigurált engedélyek csoportban válassza az Engedély hozzáadása lehetőséget.

  4. Válassza a Saját API-k lapot.

  5. Válassza ki azt az API-t (alkalmazásazonosító: 2), amelyhez a webalkalmazásnak hozzáférést kell biztosítani. Írja be például a my-api1 nevet.

  6. Az Engedély területen bontsa ki a tevékenységeket, majd válassza ki a korábban definiált hatóköröket (például tasks.read és tasks.write).

  7. Jelölje be az Engedélyek hozzáadása lehetőséget.

  8. Válassza a bérlő nevének> rendszergazdai <hozzájárulásának megadása lehetőséget.

  9. Válassza az Igen lehetőséget.

  10. Válassza a Frissítés lehetőséget, majd ellenőrizze, hogy a megadott for ... jelenik-e meg mindkét hatókör állapotában .

  11. A Konfigurált engedélyek listájában válassza ki a hatókört, majd másolja a teljes nevet a hatókörbe.

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

3. lépés: Az Android-mobilalkalmazás-minta lekérése

A következő lehetőségek közül választhat:

  • Töltse le az alábbi minták valamelyikét:

    Bontsa ki a minta .zip fájlt a munkamappába.

  • Klónozza a minta Android-mobilalkalmazást a GitHubról.

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

4. lépés: A minta webes API konfigurálása

Ez a minta egy hozzáférési jogkivonatot szerez be a mobilalkalmazás által a webes API-hoz használható hatókörökkel. Ha egy webes API-t kódból szeretne meghívni, tegye a következőket:

  1. Használjon meglévő webes API-t, vagy hozzon létre egy újat. További információ: Hitelesítés engedélyezése saját webes API-ban az Azure AD B2C használatával.
  2. Módosítsa a mintakódot egy webes API meghívásához.

5. lépés: A minta mobilalkalmazás konfigurálása

Nyissa meg a mintaprojektet az Android Studióval vagy egy másik kódszerkesztővel, majd nyissa meg az /app/src/main/res/raw/auth_config_b2c.json fájlt.

A auth_config_b2c.json konfigurációs fájl információkat tartalmaz az Azure AD B2C identitásszolgáltatójáról. A mobilalkalmazás ezeket az információkat felhasználva megbízhatósági kapcsolatot létesít az Azure AD B2C-vel, bejelentkezteti a felhasználókat, ki- és bejelentkezik, jogkivonatokat szerez be és érvényesít.

Frissítse az alábbi alkalmazásbeállítások tulajdonságait:

Kulcs Érték
client_id A mobilalkalmazás azonosítója a 2.3. lépésből.
redirect_uri A mobilalkalmazás átirányítja az URI-t a 2.3. lépésből.
Hatóságok A szolgáltató egy URL-cím, amely azt a könyvtárat jelzi, amelytől az MSAL jogkivonatokat kérhet. Használja a következő formátumot: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. Cserélje le <your-tenant-name> az Azure AD B2C-bérlő nevét. Ezután cserélje le <your-sign-in-sign-up-policy> az 1. lépésben létrehozott felhasználói folyamatokat vagy egyéni szabályzatokat.

Nyissa meg az osztályt B2CConfiguration , és frissítse a következő osztálytagokat:

Kulcs Érték
Policies Az 1. lépésben létrehozott felhasználói folyamatok vagy egyéni szabályzatok listája.
azureAdB2CHostName Az Azure AD B2C-bérlő nevének első része (például https://contoso.b2clogin.com).
tenantName Az Azure AD B2C-bérlő teljes bérlőneve (például contoso.onmicrosoft.com).
hatókörök A 2.4. lépésben létrehozott webes API-hatókörök.

6. lépés: A mobilalkalmazás futtatása és tesztelése

  1. Hozza létre és futtassa a projektet.

  2. A bal felső sarokban válassza a hamburger ikont (más néven összecsukott menüikont), ahogy az itt látható:

    Screenshot highlighting the hamburger, or collapsed menu, icon.

  3. A bal oldali panelen válassza a B2C mód lehetőséget.

    Screenshot highlighting the

  4. Válassza a Felhasználói folyamat futtatása lehetőséget.

    Screenshot highlighting the

  5. Regisztráljon vagy jelentkezzen be az Azure AD B2C helyi vagy közösségi fiókjával.

  6. A sikeres hitelesítés után megjelenik a megjelenítendő név a B2C mód panelen.

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

További lépések

Learn how to: