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


Hitelesítési beállítások engedélyezése asztali WPF-alkalmazásokban 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 ismerteti, hogyan szabhatja testre és fejlesztheti az Azure Active Directory B2C (Azure AD B2C) hitelesítési élményt a Windows Presentation Foundation (WPF) asztali alkalmazáshoz.

Mielőtt hozzákezd, ismerkedjen meg a hitelesítés konfigurálása egy asztali WPF-mintaalkalmazásban az Azure AD B2C-cikk használatával .

A bejelentkezési név előzetes feltöltése

A bejelentkezési felhasználói folyamat során előfordulhat, hogy az alkalmazás egy adott felhasználót céloz meg. Amikor egy alkalmazás egy felhasználót céloz meg, az engedélyezési kérelemben megadhatja a login_hint lekérdezési paramétert a felhasználó bejelentkezési nevével. Az Azure AD B2C automatikusan kitölti a bejelentkezési nevet, és a felhasználónak csak a jelszót kell megadnia.

A bejelentkezési név előzetes feltöltéséhez tegye a következőket:

  1. Ha egyéni szabályzatot használ, adja hozzá a szükséges bemeneti jogcímet a közvetlen bejelentkezés beállítása című cikkben leírtak szerint.
  2. Keresse meg a Microsoft Authentication Library (MSAL) konfigurációs objektumát, majd adja hozzá a withLoginHint() metódust a bejelentkezési tippdel.
authResult = await app.AcquireTokenInteractive(App.ApiScopes)
    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
    .WithLoginHint("bob@contoso.com")
    .ExecuteAsync();

Identitásszolgáltató előzetes kijelölése

Ha úgy konfigurálta az alkalmazás bejelentkezési útját, hogy közösségi fiókokat , például Facebookot, LinkedIn-t vagy Google-t is tartalmazzon, megadhatja a paramétert domain_hint . Ez a lekérdezési paraméter az Azure AD B2C-nek a bejelentkezéshez használandó közösségi identitásszolgáltatóra vonatkozó tippet nyújt. Ha például az alkalmazás megadja domain_hint=facebook.com, a bejelentkezési folyamat közvetlenül a Facebook bejelentkezési oldalára kerül.

A felhasználók külső identitásszolgáltatóhoz való átirányításához tegye a következőket:

  1. Ellenőrizze a külső identitásszolgáltató tartománynevét. További információ: Bejelentkezés átirányítása közösségi szolgáltatóhoz.
  2. Hozzon létre vagy használjon egy meglévő Dictionary objektumot további lekérdezési paraméterek tárolására.
  3. Adja hozzá a domain_hint paramétert a megfelelő tartománynévvel a szótárhoz (például facebook.com).
  4. Adja át a további lekérdezési paraméterek objektumát az MSAL konfigurációs objektum metódusába WithExtraQueryParameters .
Dictionary<string, string> extraQueryParameters = new Dictionary<string, string>();
extraQueryParameters.Add("domain_hint", "facebook.com");

authResult = await app.AcquireTokenInteractive(App.ApiScopes)
    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
    .WithExtraQueryParameters(extraQueryParameters)
    .ExecuteAsync();

A felhasználói felület nyelvének megadása

Az Azure AD B2C nyelvi testreszabása lehetővé teszi a felhasználói folyamat számára, hogy az ügyfelek igényeinek megfelelően különféle nyelveket fogadjon el. További információ: Nyelvi testreszabás.

Az előnyben részesített nyelv beállításához tegye a következőket:

  1. Nyelvi testreszabás konfigurálása.
  2. Hozzon létre vagy használjon egy meglévő Dictionary objektumot további lekérdezési paraméterek tárolására.
  3. Adja hozzá a ui_locales paramétert a megfelelő nyelvi kóddal a szótárhoz (például en-us).
  4. Adja át a további lekérdezési paraméterek objektumát az MSAL konfigurációs objektum metódusába WithExtraQueryParameters .
Dictionary<string, string> extraQueryParameters = new Dictionary<string, string>();
extraQueryParameters.Add("ui_locales", "en-us");

authResult = await app.AcquireTokenInteractive(App.ApiScopes)
    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
    .WithExtraQueryParameters(extraQueryParameters)
    .ExecuteAsync();

Egyéni lekérdezési sztringparaméter átadása

Egyéni szabályzatokkal egyéni lekérdezési sztringparamétert adhat át. Jó példa erre, ha dinamikusan szeretné módosítani a lap tartalmát.

Egyéni lekérdezési sztringparaméter átadásához tegye a következőket:

  1. Konfigurálja a ContentDefinitionParameters elemet.
  2. Hozzon létre vagy használjon egy meglévő Dictionary objektumot további lekérdezési paraméterek tárolására.
  3. Adja hozzá az egyéni lekérdezési sztring paramétert, például campaignId. Adja meg a paraméter értékét (például germany-promotion).
  4. Adja át a további lekérdezési paraméterek objektumát az MSAL konfigurációs objektum metódusába WithExtraQueryParameters .
Dictionary<string, string> extraQueryParameters = new Dictionary<string, string>();
extraQueryParameters.Add("campaignId", "germany-promotion");

authResult = await app.AcquireTokenInteractive(App.ApiScopes)
    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
    .WithExtraQueryParameters(extraQueryParameters)
    .ExecuteAsync();

Azonosító token javaslat átadása

A függő entitásalkalmazások az OAuth2 engedélyezési kérelem részeként küldhetnek bejövő JSON-webjogkivonatot (JWT). A bejövő jogkivonat egy jelzés a felhasználóra vagy az engedélyezési kérelemre vonatkozóan. Az Azure AD B2C ellenőrzi a jogkivonatot, majd kinyeri a jogcímet.

Azonosító token javaslat hozzáadásához a hitelesítési kéréshez, tegye a következőket:

  1. Az egyéni szabályzatban definiáljon egy ID token hint technikai profil definíciót.
  2. A kódban hozzon létre vagy szerezzen be egy azonosító jogkivonatot, majd állítsa be a jogkivonatot egy változóra (például idToken).
  3. Hozzon létre vagy használjon egy meglévő Dictionary objektumot további lekérdezési paraméterek tárolására.
  4. Az id_token_hint paramétert adja hozzá az azonosító jogkivonatot tároló megfelelő változóhoz.
  5. Adja át a további lekérdezési paraméterek objektumát az MSAL konfigurációs objektum attribútumába extraQueryParameters .
Dictionary<string, string> extraQueryParameters = new Dictionary<string, string>();
extraQueryParameters.Add("id_token_hint", idToken);

authResult = await app.AcquireTokenInteractive(App.ApiScopes)
    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
    .WithExtraQueryParameters(extraQueryParameters)
    .ExecuteAsync();

Naplózás konfigurálása

Az MSAL-kódtár naplóüzeneteket hoz létre, amelyek segíthetnek a problémák diagnosztizálásában. Az alkalmazás konfigurálhatja a naplózást. Az alkalmazás egyéni vezérlést is biztosít a részletesség és a személyes és szervezeti adatok naplózása felett.

Javasoljuk, hogy hozzon létre egy MSAL-naplózási visszahívást, és biztosítson módot a felhasználók számára, hogy hitelesítési problémák esetén küldjenek naplókat. Az MSAL az alábbi naplózási szinteket biztosítja:

  • Hiba: Valami rosszul sikerült, és hiba keletkezett. Ez a szint a problémák hibakeresésére és azonosítására szolgál.
  • Figyelmeztetés: Nem feltétlenül történt hiba vagy meghibásodás, de az információk a diagnosztika és problémák pontos azonosítására szolgálnak.
  • Információ: Az MSAL naplózza azokat az eseményeket, amelyek információs célokat szolgálnak, és nem feltétlenül hibakeresésre szolgálnak.
  • Részletes: Ez az alapértelmezett szint. Az MSAL naplózza a kódtár viselkedésének teljes részleteit.

Alapértelmezés szerint az MSAL-naplózó nem rögzít személyes vagy szervezeti adatokat. A kódtár lehetővé teszi a személyes és szervezeti adatok naplózását, ha úgy dönt, hogy ezt teszi.

Az alábbi kódrészlet bemutatja, hogyan konfigurálható az MSAL-naplózás:

PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
    .WithB2CAuthority(AuthoritySignUpSignIn)
    .WithRedirectUri(RedirectUri)
    .WithLogging(Log, LogLevel.Info, false) // don't log P(ersonally) I(dentifiable) I(nformation) details on a regular basis
    .Build();

Az átirányítási URI konfigurálása

Az asztali alkalmazásregisztrációs folyamat során, amikor átirányítási URI-t választ, tartsa szem előtt az alábbi fontos szempontokat:

  • Fejlesztés: Asztali alkalmazásokban való fejlesztéshez beállíthatja az átirányítási URI-t http://localhost, és az Azure AD B2C tiszteletben tartja a kérésben szereplő portokat. Ha a regisztrált URI tartalmaz portot, az Azure AD B2C csak ezt a portot fogja használni. Ha például a regisztrált átirányítási URI az http://localhost, akkor a kérelem átirányítási URI-ja lehet http://localhost:<randomport>. Ha a regisztrált átirányítási URI az http://localhost:8080, akkor a kérelem átirányítási URI-jának kell lennie http://localhost:8080.
  • Egyedi: Az átirányítási URI sémájának minden alkalmazáshoz egyedinek kell lennie. A példában com.onmicrosoft.contosob2c.exampleapp://oauth/redirectcom.onmicrosoft.contosob2c.exampleapp a séma látható. Ezt a mintát kell követni. Ha két alkalmazás ugyanazt a sémát használja, a felhasználók különböző alkalmazásokat választhatnak. Ha a felhasználók helytelenül választanak, a bejelentkezés sikertelen lesz.
  • Kész: Az átirányítási URI-nak sémával és elérési útokkal is rendelkeznie kell. Az elérési útnak legalább egy perjel karaktert kell tartalmaznia a tartomány után. Például //oauth/ működik és //oauth meghiúsul. Ne tartalmazzon speciális karaktereket az URI-ban. Az aláhúzásjel (_) például nem engedélyezett.

Következő lépések