Dela via


Snabbstart: Anropa ett ASP.NET webb-API som skyddas av Microsofts identitetsplattform

I följande snabbstart används ett kodexempel som visar hur du skyddar ett ASP.NET webb-API genom att begränsa åtkomsten till dess resurser till endast auktoriserade konton. Exemplet stöder auktorisering av personliga Microsoft-konton och -konton i alla Microsoft Entra-organisationer.

Artikeln använder också en WPF-app (Windows Presentation Foundation) för att visa hur du begär en åtkomsttoken för att få åtkomst till ett webb-API.

Förutsättningar

Klona eller ladda ned exemplet

Kodexemplet kan hämtas på två sätt:

  • Klona den från gränssnittet eller kommandoraden:

    git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
    
  • Ladda ned den som en ZIP-fil.

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.

Registrera webb-API:et (TodoListService)

Registrera ditt webb-API i Appregistreringar i Azure-portalen.

  1. Logga in på administrationscentret för Microsoft Entra som minst en molnprogramadministratör.

  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. Navigera till Identity>Applications>App registrations och välj Ny registrering.

  4. Ange ett namn för ditt program, till exempel AppModelv2-NativeClient-DotNet-TodoListService. Användare av din app kan se det här namnet och du kan ändra det senare.

  5. För kontotyper som stödsväljer du Konton i vilken som helst organisatorisk katalog.

  6. Välj Registrera för att skapa programmet.

  7. På sidan Översikt letar du efter värdet för tillämpnings-ID (klient) och noterar det för senare användning. Du behöver den för att konfigurera Visual Studio-konfigurationsfilen för det här projektet, det vill säga ClientId i TodoListService-\appsettings.jsi filen.

  8. Under Hanteraväljer du Exponera ett API>Lägg till ett omfång. Godkänn den föreslagna program-ID-URI:n (api://{clientId}) genom att välja Spara och fortsättaoch ange sedan följande information:

    1. För Omfångsnamnanger du access_as_user.
    2. För Vem kan godkännakontrollerar du att alternativet Administratörer och användare är valt.
    3. I rutan visningsnamn för administratörsmedgivande anger du Access TodoListService as a user.
    4. I rutan Beskrivning av administratörsmedgivande anger du Accesses the TodoListService web API as a user.
    5. I rutan visningsnamn för användarmedgivande anger du Access TodoListService as a user.
    6. I rutan Beskrivning av användarmedgivande anger du Accesses the TodoListService web API as a user.
    7. För State, behåll Aktiverad.
  9. Välj Lägg till omfång.

Konfigurera tjänstprojektet

Konfigurera tjänstprojektet så att det matchar det registrerade webb-API:et.

  1. Öppna lösningen i Visual Studio och öppna sedan filen appsettings.json under roten i TodoListService-projektet.

  2. Ersätt värdet för Enter_the_Application_Id_here med värdet för klient-ID (program-ID) från det program som du registrerade i appregistreringar portalen både i ClientID och Audience egenskaper.

Lägg till det nya omfånget i filen app.config

Följ dessa steg om du vill lägga till det nya omfånget i filen TodoListClient app.config:

  1. I TodoListClient-projektets rotmapp öppnar du filen app.config.

  2. Klistra in program-ID:t från det program som du registrerade för ditt TodoListService-projekt i parametern TodoListServiceScope och ersätt {Enter the Application ID of your TodoListService from the app registration portal} strängen.

Anteckning

Kontrollera att program-ID:t använder följande format: api://{TodoListService-Application-ID}/access_as_user (där {TodoListService-Application-ID} är DET GUID som representerar program-ID:t för din TodoListService-app).

Registrera webbappen (TodoListClient)

Registrera din TodoListClient-app i Appregistreringar i Azure-portalen och konfigurera sedan koden i Projektet TodoListClient. Om klienten och servern anses vara samma program kan du återanvända programmet som är registrerat i steg 2. Använd samma program om du vill att användarna ska logga in med ett personligt Microsoft-konto.

Registrera appen

Följ dessa steg för att registrera TodoListClient-appen:

  1. Logga in på administrationscentret för Microsoft Entra som minst en molnprogramadministratör.

  2. Bläddra till Identity>Applications>App registrations och välj Ny registrering.

  3. Välj Ny registrering.

  4. När Registrera en programsida öppnas anger du programmets registreringsinformation:

    1. I avsnittet Namn anger du ett beskrivande programnamn som ska visas för appens användare (till exempel NativeClient-DotNet-TodoListClient).
    2. För kontotyper som stödsväljer du Konton i vilken organisationskatalog som helst.
    3. Välj Registrera för att skapa programmet.

    Not

    I filen TodoListClient-projektet app.config anges standardvärdet för ida:Tenant till common. Möjliga värden är:

    • common: Du kan logga in med ett arbets- eller skolkonto eller ett personligt Microsoft-konto (eftersom du valde Konton i en organisationskatalog i ett tidigare steg).
    • organizations: Du kan logga in med hjälp av ett arbets- eller skolkonto.
    • consumers: Du kan bara logga in med ett personligt Microsoft-konto.
  5. På sidan Översikt väljer du Authenticationoch slutför sedan de här stegen för att lägga till en plattform:

    1. Under Platform-konfigurationerväljer du knappen Lägg till en plattform.
    2. För Mobil- och skrivbordsprogramväljer du Mobil- och skrivbordsprogram.
    3. För omdirigerings-URI:ermarkerar du kryssrutan https://login.microsoftonline.com/common/oauth2/nativeclient.
    4. Välj Konfigurera.
  6. Välj API-behörigheteroch slutför sedan de här stegen för att lägga till behörigheter:

    1. Välj knappen Lägg till en behörighet.
    2. Välj fliken Mina API:er.
    3. I listan över API:er väljer du AppModelv2-NativeClient-DotNet-TodoListService API- eller det namn som du angav för webb-API:et.
    4. Markera kryssrutan för behörigheten access_as_user om den inte redan är markerad. Använd sökrutan om det behövs.
    5. Välj knappen Lägg till behörigheter.

Konfigurera projektet

Konfigurera ditt TodoListClient-projekt genom att lägga till program-ID:t i filen app.config.

  1. På portalen App-registreringar, på sidan Översikt, kopiera värdet för Applikation (klient)-ID:t.

  2. Från rotmappen TodoListClient-projektet öppnar du filen app.config och klistrar sedan in program-ID-värdet i parametern ida:ClientId.

Köra dina projekt

Starta båda projekten. För Visual Studio-användare;

  1. Högerklicka på Visual Studio-lösningen och välj Egenskaper

  2. I Vanliga egenskaper väljer du Startprojekt och sedan Flera startprojekt.

  3. För båda projekten väljer du Starta som åtgärd

  4. Kontrollera att TodoListService-tjänsten startar först genom att flytta den till den första positionen i listan med hjälp av uppåtpilen.

Logga in för att köra ditt TodoListClient-projekt.

  1. Tryck på F5 för att starta projekten. Tjänstsidan öppnas samt skrivbordsprogrammet.

  2. I TodoListClient, längst upp till höger, väljer du Logga inoch loggar sedan in med samma autentiseringsuppgifter som du använde för att registrera ditt program eller logga in som en användare i samma katalog.

    Om du loggar in för första gången kan du uppmanas att godkänna Webb-API:et TodoListService.

    För att hjälpa dig att komma åt TodoListService-webb-API:et och ändra att göra--listan begär inloggningen också en åtkomsttoken till access_as_user omfång.

Förauktorisera klientprogrammet

Du kan tillåta användare från andra kataloger att komma åt webb-API:et genom att förauktorisera klientprogrammet för åtkomst till webb-API:et. Det gör du genom att lägga till program-ID:t från klientappen i listan över förauktoriserade program för webb-API:et. Genom att lägga till en förauktoriserat klient tillåter du användare att komma åt ditt webb-API utan att behöva ge medgivande.

  1. Öppna egenskaperna för din TodoListService-app i Appregistreringar-portalen.
  2. I avsnittet Exponera ett API går du till Auktoriserade klientprogramoch väljer Lägg till ett klientprogram.
  3. I rutan klient-ID klistrar du in program-ID:t för TodoListClient-appen.
  4. I avsnittet Auktoriserade omfång väljer du omfånget för api://<Application ID>/access_as_user webb-API.
  5. Välj Lägg till program.

Kör projektet

  1. Tryck på F5 för att köra projektet. Din TodoListClient-app öppnas.
  2. Längst upp till höger väljer du Logga inoch loggar sedan in med ett personligt Microsoft-konto, till exempel ett live.com- eller hotmail.com-konto eller ett arbets- eller skolkonto.

Valfritt: Begränsa inloggningsåtkomsten till vissa användare

Som standard kan alla personliga konton, till exempel outlook.com eller live.com konton eller arbets- eller skolkonton från organisationer som är integrerade med Microsoft Entra-ID, begära token och komma åt ditt webb-API.

Om du vill ange vem som kan logga in på ditt program ändrar du egenskapen TenantId i filen appsettings.json.

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

Läs mer genom att skapa ett skyddat ASP.NET Core-webb-API i följande självstudieserie:

självstudie om skyddat webb-API