Megosztás a következőn keresztül:


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

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 asztali Windows Presentation Foundation -mintaalkalmazást (WPF) használ az Azure Active Directory B2C (Azure AD B2C) hitelesítés asztali alkalmazásokhoz való hozzáadásához.

Áttekintés

Az OpenID Connect (OIDC) egy OAuth 2.0-n alapuló hitelesítési protokoll. Az OIDC használatával biztonságosan bejelentkezhet a felhasználók egy alkalmazásba. Ez az asztali alkalmazásminta a Microsoft Authentication Libraryt (MSAL) használja OIDC hitelesítési kódkóddal a Kódcsere (PKCE) folyamatához. 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 az asztali alkalmazá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 az asztali eszkö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 ID token követeléseket.
    3. A tokeneket egy memóriabeli gyorsítótárban tárolja későbbi felhasználásra.

Az alkalmazás regisztrációjának áttekintése

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

  • Az asztali alkalmazásregisztrá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élazonosítót, amely egyedileg azonosítja az asztali alkalmazá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 az asztali alkalmazásnak (alkalmazásazonosító: 1) a webes API-hatóköröknek (alkalmazásazonosító: 2).

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

Az asztali alkalmazás diagramja webes API-val, regisztrációkkal és jogkivonatokkal.

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.

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 saját munkamenet-objektumait, és a hitelesítési könyvtár 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

A Visual Studio 2019-et futtató számítógép .NET asztali fejlesztéssel.

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_susilesz.

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

Hozza létre az asztali alkalmazást és a webes API-alkalmazás regisztrációjá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 a 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 Alkalmazásregisztrációklehetőséget, majd válassza Új regisztrációslehető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álás 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 a webalkalmazás konfigurálásakor későbbi használatra.

    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ésalatt válassza a API közzétételelehetőséget.

  3. 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.

  4. Az API-által definiálthatókörök alatt kattintson a Hatókör hozzáadásagombra.

  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 értéket.
    2. A „Rendszergazdai hozzájárulás megjelenítendő neve” mezőbe írja be a „Feladatok API olvasási hozzáférés” kifejezést.
    3. A rendszergazdai hozzájárulás leírásához írja be, hogy Engedélyezi a feladatok API olvasási hozzáférést.
  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: tasks.write.
    2. Az „Adminisztrátori hozzájárulás megjelenítendő neve” mezőbe írja be, hogy „Feladatok API-hoz írási hozzáférés”.
    3. 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.
  8. Válassza a Hatókör hozzáadása lehetőséget.

2.3. lépés: Az asztali alkalmazás regisztrálása

Az asztali alkalmazásregisztráció létrehozásához tegye a következőket:

  1. Jelentkezzen be a Azure portalra.
  2. Válassza Alkalmazásregisztrációklehetőséget, majd válassza Új regisztrációslehetőséget.
  3. A Név területen adja meg az alkalmazás nevét (például asztali alkalmazás1).
  4. 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).
  5. Az Átirányítási URI területen válassza a Nyilvános ügyfél/natív (asztali & asztali) lehetőséget, majd az URL-mezőbe írja be a következőt https://your-tenant-name.b2clogin.com/oauth2/nativeclient: Cserélje le your-tenant-name a bérlő nevét. További beállítások: Átirányítási URI konfigurálása.
  6. Válassza a Regisztrálás lehetőséget.
  7. Az alkalmazásregisztráció befejezése után válassza az Áttekintés lehetőséget.
  8. Az asztali alkalmazás konfigurálásakor jegyezze fel az alkalmazás (ügyfél) azonosítóját későbbi használatra. Képernyőkép az asztali alkalmazásazonosítóról.

2.4. lépés: Az asztali alkalmazás engedélyeinek 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. Például írja be, hogy my-api1.

  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. Válassza a(z) Engedélyek hozzáadásalehetőséget.

  8. Válassza a <bérlője nevének> rendszergazdai hozzájárulás 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 Megadva ...-nak megjelenik-e Állapot alatt mindkét hatókör esetén.

  11. 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.

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

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

Ez a minta egy hozzáférési jogkivonatot szerez be az asztali alkalmazá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. 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.

Jótanács

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 tudja meghívni a webes API-t.

4. lépés: A WPF asztali alkalmazásminta lekéré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-dotnet-desktop.git
    
  2. Nyissa meg az active-directory-b2c-wpf megoldást (a active-directory-b2c-wpf.sln fájlt) a Visual Studióban.

5. lépés: Az asztali mintaalkalmazás konfigurálása

Az active-directory-b2c-wpf projektben nyissa meg a App.xaml.cs fájlt. Az App.xaml.cs osztálytagok információkat tartalmaznak az Azure AD B2C-identitásszolgáltatóról. Az asztali alkalmazás ezen információk alapján megbízhatósági kapcsolatot létesít az Azure AD B2C-vel, be- és kijelentkezteti a felhasználókat, jogkivonatokat szerez be és érvényesít.

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

Kulcs Érték
TenantName Azure AD B2C bérlőnevének első része (például, ).
ClientId Az asztali alkalmazás azonosítója a 2.3. lépésből.
PolicySignUpSignIn Az 1. lépésben létrehozott regisztrációs vagy bejelentkezési felhasználói folyamat vagy egyéni szabályzat.
PolicyEditProfile Az 1. lépésben létrehozott szerkesztési profil felhasználói folyamata vagy egyéni szabályzata.
ApiEndpoint (Nem kötelező) A 3. lépésben létrehozott webes API-végpont (például https://contoso.azurewebsites.net/hello).
ApiScopes A 2.4. lépésben létrehozott webes API-hatókörök.

Az utolsó App.xaml.cs fájlnak a következő C#-kódhoz hasonlóan kell kinéznie:

public partial class App : Application
{

private static readonly string TenantName = "contoso";
private static readonly string Tenant = $"{TenantName}.onmicrosoft.com";
private static readonly string AzureAdB2CHostname = $"{TenantName}.b2clogin.com";
private static readonly string ClientId = "<web-api-app-application-id>";
private static readonly string RedirectUri = $"https://{TenantName}.b2clogin.com/oauth2/nativeclient";

public static string PolicySignUpSignIn = "b2c_1_susi";
public static string PolicyEditProfile = "b2c_1_edit_profile";
public static string PolicyResetPassword = "b2c_1_reset";

public static string[] ApiScopes = { $"https://{Tenant}//api/tasks.read" };
public static string ApiEndpoint = "https://contoso.azurewebsites.net/hello";

6. lépés: Az asztali alkalmazás futtatása és tesztelése

  1. Állítsa vissza a NuGet-csomagokat.

  2. Válassza az F5 lehetőséget a minta létrehozásához és futtatásához.

  3. Válassza a Bejelentkezés lehetőséget, majd regisztráljon vagy jelentkezzen be az 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.

  4. Sikeres regisztráció vagy bejelentkezés után a jogkivonat részletei megjelennek a WPF-alkalmazás alsó ablaktábláján.

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

  5. Válassza a Hívás API lehetőséget a webes API meghívásához.

Következő lépések

Megtudhatja, hogyan konfigurálhat hitelesítési beállításokat asztali WPF-alkalmazásokban az Azure AD B2C használatával.