Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.
Tento článek popisuje způsoby přizpůsobení a vylepšení prostředí ověřování Azure Active Directory B2C (Azure AD B2C) pro desktopovou aplikaci Windows Presentation Foundation (WPF).
Než začnete, seznamte se s konfigurací ověřování v ukázkové desktopové aplikaci WPF pomocí článku Azure AD B2C .
Předem vyplníte přihlašovací jméno.
Během cesty uživatele přihlašování může vaše aplikace cílit na konkrétního uživatele. Když aplikace cílí na uživatele, může v žádosti o login_hint autorizaci zadat parametr dotazu s přihlašovacím jménem uživatele. Azure AD B2C automaticky vyplní přihlašovací jméno a uživatel musí zadat jenom heslo.
Chcete-li předvyplnit přihlašovací jméno, postupujte takto:
- Pokud používáte vlastní zásadu, přidejte požadovanou vstupní deklaraci, jak je popsáno v Nastavte přímé přihlášení.
- Vyhledejte objekt konfigurace knihovny MSAL (Microsoft Authentication Library) a pak přidejte metodu
withLoginHint()s nápovědou pro přihlášení.
authResult = await app.AcquireTokenInteractive(App.ApiScopes)
.WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
.WithLoginHint("bob@contoso.com")
.ExecuteAsync();
Předem vyberte zprostředkovatele identity
Pokud jste nakonfigurovali cestu přihlášení pro aplikaci tak, aby zahrnovala sociální účty, jako je Facebook, LinkedIn nebo Google, můžete zadat domain_hint parametr. Tento parametr dotazu poskytuje nápovědu pro Azure AD B2C o zprostředkovateli sociálních identit, který by se měl použít pro přihlášení. Pokud například aplikace určí domain_hint=facebook.com, tok přihlášení přejde přímo na přihlašovací stránku Facebooku.
Pokud chcete uživatele přesměrovat na externího zprostředkovatele identity, postupujte takto:
- Zkontrolujte název domény vašeho externího zprostředkovatele identity. Další informace najdete v tématu Přesměrování přihlášení k poskytovateli sociálních sítí.
- Vytvořte nebo použijte existující
Dictionaryobjekt k uložení dalších parametrů dotazu. -
domain_hintPřidejte parametr s odpovídajícím názvem domény do slovníku (napříkladfacebook.com). - Předejte další objekt parametrů dotazu do metody objektu
WithExtraQueryParameterskonfigurace MSAL.
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();
Určení jazyka uživatelského rozhraní
Přizpůsobení jazyka v Azure AD B2C umožňuje toku uživatelů přizpůsobit různé jazyky podle potřeb vašich zákazníků. Další informace naleznete v tématu Přizpůsobení jazyka.
Pokud chcete nastavit upřednostňovaný jazyk, postupujte takto:
- Nakonfigurujte přizpůsobení jazyka.
- Vytvořte nebo použijte existující
Dictionaryobjekt k uložení dalších parametrů dotazu. -
ui_localesPřidejte parametr s odpovídajícím kódem jazyka do slovníku (napříkladen-us). - Předejte další objekt parametrů dotazu do metody objektu
WithExtraQueryParameterskonfigurace MSAL.
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();
Předání vlastního parametru řetězce dotazu
Pomocí vlastních zásad můžete předat vlastní parametr řetězce dotazu. Dobrým příkladem použití je, když chcete dynamicky změnit obsah stránky.
Pokud chcete předat vlastní parametr řetězce dotazu, postupujte takto:
- Nakonfigurujte element ContentDefinitionParameters .
- Vytvořte nebo použijte existující
Dictionaryobjekt k uložení dalších parametrů dotazu. - Přidejte vlastní parametr řetězce dotazu, například
campaignId. Nastavte hodnotu parametru (napříkladgermany-promotion). - Předejte další objekt parametrů dotazu do metody objektu
WithExtraQueryParameterskonfigurace MSAL.
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();
Nápověda k předání tokenu ID
Aplikace předávající strany může jako součást žádosti o autorizaci OAuth2 odeslat příchozí webový token JSON (JWT). Příchozí token je indikátorem o uživateli nebo žádosti o autorizaci. Azure AD B2C ověří token a pak extrahuje deklaraci identity.
Pokud chcete do žádosti o ověření zahrnout nápovědu tokenu ID, postupujte takto:
- Ve vlastní zásadě definujte technický profil nápovědy ID tokenu.
- V kódu vygenerujte nebo získejte token ID a pak nastavte token na proměnnou (například
idToken). - Vytvořte nebo použijte existující
Dictionaryobjekt k uložení dalších parametrů dotazu. -
id_token_hintPřidejte parametr s odpovídající proměnnou, která ukládá token ID. - Předejte objekt parametrů extra dotazu do atributu objektu
extraQueryParameterskonfigurace MSAL.
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();
Konfigurujte protokolování
Knihovna MSAL generuje zprávy protokolu, které můžou pomoct s diagnostikou problémů. Aplikace může nakonfigurovat protokolování. Aplikace vám také může poskytnout vlastní kontrolu nad úrovní podrobností a o tom, jestli se protokolují osobní a organizační data.
Doporučujeme vytvořit zpětné volání protokolování MSAL a poskytnout uživatelům způsob odesílání protokolů, když mají problémy s ověřováním. MSAL poskytuje tyto úrovně podrobností protokolování:
- Chyba: Něco se nepovedlo a vygenerovala se chyba. Tato úroveň se používá k ladění a identifikaci problémů.
- Upozornění: Nemusí se nutně jednat o chybu nebo selhání, ale informace jsou určené pro diagnostiku a určení problémů.
- Informace: MSAL protokoluje události, které jsou určeny pro informační účely, a ne nutně pro ladění.
- Podrobné: Jedná se o výchozí úroveň. MSAL protokoluje podrobnosti chování knihovny.
Ve výchozím nastavení protokolovací nástroj MSAL nezachytává žádná osobní ani organizační data. Knihovna vám umožňuje povolit protokolování osobních a organizačních dat, pokud se tak rozhodnete.
Následující fragment kódu ukazuje, jak nakonfigurovat protokolování MSAL:
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();
Konfigurace identifikátoru URI přesměrování
Při registraci desktopové aplikace při výběru identifikátoru URI přesměrování mějte na paměti následující důležité aspekty:
-
Vývoj: Pro vývoj v desktopových aplikacích můžete nastavit identifikátor URI přesměrování na
http://localhosta Azure AD B2C bude respektovat libovolný port v požadavku. Pokud registrovaný identifikátor URI obsahuje port, Azure AD B2C tento port použije pouze. Například pokud je zaregistrovaný identifikátor URI přesměrováníhttp://localhost, může být v požadavku identifikátor URI přesměrováníhttp://localhost:<randomport>. Pokud je registrovaný identifikátor URI přesměrováníhttp://localhost:8080, musí být identifikátor URI přesměrování v požadavkuhttp://localhost:8080. -
Jedinečné: Schéma identifikátoru URI přesměrování musí být jedinečné pro každou aplikaci. V příkladu
com.onmicrosoft.contosob2c.exampleapp://oauth/redirectcom.onmicrosoft.contosob2c.exampleappje schéma. Tento vzor by se měl dodržovat. Pokud dvě aplikace sdílejí stejné schéma, uživatelům se přidělí volba aplikací. Pokud se uživatel rozhodne nesprávně, přihlášení se nezdaří. -
Dokončeno: URI přesměrování musí mít schéma i cestu. Cesta musí obsahovat alespoň jeden znak lomítka za doménou. Například
//oauth/funguje a//oauthselže. Do identifikátoru URI nezahrnujte speciální znaky. Například znak podtržítka (_) není povolený.
Další kroky
- Další informace najdete v tématu MSAL pro možnosti konfigurace .NET, UPW a NetCore.