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 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:
- 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.
- 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:
- 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.
- Hozzon létre vagy használjon egy meglévő
Dictionaryobjektumot további lekérdezési paraméterek tárolására. - Adja hozzá a
domain_hintparamétert a megfelelő tartománynévvel a szótárhoz (példáulfacebook.com). - 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:
- Nyelvi testreszabás konfigurálása.
- Hozzon létre vagy használjon egy meglévő
Dictionaryobjektumot további lekérdezési paraméterek tárolására. - Adja hozzá a
ui_localesparamétert a megfelelő nyelvi kóddal a szótárhoz (példáulen-us). - 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:
- Konfigurálja a ContentDefinitionParameters elemet.
- Hozzon létre vagy használjon egy meglévő
Dictionaryobjektumot további lekérdezési paraméterek tárolására. - 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áulgermany-promotion). - 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:
- Az egyéni szabályzatban definiáljon egy ID token hint technikai profil definíciót.
- 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). - Hozzon létre vagy használjon egy meglévő
Dictionaryobjektumot további lekérdezési paraméterek tárolására. - Az
id_token_hintparamétert adja hozzá az azonosító jogkivonatot tároló megfelelő változóhoz. - 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 azhttp://localhost, akkor a kérelem átirányítási URI-ja lehethttp://localhost:<randomport>. Ha a regisztrált átirányítási URI azhttp://localhost:8080, akkor a kérelem átirányítási URI-jának kell lenniehttp://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.exampleappa 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//oauthmeghiú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
- További információ: MSAL for .NET, UWP és NetCore konfigurációs beállítások.