Dela via


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

Registrera och ladda ned snabbstartsappen

Du har två alternativ för att starta snabbstartsprogrammet:

Alternativ 1: Registrera och konfigurera appen automatiskt och ladda sedan ned kodexemplet

  1. Gå till administrationscentret för Microsoft Entra – Appregistreringarsnabbstart.
  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 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:

  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 klientorganisationen där du vill registrera programmet från menyn Kataloger + prenumerationer.
  3. Bläddra till Identitet>Applikationer>Appregistreringaroch välj Ny registrering.
  4. 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.
  5. I avsnittet kontotyper som stöds väljer du Konton i valfri organisationskatalog och personliga Microsoft-konton (till exempel Skype, Xbox Outlook.com).
  6. Välj Registrera för att skapa programmet.
  7. Under Hantera, välj Autentisering.
  8. Välj Lägg till en plattform>Mobila program och skrivbordsprogram.
  9. I avsnittet Redirect URI:er väljer du https://login.microsoftonline.com/common/oauth2/nativeclient och i Anpassade omdirigerings-URI:er lägga till ms-appx-web://microsoft.aad.brokerplugin/{client_id} där {client_id} är programmets (klient)-ID (samma GUID som visas i kryssrutan msal{client_id}://auth).
  10. 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

  1. Extrahera zip-filen till en lokal mapp nära roten på disken, 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";
    

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

diagram som visar hur exempelappen som genereras av den här snabbstarten fungerar.

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.