Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
2025. május 1-jére az Azure AD B2C már nem lesz elérhető az új ügyfelek számára. További információ a GYIK-ben.
Ez a cikk egy egyoldalas Angular-mintaalkalmazást (SPA) használ az Azure Active Directory B2C (Azure AD B2C) hitelesítés hozzáadásához az Angular-alkalmazásokhoz.
Áttekintés
Az OpenID Connect (OIDC) az OAuth 2.0-ra épülő hitelesítési protokoll, amellyel egy felhasználó biztonságosan bejelentkezhet egy alkalmazásba. Ez az Angular-minta az MSAL Angulart és az MSAL Böngészőt használja. Az MSAL egy Microsoft által biztosított kódtár, amely leegyszerűsíti a hitelesítési és engedélyezési támogatás hozzáadását az Angular SPA-khoz.
Bejelentkezési folyamat
A bejelentkezési folyamat a következő lépéseket foglalja magában:
- A felhasználó megnyitja az alkalmazást, és kiválasztja a Bejelentkezés lehetőséget.
- Az alkalmazás elindít egy hitelesítési kérelmet, és átirányítja a felhasználót az Azure AD B2C-be.
- A felhasználó regisztrál vagy bejelentkezik , és alaphelyzetbe állítja a jelszót, vagy bejelentkezik egy közösségi fiókkal.
- Sikeres bejelentkezés esetén az Azure AD B2C egy engedélyezési kódot ad vissza az alkalmazásnak. Az alkalmazás a következő műveleteket hajtja végre:
- Kicseréli az azonosító jogkivonat engedélyezési kódját, a hozzáférési jogkivonatot és a frissítési jogkivonatot.
- Beolvassa az azonosító jogkivonat jogcímeit.
- A hozzáférési jogkivonatot és a frissítési jogkivonatot egy memóriabeli gyorsítótárban tárolja későbbi használatra. A hozzáférési jogkivonat lehetővé teszi, hogy a felhasználó védett erőforrásokat, például webes API-t hívjon meg. A frissítési jogkivonat egy új hozzáférési jogkivonat beszerzésére szolgál.
Alkalmazásregisztráció
Ahhoz, hogy az alkalmazás bejelentkezhessen az Azure AD B2C-vel, és meghívjon egy webes API-t, két alkalmazást kell regisztrálnia az Azure AD B2C-bérlőben:
Az egyoldalas alkalmazás (Angular) regisztrációjával az alkalmazás bejelentkezhet az Azure AD B2C-vel. Az alkalmazásregisztráció során meg kell adnia az átirányítási URI-t. Az átirányítási URI az a végpont, amelyre a rendszer átirányítja a felhasználót 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 az alkalmazást. Ez a cikk az 1. példaalkalmazás-azonosítót használja.
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. Ez a cikk a 2. példaalkalmazás-azonosítót használja. Adjon engedélyt az alkalmazásnak (alkalmazásazonosító: 1) a webes API-hatókörökhöz (alkalmazásazonosító: 2).
Az alábbi ábra az alkalmazásregisztrációkat és az alkalmazásarchitektúrát ismerteti.
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 hozzáférési token hitelesítést használ. A bearer token az az alkalmazás által az Azure AD B2C-ből beszerzett hozzáférési token. Az alkalmazás átadja a tokent a HTTPS-kérés hitelesíté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.
Kijelentkezés folyamata
A kijelentkezés folyamata a következő lépésekből áll:
- Az alkalmazásból a felhasználók kijelentkeznek.
- Az alkalmazás törli saját munkamenet-objektumait, és a hitelesítési könyvtár törli a jogkivonat-gyorsítótárát.
- 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.
- A rendszer visszairányítja a felhasználókat az alkalmazásba.
Előfeltételek
A cikkben ismertetett eljárások követése előtt győződjön meg arról, hogy a számítógép fut:
- Visual Studio Code vagy bármely más kódszerkesztő.
- Node.js futtatókörnyezetet és az npm-et.
- Szögletes CLI.
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ési és regisztrációs felhasználói folyamat, például
susi
. Ez a felhasználói folyamat az Elfelejtett jelszó funkciót is támogatja. - Egy profilszerkesztési felhasználói folyamat, mint például .
- Egy jelszó visszaállítása felhasználói folyamat, például
reset_password
.
Az Azure AD B2C előfűzi a B2C_1_
a felhasználói folyamat neve elé.
susi
például B2C_1_susi
lesz.
2. lépés: Az Angular SPA és API regisztrálása
Ebben a lépésben létrehozza az Angular SPA és a webes API-alkalmazás regisztrációit. Megadhatja a webes API hatóköreit is.
2.1 A webes 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:
Jelentkezzen be a Azure portalra.
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.
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.
Az Azure Portalon keresse meg és válassza ki az Azure AD B2C-t.
Válassza Alkalmazásregisztrációklehetőséget, majd válassza Új regisztrációslehetőséget.
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.
Válassza a Regisztrálás lehetőséget.
Az alkalmazásregisztráció befejezése után válassza az Áttekintés lehetőséget.
Jegyezze fel az alkalmazás (ügyfél) azonosítóját a webalkalmazás konfigurálásakor későbbi használatra.
2.2 Hatókörök konfigurálása
Válassza ki a létrehozott my-api1 alkalmazást (alkalmazásazonosító: 2) az Áttekintés lap megnyitásához.
A Kezelésalatt válassza a API közzétételelehetőséget.
Az alkalmazásazonosító URI-ja 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.
Az API-által definiálthatókörök alatt kattintson a Hatókör hozzáadásagombra.
Az API olvasási hozzáférését meghatározó hatókör létrehozása:
- A hatókör neveként adja meg a tasks.read értéket.
- A „Rendszergazdai hozzájárulás megjelenítendő neve” mezőbe írja be a „Feladatok API olvasási hozzáférés” kifejezést.
- A rendszergazdai hozzájárulás leírásához írja be, hogy Engedélyezi a feladatok API olvasási hozzáférést.
Válassza a Hatókör hozzáadása lehetőséget.
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:
- A Hatókör neve mezőbe írja be: tasks.write.
- Az „Adminisztrátori hozzájárulás megjelenítendő neve” mezőbe írja be, hogy „Feladatok API-hoz írási hozzáférés”.
- A rendszergazdai hozzájárulás leírásához írja be, hogy Lehetővé teszi az írási hozzáférést a feladatkezelő API-hoz.
Válassza a Hatókör hozzáadása lehetőséget.
2.3 Az Angular-alkalmazás regisztrálása
Kövesse az alábbi lépéseket az Angular-alkalmazásregisztráció létrehozásához:
- Jelentkezzen be a Azure portalra.
- Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre a Címtárak + előfizetések menüből.
- Az Azure Portalon keresse meg és válassza ki az Azure AD B2C-t.
- Válassza Alkalmazásregisztrációklehetőséget, majd válassza Új regisztrációslehetőséget.
- A Név mezőbe írja be az alkalmazás nevét. Például írja be a MyAppot.
- A Támogatott fióktípusokterületen válassza a -fiókokat bármely identitásszolgáltatóban vagy szervezeti könyvtárban (felhasználói folyamatokkal rendelkező felhasználók hitelesítéséhez).
- Az Átirányítási URI területen válassza az Egyoldalas alkalmazás (SPA) lehetőséget, majd írja be
http://localhost:4200
az URL-címet. - Az Engedélyek csoportban jelölje be a Rendszergazdai hozzájárulás megadása az openid és offline hozzáférési engedélyekhez jelölőnégyzetet.
- Válassza a Regisztrálás lehetőséget.
- Jegyezze fel az alkalmazás (ügyfél) azonosítójának értékét a webalkalmazás konfigurálásakor egy későbbi lépésben.
2.5 Engedélyek megadása
Az alkalmazás (alkalmazásazonosító: 1) engedélyének megadásához kövesse az alábbi lépéseket:
Válassza Alkalmazásregisztrációk, majd válassza ki a létrehozott alkalmazást (alkalmazásazonosító: 1).
A Kezelés területen válassza ki az API-engedélyeket.
A Konfigurált engedélyek csoportban válassza az Engedély hozzáadása lehetőséget.
Válassza a Saját API-k lapot.
Válassza ki azt az API-t (alkalmazásazonosító: 2), amelyhez a webalkalmazásnak hozzáférést kell biztosítani. Például írja be, hogy my-api1.
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).
Válassza a(z) Engedélyek hozzáadásalehetőséget.
Válassza a <bérlője nevének> rendszergazdai hozzájárulás megadása lehetőséget.
Válassza Igenlehetőséget.
Válassza a Frissítés lehetőséget, majd ellenőrizze, hogy a Megadva ...-nak megjelenik-e Állapot alatt mindkét hatókör esetén.
A Konfigurált engedélyek listájában válassza ki a hatókört, majd másolja a hatókör teljes nevét.
3. lépés: Az Angular-mintakód lekérése
Ez a minta bemutatja, hogy egy Angular egyoldalas alkalmazás hogyan használhatja az Azure AD B2C-t a felhasználói regisztrációhoz és a bejelentkezéshez. Ezután az alkalmazás beszerez egy hozzáférési jogkivonatot, és meghív egy védett webes API-t.
Töltse le a minta .zip fájlját , vagy klónozza a mintát a GitHub-adattárból az alábbi paranccsal:
git clone https://github.com/Azure-Samples/ms-identity-javascript-angular-tutorial.git
3.1 Az Angular-minta konfigurálása
Most, hogy beszerezte az SPA-mintát, frissítse a kódot az Azure AD B2C-vel és a webes API-értékekkel. A mintamappában, az src/app mappa alatt nyissa meg a auth-config.ts fájlt. Frissítse a kulcsokat a megfelelő értékekkel:
Szakasz | Kulcs | Érték |
---|---|---|
b2c szabályzatok | Nevek | Az 1. lépésben létrehozott felhasználói folyamat vagy egyéni szabályzat. |
b2c szabályzatok | Hatóságok | Cserélje le your-tenant-name az Azure AD B2C bérlő nevét. Használja például a contoso.onmicrosoft.com . Ezután cserélje le a szabályzat nevét az 1. lépésben létrehozott felhasználói folyamatra vagy egyéni szabályzatra. Például: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy> . |
b2c szabályzatok | hatósági tartomány | Az Azure AD B2C-bérlő neve. Például: contoso.onmicrosoft.com . |
Konfiguráció | clientId | Az Angular-alkalmazás azonosítója a 2.3. lépésből. |
védett erőforrások | végpont | A web API URL-je: http://localhost:5000/api/todolist . |
védett erőforrások | Hatáskörök | A 2.2. lépésben létrehozott webes API-hatókörök. Például: b2cScopes: ["https://<your-tenant-name>.onmicrosoft.com/tasks-api/tasks.read"] . |
Az eredményként kapott src/app/auth-config.ts kódnak az alábbi mintához hasonlóan kell kinéznie:
export const b2cPolicies = {
names: {
signUpSignIn: "b2c_1_susi_reset_v2",
editProfile: "b2c_1_edit_profile_v2"
},
authorities: {
signUpSignIn: {
authority: "https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/b2c_1_susi_reset_v2",
},
editProfile: {
authority: "https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/b2c_1_edit_profile_v2"
}
},
authorityDomain: "your-tenant-name.b2clogin.com"
};
export const msalConfig: Configuration = {
auth: {
clientId: '<your-MyApp-application-ID>',
authority: b2cPolicies.authorities.signUpSignIn.authority,
knownAuthorities: [b2cPolicies.authorityDomain],
redirectUri: '/',
},
// More configuration here
}
export const protectedResources = {
todoListApi: {
endpoint: "http://localhost:5000/api/todolist",
scopes: ["https://your-tenant-namee.onmicrosoft.com/api/tasks.read"],
},
}
4. lépés: A webes API mintakódjának lekérése
Most, hogy a webes API regisztrálva lett, és ön definiálta a hatóköreit, konfigurálja a webes API-kódot az Azure AD B2C-bérlővel való együttműködéshez.
Töltsön le egy *.zip archívumot, vagy klónozza a minta webes API-projektet a GitHubról. A GitHubon közvetlenül is tallózhat az Azure-Samples/active-directory-b2c-javascript-nodejs-webapi projekthez a következő paranccsal:
git clone https://github.com/Azure-Samples/active-directory-b2c-javascript-nodejs-webapi.git
4.1 A webes API konfigurálása
A mintamappában nyissa meg a config.json fájlt. Ez a fájl az Azure AD B2C identitásszolgáltatójáról tartalmaz információkat. A web API alkalmazás ezt az információt használja a webalkalmazás által átadott hozzáférési jogkivonat érvényességének ellenőrzésére, amelyet bearer tokenként továbbítanak. Frissítse az alkalmazásbeállítások alábbi tulajdonságait:
Szakasz | Kulcs | Érték |
---|---|---|
hitelesítő adatok | bérlőNeve | Az Azure AD B2C-bérlő nevének első része. Például: contoso . |
hitelesítő adatok | ügyfélazonosító | A 2.1 lépésben található web API alkalmazás azonosítója. A korábbi ábrán az alkalmazás a 2-es App ID-val. |
hitelesítő adatok | kibocsátó | (Nem kötelező) A jogkivonat-kiállító iss jogcímértéke. Az Azure AD B2C alapértelmezés szerint a következő formátumban adja vissza a tokent: https://<your-tenant-name>.b2clogin.com/<your-tenant-ID>/v2.0/ . Cserélje le <your-tenant-name> az Azure AD B2C-bérlő nevének első részére. Helyettesítse a <your-tenant-ID> az Azure AD B2C bérlőazonosítójával. |
irányelvek | szabályzat neve | Az 1. lépésben létrehozott felhasználói folyamat vagy egyéni szabályzat. Ha az alkalmazás több felhasználói folyamatot vagy egyéni szabályzatot használ, csak egyet adjon meg. Használja például a regisztrációs vagy bejelentkezési felhasználói folyamatot. |
erőforrás | kiterjedés | A web API-alkalmazásregisztráció hatókörei a 2.5. lépésből. |
A végső konfigurációs fájlnak a következő JSON-fájlhoz hasonlóan kell kinéznie:
{
"credentials": {
"tenantName": "<your-tenant-name>",
"clientID": "<your-webapi-application-ID>",
"issuer": "https://<your-tenant-name>.b2clogin.com/<your-tenant-ID>/v2.0/"
},
"policies": {
"policyName": "b2c_1_susi"
},
"resource": {
"scope": ["tasks.read"]
},
// More settings here
}
5. lépés: Az Angular SPA és a webes API futtatása
Most már tesztelheti az Angular hatókörű hozzáférését az API-hoz. Ebben a lépésben futtassa a webes API-t és a minta Angular-alkalmazást a helyi gépen. Ezután jelentkezzen be az Angular-alkalmazásba, és válassza a TodoList gombot a védett API-ra irányuló kérés indításához.
A webes API futtatása
Nyisson meg egy konzolablakot, és váltson a webes API-mintát tartalmazó könyvtárra. Például:
cd active-directory-b2c-javascript-nodejs-webapi
Futtassa az alábbi parancsot:
npm install && npm update node index.js
A konzolablakban megjelenik az alkalmazás helyének portszáma:
Listening on port 5000...
Az Angular-alkalmazás futtatása
Nyisson meg egy másik konzolablakot, és váltson az Angular-mintát tartalmazó könyvtárra. Például:
cd ms-identity-javascript-angular-tutorial-main/3-Authorization-II/2-call-api-b2c/SPA
Futtassa az alábbi parancsot:
npm install && npm update npm start
A konzolablak megjeleníti az alkalmazás helyének portszámát:
Listening on port 4200...
Nyissa meg a böngészőben a
http://localhost:4200
hivatkozást az alkalmazás megtekintéséhez.Válassza Bejelentkezésilehetőséget.
Fejezze be a regisztrációs vagy bejelentkezési folyamatot.
A sikeres bejelentkezés után meg kell jelennie a profiljának. A menüben válassza a TodoList lehetőséget.
A Hozzáadás gombra kattintva új elemeket vehet fel a listára, vagy az ikonok használatával törölheti vagy szerkesztheti az elemeket.
Az alkalmazás üzembe helyezése
Éles alkalmazásokban az alkalmazásregisztráció átirányítási URI-ja általában egy nyilvánosan elérhető végpont, ahol az alkalmazás fut, például https://contoso.com
.
A regisztrált alkalmazásokban bármikor hozzáadhat és módosíthat átirányítási URI-kat. Az átirányítási URI-kra a következő korlátozások vonatkoznak:
- A válasz URL-címnek a sémával
https
kell kezdődnie. - A válasz URL-címe megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat. Az esetnek meg kell egyeznie a futó alkalmazás URL-elérési útjának esetével.