Snabbstart: Hämta en token och anropa Microsoft Graph API från ett Windows-skrivbordsprogram
Välkommen! Det här är förmodligen inte den sida du förväntade dig. När vi arbetar med en korrigering bör den här länken ta dig till rätt artikel:
Snabbstart: Logga in användare och anropa Microsoft Graph i en Windows-skrivbordsapp
Vi ber om ursäkt för besväret och uppskattar ditt tålamod medan vi arbetar för att få detta löst.
I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur ett WPF-program (Windows Presentation Foundation) kan logga in användare och få en åtkomsttoken för att anropa Microsoft Graph API.
Se Så här fungerar exemplet för en bild.
Steg 1: Konfigurera din app i Azure-portalen
För att kodexemplet i den här snabbstarten ska fungera lägger du till en omdirigerings-URI för https://login.microsoftonline.com/common/oauth2/nativeclient
och ms-appx-web://microsoft.aad.brokerplugin/{client_id}
.
Programmet har konfigurerats med dessa attribut.
Steg 2: Ladda ned ditt Visual Studio-projekt
Kör projektet med Visual Studio 2019.
Dricks
För att undvika fel som orsakas av sökvägslängdsbegränsningar i Windows rekommenderar vi att du extraherar arkivet eller klonar lagringsplatsen till en katalog nära roten på enheten.
Steg 3: Din app är konfigurerad och redo att köras
Vi har konfigurerat projektet med värden för appens egenskaper och är redo att köras.
Kommentar
Enter_the_Supported_Account_Info_Here
Mer information
Så här fungerar exemplet
MSAL.NET
MSAL (Microsoft.Identity.Client) är det bibliotek som används för att logga in användare och begära token som används för att komma åt ett API som skyddas av Microsofts identitetsplattform. Du kan installera MSAL genom att köra följande kommando i Package Manager-konsolen i Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
MSAL-initiering
Du kan lägga till referensen för MSAL genom att lägga till följande kod:
using Microsoft.Identity.Client;
Initiera sedan MSAL med hjälp av följande kod:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
Där: | beskrivning |
---|---|
ClientId |
Är Program-ID (klient) för det program som registrerats på Azure-portalen. Du hittar det här värdet på appens översiktssida på Azure-portalen. |
Begära token
MSAL har två metoder för hämtning av token: AcquireTokenInteractive
och AcquireTokenSilent
.
Hämta en användartoken interaktivt
Vissa situationer kräver att användarna måste interagera med Microsofts identitetsplattform via ett popup-fönster för att antingen verifiera sina autentiseringsuppgifter eller ge sitt medgivande. Vissa exempel inkluderar:
- Första gången användaren loggar in på programmet
- När användarna kan behöva ange sina autentiseringsuppgifter igen eftersom lösenordet har upphört att gälla
- När programmet begär åtkomst till en resurs som användaren behöver ge sitt medgivande för
- När tvåfaktorsautentisering krävs
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Där: | beskrivning |
---|---|
_scopes |
Innehåller de omfång som begärs, till exempel { "user.read" } för Microsoft Graph eller { "api://<Application ID>/access_as_user" } för anpassade webb-API:er. |
Hämta en token obevakat
Du vill inte kräva att användarna verifierar sina autentiseringsuppgifter varje gång de behöver komma åt en resurs. I de flesta fall vill du ha hämtning och förnyelse av token utan någon användarinteraktion. Du kan använda metoden AcquireTokenSilent
för att hämta token för att komma åt skyddade resurser efter den inledande metoden AcquireTokenInteractive
:
var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Där: | beskrivning |
---|---|
scopes |
Innehåller de omfång som begärs, till exempel { "user.read" } för Microsoft Graph eller { "api://<Application ID>/access_as_user" } för anpassade webb-API:er. |
firstAccount |
Anger den första användaren i cachen (MSAL stöder flera användare i en enda app). |
Hjälp och support
Om du behöver hjälp, vill rapportera ett problem eller vill lära dig mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.
Nästa steg
Prova att använda självstudien om Windows-skrivbordet för en komplett stegvis guide till att skapa appar och nya funktioner, däribland en fullständig förklaring av den här snabbstarten.