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

Registrera och ladda ned snabbstartsappen

Det finns två alternativ för att starta snabbstartsprogrammet:

Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned ditt kodexempel

  1. Gå till administrationscentret för Microsoft Entra – Appregistreringar quickstart.
  2. Ange ett namn för programmet och välj Registrera.
  3. 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:

  1. Logga in på administrationscentret för Microsoft Entra.
  2. 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.
  3. Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.
  4. 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.
  5. I avsnittet Kontotyper som stöds väljer du Konton alla organisationskataloger och personliga Microsoft-konton (till exempel Skype, Xbox och Outlook.com).
  6. Välj Registrera för att skapa programmet.
  7. Under Hantera väljer du Autentisering.
  8. Välj Lägg till en plattform>för mobila program och skrivbordsprogram.
  9. I avsnittet Omdirigerings-URI:er väljer du https://login.microsoftonline.com/common/oauth2/nativeclient och i Anpassade omdirigerings-URI:er lägger du till ms-appx-web://microsoft.aad.brokerplugin/{client_id} var {client_id} är programmets (klient)-ID (samma GUID som visas i kryssrutanmsal{client_id}://auth).
  10. 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

  1. Extrahera zip-filen i en lokal mapp nära diskens rot, till exempel C:\Azure-Samples.

  2. Öppna projektet i Visual Studio.

  3. Redigera App.Xaml.cs och ersätt värdena för fälten ClientId och Tenant 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

Diagram showing how the sample app generated by this quickstart works.

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.