Quickstart: Een token verkrijgen en Microsoft Graph API aanroepen vanuit een Windows-bureaubladtoepassing
Welkom. Dit is waarschijnlijk niet de pagina die u verwachtte te zien. Terwijl we aan een oplossing voor dit probleem werken, kunt u met deze koppeling naar het juiste artikel gaan:
Quickstart: Gebruikers aanmelden en Microsoft Graph aanroepen in een Windows-bureaublad-app
Onze excuses voor het ongemak en bedankt voor uw geduld tijdens onze inspanningen om dit probleem op te lossen.
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.
Zie Hoe het voorbeeld werkt voor een illustratie.
Stap 1: Uw toepassing configureren in Azure Portal
Voeg een omleidings-URI toe van https://login.microsoftonline.com/common/oauth2/nativeclient
en ms-appx-web://microsoft.aad.brokerplugin/{client_id}
voor het codevoorbeeld in deze quickstart.
Uw toepassing is geconfigureerd met deze kenmerken.
Stap 2: Uw Visual Studio-project downloaden
Voer het project uit met Visual Studio 2019.
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: Uw app is geconfigureerd en gereed om uit te voeren
Uw project is geconfigureerd met waarden van de eigenschappen van uw app en is klaar om te worden uitgevoerd.
Notitie
Enter_the_Supported_Account_Info_Here
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-id) voor de toepassing die is geregistreerd in de Azure-portal. U vindt deze waarde op de pagina Overzicht in de Azure-portal. |
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.PublicClientApp.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.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.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.