Hitelesítés konfigurálása iOS Swift-mintaalkalmazásban Azure AD B2C használatával

Ez a cikk egy iOS Swift-mintaalkalmazást használ, amely bemutatja, hogyan adhat hozzá Azure Active Directory B2C -hitelesítést (Azure AD B2C-hitelesítést a mobilalkalmazásaihoz.

Áttekintés

Az OpenID Connect (OIDC) az OAuth 2.0-ra épülő hitelesítési protokoll. Az OIDC használatával biztonságosan bejelentkeztethet felhasználókat egy alkalmazásba. Ez a mobilalkalmazás-minta a Microsoft Authentication Library (MSAL) és az OIDC hitelesítési kód proof key for Code Exchange (PKCE) folyamatát használja. 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ésekből áll:

  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 a B2C Azure AD.
  3. A felhasználók regisztrálnak vagy bejelentkeznek, új jelszót kérnek, vagy közösségi fiókkal jelentkeznek be.
  4. Miután a felhasználók sikeresen bejelentkeznek, 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 tokeneket 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 Azure AD B2C-vel, és meghívhasson egy webes API-t, regisztráljon két alkalmazást a Azure AD B2C könyvtárban:

  • A mobilalkalmazás-regisztrációval az alkalmazás bejelentkezhet 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 Azure AD B2C átirányítja a felhasználókat, miután hitelesítést végzett Azure AD B2C-vel. 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 alkalmazásazonosító: 1).

  • A webes API-regisztráció lehetővé teszi, hogy az alkalmazás védett webes API-t hívjon meg. 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élyeket a mobilalkalmazásnak (alkalmazásazonosító: 1) a webes API-hatókörökhöz (alkalmazásazonosító: 2).

Az alkalmazásregisztrációt és az architektúrát az alábbi ábrák szemléltetik:

A mobilalkalmazás ábrája webes API-hívásregisztrációkkal és -jogkivonatokkal.

Webes API meghívása

A hitelesítés befejezése után a felhasználók egy védett webes API-t meghívó alkalmazást használnak. A webes API tulajdonosi jogkivonat-hitelesítést használ. A tulajdonosi jogkivonat az a hozzáférési jogkivonat, amelyet az alkalmazás Azure AD B2C-ből szerzett be. Az alkalmazás átadja a jogkivonatot a HTTPS-kérelem engedélyezési fejlécében.

Authorization: Bearer <access token>

Ha a hozzáférési jogkivonat hatóköre nem egyezik meg 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 kódtár pedig törli a jogkivonat gyorsítótárát.
  3. Az alkalmazás a B2C-Azure AD bejelentkezési végpontjára irányítja a felhasználókat a Azure AD B2C-munkamenet megszakításához.
  4. A rendszer visszairányítja a felhasználókat az alkalmazásba.

Előfeltételek

Egy számítógépet, amely a következőt futtatja:

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 hitelesítési kérést indít az engedélyezési végpontra 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, Azure AD A 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:

  • Egy kombinált bejelentkezési és regisztrációs felhasználói folyamat, például susi: . Ez a felhasználói folyamat az Elfelejtette a jelszót felületet 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: .

Azure AD A B2C előtagja B2C_1_ a felhasználói folyamat neve. Például a következő leszB2C_1_susi: 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 webes API-alkalmazás regisztrálása

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

  1. Jelentkezzen be az Azure Portal.

  2. Győződjön meg arról, hogy a 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 | A Címtárak és előfizetések lapon keresse meg a Azure AD B2C-címtárat a Címtárnév listában, majd válassza a Váltás lehetőséget.

  4. A Azure Portal keresse meg és válassza Azure AD B2C elemet.

  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 a Regisztráció lehetőséget.

  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 későbbi használatra a webalkalmazás konfigurálásakor.

    Képernyőkép, amely bemutatja, hogyan szerezhet be webes A P I-alkalmazás I D-t.

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özzététele lehetőséget.

  3. Az Alkalmazásazonosító URI mellett válassza a Beállítás hivatkozást. 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 területen 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 neve mezőbe írja be a tasks.read nevet.
    2. Rendszergazda hozzájárulás megjelenítendő neveként adja meg az Olvasási hozzáférés a feladatokhoz API-t.
    3. A hozzájárulás leírásának Rendszergazda: Olvasási hozzáférés engedélyezése a tasks API-hoz.
  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. Rendszergazda hozzájárulás megjelenítendő neveként adja meg az Írási hozzáférés a feladatokhoz API-t.
    3. A hozzájárulás leírásának Rendszergazda: Írási hozzáférés engedélyezése a tasks API-hoz.
  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 Portal.
  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 iOs-app1).
  4. A Támogatott fióktípusok területen válassza a Fiókok lehetőséget bármely identitásszolgáltatónál vagy szervezeti címtárban (felhasználói folyamatokkal rendelkező felhasználók 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-cím mezőbe írja be a következőt msauth.com.microsoft.identitysample.MSALiOS://auth: .
  6. Válassza a Regisztráció lehetőséget.
  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. Képernyőkép a mobilalkalmazás-azonosítóról.

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 az API-engedélyek elemet.

  3. A Konfigurált engedélyek területen 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 kifejezést.

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

  7. Válassza az Engedélyek hozzáadása lehetőséget.

  8. Válassza a Rendszergazdai hozzájárulás megadása a bérlő nevéhez>< 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 ... mindkét hatókör állapota alatt megjelenik-e.

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

    Képernyőkép a konfigurált engedélyek panelről, amelyen látható, hogy az olvasási hozzáférési engedélyek meg vannak adva.

3. 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ó megfelelő hatókörökkel. Ha egy webes API-t kódból szeretne meghívni, tegye a következőket:

  1. Használjon egy meglévő webes API-t, vagy hozzon létre egy újat. További információ: Hitelesítés engedélyezése a saját webes API-ban Azure AD B2C használatával.
  2. Módosítsa a mintakódot egy webes API meghívásához.
  3. A webes API konfigurálása után másolja ki a webes API-végpont URI-ját. A következő lépésekben a webes API-végpontot fogja használni.

Tipp

Ha nem rendelkezik webes API-val, továbbra is futtathatja ezt a mintát. Ebben az esetben az alkalmazás visszaadja a hozzáférési jogkivonatot, de nem fogja tudni meghívni a webes API-t.

4. lépés: Az iOS mobilalkalmazás-minta beszerzése

  1. Töltse le a .zip fájlt, vagy klónozza a minta webalkalmazást a GitHub-adattárból.

    git clone https://github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msal
    
  2. Az MSAL-kódtár telepítéséhez használja a CocoaPodsot . Egy terminálablakban lépjen a projekt gyökérmappájára. Ez a mappa tartalmazza a podfájlt . Futtassa az alábbi parancsot:

    pod install
    
  3. Nyissa meg a munkaterületet MSALiOS.xcworkspace Xcode-tal.

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

Nyissa meg a ViewController.swift fájlt. Az ViewController osztálytagok információkat tartalmaznak a Azure AD B2C-identitásszolgáltatóról. A mobilalkalmazás ezeket az adatokat arra használja, hogy megbízhatósági kapcsolatot létesítsen Azure AD B2C-vel, be- és kijelentkezteti a felhasználókat, jogkivonatokat szerezzen be, és érvényesítse őket.

Frissítse a következő osztálytagokat:

Kulcs Érték
kTenantName A Azure AD B2C-bérlő teljes bérlőneve (például contoso.onmicrosoft.com).
kAuthorityHostName A Azure AD B2C-bérlő nevének első része (például contoso.b2clogin.com).
kClientID A mobilalkalmazás azonosítója a 2.3. lépésben.
kRedirectUri A mobilalkalmazás átirányítja az URI-t a 2.3. lépésből. msauth.com.microsoft.identitysample.MSALiOS://auth
kSignupOrSigninPolicy Az 1. lépésben létrehozott regisztrációs vagy bejelentkezési felhasználói folyamat vagy egyéni szabályzat.
kEditProfilePolicy Az 1. lépésben létrehozott profil felhasználói folyamatának vagy egyéni szabályzatának szerkesztése.
kGraphURI (Nem kötelező) A 3. lépésben létrehozott webes API-végpont (például https://contoso.azurewebsites.net/hello).
kScopes 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. A projektet egy csatlakoztatott iOS-eszköz szimulátorával hozhatja létre és futtathatja.

  2. Válassza a Bejelentkezés lehetőséget, majd regisztráljon vagy jelentkezzen be a Azure AD B2C helyi vagy közösségi fiókjával.

    Képernyőkép a bejelentkezési folyamat elindításáról.

  3. A sikeres hitelesítés után megjelenik a megjelenítendő név a navigációs sávon.

    Képernyőkép a Azure AD B2C hozzáférési jogkivonatról és a felhasználói azonosítóról.

Következő lépések

Az alábbiak végrehajtásának módját ismerheti meg: