Snabbstart: Logga in användare och anropa Microsoft Graph i en Universell Windows-plattform-app
I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur ett UWP-program (Universell Windows-plattform) kan logga in användare och hämta en åtkomsttoken för att anropa Microsoft Graph API.
Se Så här fungerar exemplet för en bild.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Visual Studio
Kommentar
MSAL.NET version 4.61.0 och senare ger inte stöd för Universell Windows-plattform (UWP), Xamarin Android och Xamarin iOS. Vi rekommenderar att du migrerar dina UWP-program till moderna ramverk som WINUI. Läs mer om utfasningen i Meddelande om kommande utfasning av MSAL.NET för Xamarin och UWP.
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 AMicrosoft Entra – Appregistreringar snabbstart.
- Ange ett namn för programmet och välj Registrera.
- Följ anvisningarna för att ladda ned och konfigurera det nya programmet automatiskt.
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 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
UWP-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 och registrera sedan program-ID(klient)-ID:t för användning i ett senare steg.
- Under Hantera väljer du Autentisering.
- Välj Lägg till en plattform>för mobila program och skrivbordsprogram.
- Under Omdirigerings-URI:er väljer du
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Välj Konfigurera.
Steg 2: Ladda ned projektet
Ladda ned UWP-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 arkivet till en lokal mapp nära enhetens rot. Till exempel i C:\Azure-Samples.
Öppna projektet i Visual Studio. Installera arbetsbelastningen Universell Windows-plattform utveckling och eventuella enskilda SDK-komponenter om du uppmanas att göra det.
I MainPage.Xaml.cs ändrar du värdet för variabeln
ClientId
till program-ID :t (klient) för det program som du registrerade tidigare.private const string ClientId = "Enter_the_Application_Id_here";
Du hittar program-ID:t (klient) i appens översiktsfönster i administrationscentret för Microsoft Entra (Identity>Applications> Appregistreringar>{Din appregistrering}).
Skapa och välj sedan ett nytt självsignerat testcertifikat för paketet:
- Dubbelklicka på filen Package.appxmanifest i Solution Explorer.
- Välj Paketering>Välj certifikat...>Skapa....
- Ange ett lösenord och välj sedan OK. Ett certifikat med namnet Native_UWP_V2_TemporaryKey.pfx skapas.
- Välj OK för att stänga dialogrutan Välj ett certifikat och kontrollera sedan att du ser Native_UWP_V2_TemporaryKey.pfx i Solution Explorer.
- Högerklicka på projektet Native_UWP_V2 i Solution Explorer och välj Egenskaper.
- Välj Signering och välj sedan den .pfx som du skapade i listrutan Välj en stark namnnyckelfil .
Steg 4: Kör programmet
Så här kör du exempelprogrammet på den lokala datorn:
I Visual Studio-verktygsfältet väljer du rätt plattform (förmodligen x64 eller x86, inte ARM). Målenheten bör ändras från Enhet till Lokal dator.
Välj Felsökning>Starta utan felsökning.
Om du uppmanas att göra det kan du först behöva aktivera utvecklarläge och sedan Starta utan att felsöka igen för att starta appen.
När appens fönster visas kan du välja knappen Anropa Microsoft Graph API , ange dina autentiseringsuppgifter och godkänna de behörigheter som programmet begär. Om det lyckas visar programmet viss tokeninformation och data som hämtats från anropet till Microsoft Graph-API:et.
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 säkerhetstoken. Säkerhetstoken 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
MSAL-initiering
Du kan lägga till referensen för MSAL genom att lägga till följande kod:
using Microsoft.Identity.Client;
Sedan initieras MSAL med hjälp av följande kod:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
Värdet ClientId
för är program-ID :t (klient) för den app som du registrerade 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 i en UWP-app: 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. Vissa exempel inkluderar:
- Första gången användarna 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 ditt program begär åtkomst till en resurs måste användaren godkänna
- När tvåfaktorsautentisering krävs
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
Parametern 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
AcquireTokenSilent
Använd metoden för att hämta token för att få åtkomst till skyddade resurser efter den första AcquireTokenInteractive
metoden. 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
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
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 det första användarkontot 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 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.