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

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 AMicrosoft Entra – Appregistreringar snabbstart.
  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.

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:

  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 UWP-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 och registrera sedan program-ID(klient)-ID:t för användning i ett senare steg.
  7. Under Hantera väljer du Autentisering.
  8. Välj Lägg till en plattform>för mobila program och skrivbordsprogram.
  9. Under Omdirigerings-URI:er väljer du https://login.microsoftonline.com/common/oauth2/nativeclient.
  10. 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

  1. Extrahera .zip-arkivet till en lokal mapp nära roten på enheten. Till exempel i C:\Azure-Samples.

  2. Öppna projektet i Visual Studio. Installera arbetsbelastningen Universell Windows-plattform utveckling och eventuella enskilda SDK-komponenter om du uppmanas att göra det.

  3. I MainPage.Xaml.cs ändrar du värdet för variabeln ClientId till program-ID:t (klient) för programmet 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}).

  4. Skapa och välj sedan ett nytt självsignerat testcertifikat för paketet:

    1. Dubbelklicka på filen Package.appxmanifest i Solution Explorer.
    2. Välj Paketering>Välj certifikat...>Skapa....
    3. Ange ett lösenord och välj sedan OK. Ett certifikat med namnet Native_UWP_V2_TemporaryKey.pfx skapas.
    4. 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.
    5. Högerklicka på projektet Native_UWP_V2 i Solution Explorer och välj Egenskaper.
    6. 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:

  1. 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.

  2. 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

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 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.