Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Från och med den 1 maj 2025 är Azure AD B2C inte längre tillgängligt att köpa för nya kunder. Läs mer i våra vanliga frågor och svar.
I den här artikeln beskrivs hur du kan anpassa och förbättra autentiseringsupplevelsen för Azure Active Directory B2C (Azure AD B2C) för ditt WPF-skrivbordsprogram (Windows Presentation Foundation).
Innan du börjar bör du bekanta dig med artikeln Konfigurera autentisering i en WPF-exempelapp med hjälp av Azure AD B2C .
Fyll i inloggningsnamnet i förväg
Under en inloggningsresa kan din app rikta in sig på en specifik användare. När en app riktar sig mot en användare kan den i auktoriseringsbegäran login_hint ange frågeparametern med användarens inloggningsnamn. Azure AD B2C fyller automatiskt i inloggningsnamnet och användaren behöver bara ange lösenordet.
Gör följande för att fylla i inloggningsnamnet i förväg:
- Använder du en anpassad princip, lägg till det nödvändiga indata som beskrivs i Konfigurera direkt inloggning.
- Leta efter konfigurationsobjektet för Microsoft Authentication Library (MSAL) och lägg sedan till
withLoginHint()metoden med inloggningstipset.
authResult = await app.AcquireTokenInteractive(App.ApiScopes)
.WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
.WithLoginHint("bob@contoso.com")
.ExecuteAsync();
Avmarkera en identitetsprovider i förväg
Om du har konfigurerat inloggningsresan för ditt program så att det innehåller sociala konton, till exempel Facebook, LinkedIn eller Google, kan du ange parametern domain_hint . Den här frågeparametern ger ett tips till Azure AD B2C om den sociala identitetsprovider som ska användas för inloggning. Om programmet till exempel anger går inloggningsflödet domain_hint=facebook.comdirekt till Facebooks inloggningssida.
Om du vill omdirigera användare till en extern identitetsprovider gör du följande:
- Kontrollera domännamnet för din externa identitetsprovider. Mer information finns i Omdirigera inloggning till en social provider.
- Skapa eller använd ett befintligt
Dictionaryobjekt för att lagra extra frågeparametrar. - Lägg till parametern
domain_hintmed motsvarande domännamn i ordlistan (till exempelfacebook.com). - Skicka det extra frågeparametrar-objektet till MSAL-konfigurationsobjektets
WithExtraQueryParameters-metod.
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();
Ange användargränssnittsspråket
Språkanpassning i Azure AD B2C gör att ditt användarflöde kan hantera en mängd olika språk som passar dina kunders behov. Mer information finns i Språkanpassning.
Gör följande för att ange önskat språk:
- Konfigurera språkanpassning.
- Skapa eller använd ett befintligt
Dictionaryobjekt för att lagra extra frågeparametrar. - Lägg till parametern
ui_localesmed motsvarande språkkod i ordlistan (till exempelen-us). - Skicka det extra frågeparametrar-objektet till MSAL-konfigurationsobjektets
WithExtraQueryParameters-metod.
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();
Skicka en anpassad frågesträngsparameter
Med anpassade principer kan du skicka en anpassad frågesträngsparameter. Ett bra exempel på användningsfall är när du vill ändra sidinnehållet dynamiskt.
Gör följande för att skicka en anpassad frågesträngsparameter:
- Konfigurera elementet ContentDefinitionParameters .
- Skapa eller använd ett befintligt
Dictionaryobjekt för att lagra extra frågeparametrar. - Lägg till den anpassade frågesträngsparametern, till exempel
campaignId. Ange parametervärdet (till exempelgermany-promotion). - Skicka det extra frågeparametrar-objektet till MSAL-konfigurationsobjektets
WithExtraQueryParameters-metod.
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();
Skicka ett ID-tokentips
Ett förlitande partprogram kan skicka en inkommande JSON-webbtoken (JWT) som en del av OAuth2-auktoriseringsbegäran. Den inkommande token är ett tips om användaren eller auktoriseringsbegäran. Azure AD B2C verifierar token och extraherar sedan anspråket.
Gör följande om du vill inkludera ett ID-tokentips i autentiseringsbegäran:
- I din anpassade policy definierar du en teknisk profil för ID-tokentips.
- I koden genererar eller hämtar du en ID-token och anger sedan token till en variabel (till exempel
idToken). - Skapa eller använd ett befintligt
Dictionaryobjekt för att lagra extra frågeparametrar. - Lägg till parametern
id_token_hintmed motsvarande variabel som lagrar ID-token. - Skicka det extra frågeparametrar-objektet till MSAL-konfigurationsobjektets
extraQueryParametersattribut.
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();
Konfigurera loggning
MSAL-biblioteket genererar loggmeddelanden som kan hjälpa dig att diagnostisera problem. Appen kan konfigurera loggfunktioner. Appen kan också ge dig anpassad kontroll över detaljnivån och om personliga data och organisationsdata loggas.
Vi rekommenderar att du skapar ett MSAL-loggningsåteranrop och tillhandahåller ett sätt för användare att skicka loggar när de har autentiseringsproblem. MSAL tillhandahåller följande nivåer av loggningsinformation:
- Fel: Något har gått fel och ett fel har genererats. Den här nivån används för att felsöka och identifiera problem.
- Varning! Det har inte nödvändigtvis uppstått ett fel eller fel, men informationen är avsedd för diagnostik och för att hitta problem.
- Info: MSAL loggar händelser som är avsedda för informationsändamål och inte nödvändigtvis för felsökning.
- Utförligt: Detta är standardnivån. MSAL loggar den fullständiga informationen om biblioteksbeteendet.
Som standard samlar MSAL-loggaren inte in några personliga data eller organisationsdata. Biblioteket ger dig möjlighet att aktivera loggning av personliga data och organisationsdata om du bestämmer dig för att göra det.
Följande kodfragment visar hur du konfigurerar MSAL-loggning:
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();
Konfigurera omdirigerings-URI:n
När du väljer en omdirigerings-URI under registreringsprocessen för skrivbordsappar bör du tänka på följande viktiga överväganden:
-
Utveckling: För utveckling i skrivbordsappar kan du ange omdirigerings-URI:n till
http://localhost, och Azure AD B2C respekterar alla portar i begäran. Om den registrerade URI:n innehåller en port använder Azure AD B2C endast den porten. Om den registrerade omdirigerings-URI:n till exempel ärhttp://localhostkan omdirigerings-URI:n i begäran varahttp://localhost:<randomport>. Om den registrerade omdirigerings-URI:n ärhttp://localhost:8080måste omdirigerings-URI:n i begäran varahttp://localhost:8080. -
Unikt: Omdirigerings-URI:ns schema måste vara unikt för varje program. I exemplet
com.onmicrosoft.contosob2c.exampleapp://oauth/redirect,com.onmicrosoft.contosob2c.exampleappär schemat. Det här mönstret bör följas. Om två program delar samma schema får användarna välja mellan olika program. Om användarna väljer fel misslyckas inloggningen. -
Slutförd: Omdirigerings-URI:n måste ha både ett schema och en sökväg. Sökvägen måste innehålla minst ett snedstreck efter domänen. Till exempel
//oauth/fungerar och//oauthmisslyckas. Inkludera inte specialtecken i URI:n. Till exempel tillåts inte understreckstecknet (_).
Nästa steg
- Mer information finns i MSAL för konfigurationsalternativen .NET, UWP och NetCore.