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 Hur exemplet fungerar för en illustration.
Förutsättningar
- Visual Studio med arbetsbelastningen för Universal Windows Platform-utveckling installerad
Registrera och ladda ned snabbstartsappen
Du har två alternativ för att starta snabbstartsprogrammet:
- [Express] Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned kodexemplet
- [Manuell] Alternativ 2: Registrera och konfigurera ditt program och kodexempel manuellt
Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned kodexemplet
- Gå till administrationscentret för Microsoft Entra – Appregistreringarsnabbstart.
- 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 bara ett klick.
Alternativ 2: Registrera och konfigurera ditt program och kodexempel manuellt
Steg 1: Registrera ditt program
Följ dessa steg för att registrera ditt program och lägga till appens registreringsinformation i din lösning manuellt:
- 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 klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.
- Bläddra till Identitet>Applikationer>Appregistreringaroch välj Ny registrering.
- Ange ett Namn för din applikation, 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 i valfri organisationskatalog och personliga Microsoft-konton (till exempel Skype, Xbox Outlook.com).
- Välj Registrera för att skapa programmet.
- Under Hantera, välj Autentisering.
- Välj Lägg till en plattform>Mobila program och skrivbordsprogram.
- I avsnittet Redirect URI:er väljer du
https://login.microsoftonline.com/common/oauth2/nativeclient
och i Anpassade omdirigerings-URI:er lägga tillms-appx-web://microsoft.aad.brokerplugin/{client_id}
där{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
Tips
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 till en lokal mapp nära roten på disken, 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";
Var:
Enter_the_Application_Id_here
– är program-ID (klient) för det program som du registrerade.Om du vill hitta värdet för program-ID (klient)-IDgå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 -konton i den här organisationskatalogenersätter du det här värdet med klientorganisations-ID eller klientnamn (till exempel contoso.microsoft.com)
Om ditt program stöder -konton i en organisationskatalogersätter du det här värdet med
organizations
Om ditt program stöder -konton i en organisationskatalog och personliga Microsoft-kontonersätter du det här värdet med
common
.Om du vill hitta värdena för Directory-ID (klientorganisation) och kontotyper som stödsgår du till appens översiktssida i administrationscentret för Microsoft Entra.
Steg 4: Kör programmet
Om du vill skapa och köra exempelprogrammet i Visual Studio väljer du menyn Felsökning>Starta felsökningeller trycker på F5-tangenten. Ditt programs Huvudfönster 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 Visual Studio Package Manager Console:
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();
Var: | Beskrivning |
---|---|
ClientId |
Är program-ID (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 att hämta token: AcquireTokenInteractive
och AcquireTokenSilent
.
Hämta en användartoken interaktivt
Vissa situationer kräver att användarna tvingas interagera med Microsofts identitetsplattform via ett popup-fönster för att antingen verifiera sina autentiseringsuppgifter eller ge sitt medgivande. Några exempel är:
- Första gången användare loggar in på programmet
- När användare kan behöva ange sina autentiseringsuppgifter igen eftersom lösenordet har upphört att gälla
- När ditt program begär åtkomst till en resurs som användaren behöver samtycka till
- När tvåfaktorautentisering krävs
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Var: | 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 användartoken tyst
Du vill inte kräva att användaren verifierar sina autentiseringsuppgifter varje gång de behöver komma åt en resurs. För det mesta vill du ha tokenförvärv och förnyelse utan någon användarinteraktion. Du kan använda metoden AcquireTokenSilent
för att hämta token för att få åtkomst till skyddade resurser efter den första AcquireTokenInteractive
-metoden:
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Var: | 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 cacheminnet (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 veta mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.
Nästa steg
Prova självstudien för Windows-skrivbordet för en komplett stegvis guide om hur du skapar program och nya funktioner, inklusive en fullständig förklaring av den här snabbstarten.