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.

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.

Registrera webb-API:et (TodoListService)

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

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

  1. Logga in på administrationscentret för Microsoft Entra som minst 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 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 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öds väljer du Konton i valfri organisationskatalog.

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

  7. På appöversiktssidan letar du efter värdet program-ID (klient) och registrerar det för senare användning. Du behöver den för att konfigurera Visual Studio-konfigurationsfilen för det här projektet (d.ex ClientId . i filen TodoListService\appsettings.json ).

  8. Under Hantera vä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ätta och ange sedan följande information:

    1. Som Omfångsnamn anger du access_as_user.
    2. För Vem kan samtycka kontrollerar 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. Behåll Aktiverad för Tillstånd.
  9. Välj Lägg till definitionsområde.

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

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

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. Öppna filen app.config i rotmappen TodoListClient-projekt.

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

Kommentar

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 molnprogramadministratör.

  2. Bläddra till Identitetsprogram>> Appregistreringar och välj Ny registrering.

  3. Välj Ny registrering.

  4. När sidan Registrera ett program ö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öds väljer du Konton i valfri organisationskatalog.
    3. Välj Registrera för att skapa programmet.

    Kommentar

    I filen TodoListClient project app.config är standardvärdet ida:Tenant för inställt på 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 valfri organisationskatalog i ett tidigare steg).
    • organizations: Du kan logga in med ett arbets- eller skolkonto.
    • consumers: Du kan bara logga in med ett personligt Microsoft-konto.
  5. På sidan Appöversikt väljer du Autentisering och slutför sedan de här stegen för att lägga till en plattform:

    1. Under Plattformskonfigurationer väljer du knappen Lägg till en plattform .
    2. För mobil- och skrivbordsprogram väljer du Mobil- och skrivbordsprogram.
    3. Markera kryssrutan för https://login.microsoftonline.com/common/oauth2/nativeclient Omdirigerings-URI:er.
    4. Välj Konfigurera.
  6. Välj API-behörigheter och 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 access_as_user behörighet 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å Appregistreringar portalen på sidan Översikt kopierar du värdet för program-ID:t (klient-ID).

  2. Från rotmappen TodoListClient-projekt ö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 in och loggar sedan in med samma autentiseringsuppgifter som du använde för att registrera ditt program eller logga in som 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 även 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 klientprogram och väljer Lägg till ett klientprogram.
  3. I rutan Klient-ID klistrar du in program-ID för TodoListClient-appen.
  4. I avsnittet Auktoriserade omfång väljer du omfånget för webb-API:et api://<Application ID>/access_as_user .
  5. Välj Lägg till program.

Köra projektet

  1. Tryck på F5 för att köra projektet. TodoListClient-appen öppnas.
  2. Längst upp till höger väljer du Logga in och 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 TenantId du egenskapen i appsettings.json-filen.

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

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