Snabbstart: Logga in användare och anropa Microsoft Graph i en Windows-skrivbordsapp
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. Skrivbordsappen som du skapar använder det auktoriseringskodflöde som är kopplat till PKCE-standarden (Proof Key for Code Exchange).
Se Så här fungerar exemplet för en bild.
Förutsättningar
- Visual Studio med arbetsbelastningen Universell Windows-plattform utveckling installerad
Registrera och ladda ned snabbstartsappen
Det finns två alternativ för att starta snabbstartsprogrammet:
- [Express] Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned ditt kodexempel
- [Manuellt] Alternativ 2: Registrera och konfigurera programmet och kodexemplet
Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned ditt kodexempel
- Gå till administrationscentret för Microsoft Entra – Appregistreringar quickstart.
- Ange ett namn för programmet och välj Registrera.
- Följ anvisningarna för att ladda ned och konfigurera det nya programmet automatiskt med ett enda klick.
Alternativ 2: Registrera och konfigurera programmet och kodexemplet
Steg 1: Registrera din app
Dricks
Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.
Du registrerar programmet och lägger till appens registreringsinformationen i lösningen manuellt med hjälp av följande steg:
- Logga in på administrationscentret för Microsoft Entra.
- Om du har åtkomst till flera klienter använder du ikonen Inställningar på den översta menyn för att växla till den klientorganisation där du vill registrera programmet från menyn Kataloger + prenumerationer.
- Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.
- Ange ett namn för ditt program, till exempel
Win-App-calling-MsGraph
. Användare av din app kan se det här namnet och du kan ändra det senare. - I avsnittet Kontotyper som stöds väljer du Konton alla organisationskataloger och personliga Microsoft-konton (till exempel Skype, Xbox och Outlook.com).
- Välj Registrera för att skapa programmet.
- Under Hantera väljer du Autentisering.
- Välj Lägg till en plattform>för mobila program och skrivbordsprogram.
- I avsnittet Omdirigerings-URI:er väljer du
https://login.microsoftonline.com/common/oauth2/nativeclient
och i Anpassade omdirigerings-URI:er lägger du tillms-appx-web://microsoft.aad.brokerplugin/{client_id}
var{client_id}
är programmets (klient)-ID (samma GUID som visas i kryssrutanmsal{client_id}://auth
). - Välj Konfigurera.
Steg 2: Ladda ned projektet
Ladda ned WPF-exempelprogrammet
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: Konfigurera projektet
Extrahera zip-filen i en lokal mapp nära diskens rot, till exempel C:\Azure-Samples.
Öppna projektet i Visual Studio.
Redigera App.Xaml.cs och ersätt värdena för fälten
ClientId
ochTenant
med följande kod:private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Där:
Enter_the_Application_Id_here
– är program-ID (klient) för programmet som du har registrerat.Om du vill hitta värdet för program-ID (klient) går du till appens översiktssida i administrationscentret för Microsoft Entra.
Enter_the_Tenant_Info_Here
– är inställt på något av följande alternativ:Om ditt program stöder Endast konton i den här organisationskatalogen ska du ersätta värdet med klient-ID eller klientnamn (till exempel contoso.microsoft.com)
Om ditt program stöder Konton i valfri organisationskatalog ersätter du värdet med
organizations
Om ditt program har stöd för konton i en organisationskatalog och personliga Microsoft-konton ersätter du det här värdet med
common
.Om du vill hitta värdena för katalog-ID och kontotyper som stöds går du till appens översiktssidai administrationscentret för Microsoft Entra.
Steg 4: Kör programmet
Om du vill skapa och köra exempelprogrammet i Visual Studio väljer du felsökningsmenyn>Starta felsökning eller trycker på F5-tangenten. Programmets MainWindow visas.
När appens huvudfönster visas väljer du knappen Anropa Microsoft Graph API. Du uppmanas att logga in med ditt Microsoft Entra-konto (arbets- eller skolkonto) eller Microsoft-konto (live.com, outlook.com) autentiseringsuppgifter.
Om du kör programmet för första gången uppmanas du att ge medgivande för att tillåta programmet att komma åt din användarprofil och logga in dig. När du har samtyckt till de begärda behörigheterna visar programmet att du har loggat in. Du bör se grundläggande tokeninformation och användardata som hämtats från anropet till Microsoft Graph-API:et.
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 :t (klient) för programmet som registrerats i administrationscentret för Microsoft Entra. Du hittar det här värdet på appens översiktssida i administrationscentret för Microsoft Entra. |
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.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.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.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.