Snabbstart: Anropa ett webb-API som skyddas av Microsofts identitetsplattform
Gäller för: medarbetarklienter
externa klienter (läs mer)
I den här snabbstarten använder du en exempelwebbapp för att visa hur du skyddar ett ASP.NET webb-API med hjälp av Microsofts identitetsplattform. Exemplet använder Microsoft Authentication Library (MSAL) för att hantera autentisering.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- Visual Studio 2022. Ladda ned Visual Studio kostnadsfritt.
Registrera webb-API-program
För att slutföra registreringen anger du ett namn för programmet och anger vilka kontotyper som stöds. När det har registrerats visar Översiktssidan de identifierare som behövs i programmets källkod.
Logga in på Microsoft Entra-administrationscentret som minst en Programutvecklare.
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.
Bläddra till Identity>Applications>App registrations.
Välj Ny registrering.
Ange ett Namn för programmet, till exempel NewWebAPI1.
För Stödda kontotyper, välj Endast konton i denna organisationskatalog. Om du vill ha information om olika kontotyper väljer du Hjälp mig att välja alternativ.
Välj Registrera.
Programmets översiktsfönster visas när registreringen är klar. Registrera katalog-ID (klientorganisation) och program-ID (klient) för att användas i programmets källkod.
Notera
De kontotyper som stöds kan ändras genom att referera till Ändra konton som stöds av ett program.
Exponera ett API
När API:et har registrerats kan du konfigurera dess behörighet genom att definiera de omfång som API:et exponerar för klientprogram. Klientprogram begär behörighet att utföra åtgärder genom att skicka en åtkomsttoken tillsammans med dess begäranden till det skyddade webb-API:et. Webb-API:et utför sedan endast den begärda åtgärden om den åtkomsttoken som den tar emot innehåller de nödvändiga omfången.
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:- För Omfångsnamnanger du
access_as_user
. - För Vem kan godkännakontrollerar du att alternativet Administratörer och användare är valt.
- I rutan visningsnamn för administratörsmedgivande anger du
Access TodoListService as a user
. - I rutan Beskrivning av administratörsmedgivande anger du
Accesses the TodoListService web API as a user
. - I rutan visningsnamn för användarmedgivande anger du
Access TodoListService as a user
. - I rutan Beskrivning av användarmedgivande anger du
Accesses the TodoListService web API as a user
. - Behåll Aktiveradför Tillstånd.
- För Omfångsnamnanger du
Välj Lägg till omfång.
Klona eller ladda ned exempelprogrammet
Om du vill hämta exempelprogrammet kan du antingen klona det från GitHub eller ladda ned det som en .zip fil.
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
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.
Konfigurera exempelprogrammet
Konfigurera kodexemplet så att det matchar det registrerade webb-API:et.
Öppna lösningen i Visual Studio och öppna sedan filen appsettings.json under roten i TodoListService-projektet.
Ersätt värdet på
Enter_the_Application_Id_here
med värdet för klient-ID (program-ID) från det program som du registrerade i appenregistreringarnas portal både iClientID
ochAudience
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:
I rotmappen för TodoListClient-projektet öppnar du filen app.config.
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.
Not
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:
Logga in på administrationscentret för Microsoft Entra som minst en molnprogramadministratör.
Navigera till Identity>Applications>App registrations och välj Ny registrering.
Välj Ny registrering.
När Registrera en programsida öppnas anger du programmets registreringsinformation:
- I avsnittet Namn anger du ett beskrivande programnamn som ska visas för appens användare (till exempel NativeClient-DotNet-TodoListClient).
- För kontotyper som stödsväljer du Konton i en organisationskatalog.
- Välj Registrera för att skapa programmet.
Not
I filen TodoListClient-projektet app.config anges standardvärdet för
ida:Tenant
tillcommon
. 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.
På sidan Översikt väljer du Authenticationoch slutför sedan de här stegen för att lägga till en plattform:
- Under Platform-konfigurationerväljer du knappen Lägg till en plattform.
- För Mobil- och skrivbordsprogramväljer du Mobil- och skrivbordsprogram.
- För omdirigerings-URI:er , välj kryssrutan
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Välj Konfigurera.
Välj API-behörigheteroch slutför sedan de här stegen för att lägga till behörigheter:
- Välj knappen Lägg till en behörighet.
- Välj fliken Mina API:er.
- I listan över API:er väljer du AppModelv2-NativeClient-DotNet-TodoListService API- eller det namn som du angav för webb-API:et.
- Markera kryssrutan för access_as_user behörigheten om den inte redan är markerad. Använd sökrutan om det behövs.
- 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.
I Appregistreringar-portalen, på sidan Översikt, kopierar du värdet för Application (klient)-ID:t.
Från rotmappen TodoListClient-projektet öppnar du filen app.config och klistrar sedan in program-ID-värdet i parametern
ida:ClientId
.
Kör exempelprogrammet
Starta båda projekten. För Visual Studio-användare;
Högerklicka på Visual Studio-lösningen och välj Egenskaper
I Vanliga egenskaper väljer du Startprojekt och sedan Flera startprojekt.
För båda projekten väljer du Starta som åtgärd
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.
Tryck på F5 för att starta projekten. Tjänstsidan öppnas samt skrivbordsprogrammet.
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 för access_as_user behörighet.
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.
- Öppna egenskaperna för din TodoListService-app i portalen för appregistreringar.
- I avsnittet Exponera ett API går du till Auktoriserade klientprogramoch väljer Lägg till ett klientprogram.
- I rutan klient-ID klistrar du in program-ID:t för TodoListClient-appen.
- I avsnittet Auktoriserade omfång väljer du omfånget för
api://<Application ID>/access_as_user
webb-API. - Välj Lägg till program.
Kör projektet
- Tryck på F5 för att köra projektet. Din TodoListClient-app öppnas.
- 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.
Nästa steg
Läs mer genom att skapa ett skyddat ASP.NET Core-webb-API i följande självstudieserie: