Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
In dit artikel worden manieren beschreven waarop u de verificatie-ervaring van Azure Active Directory B2C (Azure AD B2C) voor uw WpF-bureaubladtoepassing (Windows Presentation Foundation) kunt aanpassen en verbeteren.
Voordat u begint, moet u vertrouwd raken met de verificatie configureren in een voorbeeld-WPF-desktop-app met behulp van azure AD B2C-artikel .
De aanmeldingsnaam vooraf invullen
Tijdens een aanmeldingsgebruikerstraject kan uw app zich richten op een specifieke gebruiker. Wanneer een app is gericht op een gebruiker, kan deze in de autorisatieaanvraag de login_hint
queryparameter opgeven met de aanmeldingsnaam van de gebruiker. Azure AD B2C vult automatisch de aanmeldingsnaam in en de gebruiker moet alleen het wachtwoord opgeven.
Ga als volgt te werk om de inlognaam vooraf in te vullen:
- Als u een aangepast beleid gebruikt, voegt u de vereiste invoerclaim toe, zoals beschreven in Directe aanmelding instellen.
- Zoek naar uw MSAL-configuratieobject (Microsoft Authentication Library) en voeg vervolgens de
withLoginHint()
methode toe met de aanmeldingshint.
authResult = await app.AcquireTokenInteractive(App.ApiScopes)
.WithParentActivityOrWindow(new WindowInteropHelper(this).Handle)
.WithLoginHint("bob@contoso.com")
.ExecuteAsync();
Een id-provider vooraf selecteren
Als u het aanmeldingstraject voor uw toepassing hebt geconfigureerd voor het opnemen van sociale accounts, zoals Facebook, LinkedIn of Google, kunt u de domain_hint
parameter opgeven. Deze queryparameter biedt een hint voor Azure AD B2C over de id-provider voor sociale netwerken die moet worden gebruikt voor aanmelding. Als de toepassing bijvoorbeeld opgeeft domain_hint=facebook.com
, gaat de aanmeldingsstroom rechtstreeks naar de aanmeldingspagina van Facebook.
Ga als volgt te werk om gebruikers om te leiden naar een externe id-provider:
- Controleer de domeinnaam van uw externe id-provider. Zie Aanmelding omleiden naar een sociale providervoor meer informatie.
- Maak of gebruik een bestaand
Dictionary
object om extra queryparameters op te slaan. - Voeg de
domain_hint
parameter met de bijbehorende domeinnaam toe aan de woordenlijst (bijvoorbeeldfacebook.com
). - Geef het extra queryparametersobject door aan de methode van
WithExtraQueryParameters
het MSAL-configuratieobject.
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();
De gebruikersinterfacetaal opgeven
Met taalaanpassing in Azure AD B2C kan uw gebruikersstroom voldoen aan verschillende talen die aansluiten bij de behoeften van uw klanten. Zie Taalaanpassing voor meer informatie.
Ga als volgt te werk om de voorkeurstaal in te stellen:
- Taalaanpassing configureren.
- Maak of gebruik een bestaand
Dictionary
object om extra queryparameters op te slaan. - Voeg de
ui_locales
parameter met de bijbehorende taalcode toe aan de woordenlijst (bijvoorbeelden-us
). - Geef het extra queryparametersobject door aan de methode van
WithExtraQueryParameters
het MSAL-configuratieobject.
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();
Een aangepaste queryreeksparameter doorgeven
Met aangepast beleid kunt u een aangepaste querytekenreeksparameter doorgeven. Een goed gebruiksvoorbeeld is wanneer u de pagina-inhoud dynamisch wilt wijzigen.
Ga als volgt te werk om een aangepaste queryreeksparameter door te geven:
- Configureer het element ContentDefinitionParameters .
- Maak of gebruik een bestaand
Dictionary
object om extra queryparameters op te slaan. - Voeg de aangepaste querytekenreeksparameter toe, zoals
campaignId
. Stel de parameterwaarde in (bijvoorbeeldgermany-promotion
). - Geef het extra queryparametersobject door aan de methode van
WithExtraQueryParameters
het MSAL-configuratieobject.
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();
Een id-tokenhint doorgeven
Een relying party-toepassing kan een binnenkomend JSON-webtoken (JWT) verzenden als onderdeel van de OAuth2-autorisatieaanvraag. Het binnenkomende token is een hint over de gebruiker of de autorisatieaanvraag. Azure AD B2C valideert het token en extraheert vervolgens de claim.
Ga als volgt te werk om een id-tokenhint op te nemen in de verificatieaanvraag:
- Definieer in uw aangepaste beleid een technisch profiel voor id-tokenhints.
- Genereer of verwerf een id-token in uw code en stel het token vervolgens in op een variabele (bijvoorbeeld
idToken
). - Maak of gebruik een bestaand
Dictionary
object om extra queryparameters op te slaan. - Voeg de
id_token_hint
parameter toe met de bijbehorende variabele waarin het id-token wordt opgeslagen. - Geef het extra queryparametersobject door aan het kenmerk van
extraQueryParameters
het MSAL-configuratieobject.
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();
Logboekregistratie configureren
De MSAL-bibliotheek genereert logboekberichten die u kunnen helpen bij het vaststellen van problemen. De app kan logboekregistratie configureren. De app kan u ook aangepaste controle geven over het detailniveau en of persoonlijke en organisatorische gegevens worden geregistreerd.
U wordt aangeraden een callback voor MSAL-logboekregistratie te maken en gebruikers een manier te bieden om logboeken in te dienen wanneer ze verificatieproblemen ondervinden. MSAL biedt deze niveaus van logboekregistratiedetails:
- Fout: er is iets misgegaan en er is een fout gegenereerd. Dit niveau wordt gebruikt voor foutopsporing en het identificeren van problemen.
- Waarschuwing: er is niet noodzakelijkerwijs een fout of fout opgetreden, maar de informatie is bedoeld voor diagnostische gegevens en het opsporen van problemen.
- Info: MSAL registreert gebeurtenissen die zijn bedoeld voor informatieve doeleinden en niet noodzakelijkerwijs voor foutopsporing.
- Uitgebreid: dit is het standaardniveau. MSAL registreert de volledige details van het gedrag van de bibliotheek.
De MSAL-logboekregistratie legt standaard geen persoonlijke of organisatorische gegevens vast. De bibliotheek biedt u de mogelijkheid om logboekregistratie van persoonlijke en organisatorische gegevens in te schakelen als u besluit dit te doen.
Het volgende codefragment laat zien hoe u MSAL-logboekregistratie configureert:
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();
De omleidings-URI configureren
Houd tijdens het registratieproces van de desktop-app rekening met de volgende belangrijke overwegingen wanneer u een omleidings-URI kiest:
-
Ontwikkeling: Voor ontwikkelingsgebruik in desktop-apps kunt u de omleidings-URI instellen op
http://localhost
, en Azure AD B2C respecteert elke poort in de aanvraag. Als de geregistreerde URI een poort bevat, gebruikt Azure AD B2C die poort alleen. Als de geregistreerde omleidings-URI bijvoorbeeld ishttp://localhost
, kan de omleidings-URI in de aanvraag zijnhttp://localhost:<randomport>
. Als de geregistreerde omleidings-URI ishttp://localhost:8080
, moet de omleidings-URI in de aanvraag zijnhttp://localhost:8080
. -
Uniek: Het schema van de omleidings-URI moet uniek zijn voor elke toepassing. In het voorbeeld
com.onmicrosoft.contosob2c.exampleapp://oauth/redirect
com.onmicrosoft.contosob2c.exampleapp
is dit het schema. Dit patroon moet worden gevolgd. Als twee toepassingen hetzelfde schema delen, krijgen gebruikers een keuze uit toepassingen. Als gebruikers onjuist kiezen, mislukt de aanmelding. -
Voltooid: De omleidings-URI moet zowel een schema als een pad hebben. Het pad moet ten minste één slash-teken na het domein bevatten. Werkt bijvoorbeeld
//oauth/
en//oauth
mislukt. Voeg geen speciale tekens toe aan de URI. Het onderstrepingsteken (_) is bijvoorbeeld niet toegestaan.
Volgende stappen
- Zie MSAL voor configuratieopties voor .NET, UWP en NetCore voor meer informatie.