Delen via


Verificatieopties inschakelen in een WPF-bureaublad-app met behulp van Azure AD B2C

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:

  1. Als u een aangepast beleid gebruikt, voegt u de vereiste invoerclaim toe, zoals beschreven in Directe aanmelding instellen.
  2. 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:

  1. Controleer de domeinnaam van uw externe id-provider. Zie Aanmelding omleiden naar een sociale providervoor meer informatie.
  2. Maak of gebruik een bestaand Dictionary object om extra queryparameters op te slaan.
  3. Voeg de domain_hint parameter met de bijbehorende domeinnaam toe aan de woordenlijst (bijvoorbeeld facebook.com).
  4. 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:

  1. Taalaanpassing configureren.
  2. Maak of gebruik een bestaand Dictionary object om extra queryparameters op te slaan.
  3. Voeg de ui_locales parameter met de bijbehorende taalcode toe aan de woordenlijst (bijvoorbeeld en-us).
  4. 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:

  1. Configureer het element ContentDefinitionParameters .
  2. Maak of gebruik een bestaand Dictionary object om extra queryparameters op te slaan.
  3. Voeg de aangepaste querytekenreeksparameter toe, zoals campaignId. Stel de parameterwaarde in (bijvoorbeeld germany-promotion).
  4. 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:

  1. Definieer in uw aangepaste beleid een technisch profiel voor id-tokenhints.
  2. Genereer of verwerf een id-token in uw code en stel het token vervolgens in op een variabele (bijvoorbeeld idToken).
  3. Maak of gebruik een bestaand Dictionary object om extra queryparameters op te slaan.
  4. Voeg de id_token_hint parameter toe met de bijbehorende variabele waarin het id-token wordt opgeslagen.
  5. 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 is http://localhost, kan de omleidings-URI in de aanvraag zijn http://localhost:<randomport>. Als de geregistreerde omleidings-URI is http://localhost:8080, moet de omleidings-URI in de aanvraag zijn http://localhost:8080.
  • Uniek: Het schema van de omleidings-URI moet uniek zijn voor elke toepassing. In het voorbeeld com.onmicrosoft.contosob2c.exampleapp://oauth/redirectcom.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