Quickstart: Gebruikers aanmelden en Microsoft Graph aanroepen in een Windows-bureaublad-app

In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld met een WPF-toepassing (Windows Presentation Foundation), en een toegangstoken kunnen krijgen om de Microsoft Graph API aan te roepen. De desktop-app die u bouwt, maakt gebruik van de autorisatiecodestroom die is gekoppeld aan de PKCE-standaard (Proof Key for Code Exchange).

Zie Hoe het voorbeeld werkt voor een illustratie.

Vereisten

De snelstart-app registreren en downloaden

U hebt twee opties voor het starten van de snelstarttoepassing:

Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld

  1. Ga naar het Microsoft Entra-beheercentrum - App-registraties quickstart-ervaring.
  2. Voer een naam in voor de toepassing en selecteer Registreren.
  3. Volg de instructies om de nieuwe toepassing met slechts één klik te downloaden en automatisch te configureren.

Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld

Stap 1: Uw toepassing registreren

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

Volg deze stappen om de toepassing te registreren en de registratiegegevens van de app handmatig toe te voegen aan uw oplossing:

  1. Meld u aan bij het Microsoft Entra-beheercentrum.
  2. Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om over te schakelen naar de tenant waarin u de toepassing wilt registreren in het menu Mappen en abonnementen.
  3. Blader naar Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
  4. Voer een Naam in voor de toepassing, bijvoorbeeld Win-App-calling-MsGraph. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
  5. Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
  6. Selecteer Registreren om de toepassing te maken.
  7. Selecteer Verificatie onder Beheren.
  8. Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
  9. Selecteer in de sectie Omleidings-URI'shttps://login.microsoftonline.com/common/oauth2/nativeclient en voeg in de Aangepaste omleidings-URI'sms-appx-web://microsoft.aad.brokerplugin/{client_id} toe waarbij {client_id}de toepassings-id (client) van uw toepassing is (dezelfde GUID die wordt weergegeven in het msal{client_id}://auth selectievakje).
  10. Selecteer Configureren.

Stap 2: Het project downloaden

De WPF-voorbeeldtoepassing downloaden

Tip

Om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows, raden we u aan het archief te extraheren of de opslagplaats te klonen in een map dicht bij de hoofdmap van uw station.

Stap 3: het project configureren

  1. Pak het zip-bestand uit in een lokale map dicht bij de hoofdmap van de schijf, bijvoorbeeld C:\Azure-Samples.

  2. Open het project in Visual Studio.

  3. Bewerk App.Xaml.cs en vervang de waarden van de velden ClientId en Tenant door de volgende code:

    private static string ClientId = "Enter_the_Application_Id_here";
    private static string Tenant = "Enter_the_Tenant_Info_Here";
    

Hierin:

  • Enter_the_Application_Id_here: is de toepassings-id (client-id) voor de toepassing die u hebt geregistreerd.

    Als u de waarde van de toepassings-id (client) wilt vinden, gaat u naar de pagina Overzicht van de app in het Microsoft Entra-beheercentrum.

  • Enter_the_Tenant_Info_Here: is ingesteld op een van de volgende opties:

    • Als uw toepassing Alleen accounts in deze organisatiemap ondersteunt, vervang deze waarde dan door de Tenant-id of Tenantnaam (bijvoorbeeld contoso.microsoft.com)

    • Als uw toepassing Accounts in elke organisatiemap ondersteunt, vervang deze waarde dan door organizations

    • Als uw toepassing ondersteuning biedt voor accounts in elke organisatiemap en persoonlijke Microsoft-accounts, vervangt u deze waarde door common.

      Als u de waarden van directory-id (tenant) en ondersteunde accounttypen wilt vinden, gaat u naar de pagina Overzicht van de app in het Microsoft Entra-beheercentrum.

Stap 4: De toepassing uitvoeren

Als u de voorbeeldtoepassing in Visual Studio wilt bouwen en uitvoeren, selecteert u in het menu Foutopsporing>starten of drukt u op F5. De MainWindow van uw toepassing wordt weergegeven.

Wanneer het hoofdvenster van de app wordt weergegeven, selecteert u de knop Microsoft Graph API bellen. U wordt gevraagd u aan te melden met uw Referenties voor uw Microsoft Entra-account (werk- of schoolaccount) of Microsoft-account (live.com, outlook.com).

Als u de toepassing voor de eerste keer uitvoert, wordt u gevraagd toestemming te geven om de toepassing toegang te geven tot uw gebruikersprofiel en u aan te melden. Nadat u de gewenste machtigingen hebt opgegeven, wordt in de app weer gegeven dat u bent aangemeld met uw referenties voor Azure Active Directory. U ziet nu enkele basistokengegevens en gebruikersgegevens die zijn verkregen uit de aanroep van de Microsoft Graph API.

Meer informatie

Hoe het voorbeeld werkt

Diagram showing how the sample app generated by this quickstart works.

MSAL.NET

MSAL (Microsoft.Identity.Client) is de bibliotheek die wordt gebruikt voor het aanmelden van gebruikers en het aanvragen van tokens die worden gebruikt voor toegang tot een API die wordt beveiligd met Microsoft-identiteitsplatform. U kunt MSAL installeren door de volgende opdracht uit te voeren in Package Manager Console van Visual Studio:

Install-Package Microsoft.Identity.Client -IncludePrerelease

MSAL initialiseren

U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:

using Microsoft.Identity.Client;

Vervolgens initialiseert u MSAL met de volgende code:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Hierin: Beschrijving
ClientId Is de toepassings-id (client) voor de toepassing die is geregistreerd in het Microsoft Entra-beheercentrum. U vindt deze waarde op de overzichtspagina van de app in het Microsoft Entra-beheercentrum.

Tokens aanvragen

MSAL biedt twee methoden om tokens te verkrijgen: AcquireTokenInteractive en AcquireTokenSilent.

Een gebruikerstoken interactief ophalen

In sommige situaties is het nodig om gebruikers via een pop-upvenster te dwingen het Microsoft-identiteitsplatform te gebruiken om hun referenties te valideren of om toestemming te geven. Enkele voorbeelden:

  • De eerste keer dat gebruikers zich aanmelden bij de toepassing
  • Wanneer gebruikers mogelijk hun referenties opnieuw moeten opgeven omdat het wachtwoord is verlopen
  • Wanneer via de toepassing toegang wordt aangevraagd tot een resource waarvoor de gebruiker toestemming moet geven
  • Wanneer tweeledige verificatie is vereist
authResult = await app.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Hierin: Beschrijving
_scopes Bevat de bereiken die worden aangevraagd, bijvoorbeeld { "user.read" } voor Microsoft Graph of { "api://<Application ID>/access_as_user" } voor aangepaste web-API's.

Een gebruikerstoken op de achtergrond ophalen

U wilt niet vereisen dat de gebruiker telkens wanneer deze toegang nodig heeft tot een resource zijn/haar referenties moet valideren. In de meeste gevallen wilt u tokens ophalen en verlengen zonder tussenkomst van de gebruiker. U kunt de methode AcquireTokenSilent voor het verkrijgen van tokens gebruiken voor toegang tot beveiligde resources na de eerste methode AcquireTokenInteractive:

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Hierin: Beschrijving
scopes Bevat de bereiken die worden aangevraagd, bijvoorbeeld { "user.read" } voor Microsoft Graph of { "api://<Application ID>/access_as_user" } voor aangepaste web-API's.
firstAccount Geeft de eerste gebruiker in de cache op (MSAL biedt ondersteuning voor meerdere gebruikers in één app).

Help en ondersteuning

Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.

Volgende stappen

Volg de zelfstudie voor Windows-bureaublad voor een volledige stapsgewijze handleiding voor het bouwen van toepassingen en nieuwe functies, waaronder een volledige uitleg van deze quickstart.