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
- Visual Studio waarbij de werkbelasting Universeel Windows-platformontwikkeling is ingeschakeld
De snelstart-app registreren en downloaden
U hebt twee opties voor het starten van de snelstarttoepassing:
- [Express] Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens de voorbeeldcode
- [Handmatig] Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- Ga naar het Microsoft Entra-beheercentrum - App-registraties quickstart-ervaring.
- Voer een naam in voor de toepassing en selecteer Registreren.
- 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:
- Meld u aan bij het Microsoft Entra-beheercentrum.
- 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.
- Blader naar Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
- 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. - Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
- Selecteer Registreren om de toepassing te maken.
- Selecteer Verificatie onder Beheren.
- Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
- Selecteer in de sectie Omleidings-URI's
https://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 hetmsal{client_id}://auth
selectievakje). - 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
Pak het zip-bestand uit in een lokale map dicht bij de hoofdmap van de schijf, bijvoorbeeld C:\Azure-Samples.
Open het project in Visual Studio.
Bewerk App.Xaml.cs en vervang de waarden van de velden
ClientId
enTenant
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
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.