Anropa ett ASP.NET Core-webb-API med sömnlöshet
Den här artikeln visar hur du anropar ett skyddat ASP.NET Core-webb-API med hjälp av Sömnlöshet. Sömnlöshet är ett program som låter dig skicka HTTP-begäranden till ett webb-API för att testa dess auktoriserings- och åtkomstkontrollprinciper (autentisering). I den här artikeln registrerar du en webbapp och ett webb-API i en klientorganisation. Webbappen används för att hämta en åtkomsttoken som genereras av Microsofts identitetsplattform. Sedan använder du token för att göra ett auktoriserat anrop till webb-API:et med hjälp av Insomnia.
Den här artikeln visar hur du anropar ett skyddat ASP.NET Core-webb-API med hjälp av Sömnlöshet. Sömnlöshet är ett program som låter dig skicka HTTP-begäranden till ett webb-API för att testa dess auktoriserings- och åtkomstkontrollprinciper (autentisering). I självstudien: Implementera en skyddad slutpunkt till ditt API, där du skapade ett skyddat API, måste du registrera ett webbprogram med Microsofts identitetsplattform för att generera en åtkomsttoken. Sedan använder du token för att göra ett auktoriserat anrop till API:et med hjälp av Insomnia.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Det här Azure-kontot måste ha behörighet att hantera program. Någon av följande Microsoft Entra-roller innehåller de behörigheter som krävs:
- Programadministratör
- Programutvecklare
- Molnprogramadministratör
- Ladda ned och installera Insomnia. Du använder Insomnia för att hämta en åtkomsttoken för dina API-begäranden.
- Ett minimikrav på .NET 8.0 SDK.
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Det här Azure-kontot måste ha behörighet att hantera program. Någon av följande Microsoft Entra-roller innehåller de behörigheter som krävs:
- Programadministratör
- Programutvecklare
- Molnprogramadministratör
- Slutförande av självstudieserien:
- Ladda ned och installera Insomnia.
Registrera en app
Microsofts identitetsplattform kräver att ditt program registreras innan du tillhandahåller identitets- och åtkomsthanteringstjänster. Med programregistreringen kan du ange namnet och typen av program och inloggningspubliken. Inloggningspubliken anger vilka typer av användarkonton som tillåts logga in på ett visst program.
Registrera webb-API:et
Dricks
Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.
Följ dessa steg för att skapa webb-API-registreringen:
Logga in på administrationscentret för Microsoft Entra som minst programutvecklare.
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.
Bläddra till Identitetsprogram>> Appregistreringar.
Välj Ny registrering.
Ange ett namn för programmet, till exempel NewWebAPI1.
För Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen. Om du vill ha information om olika kontotyper väljer du Alternativet Hjälp mig att välja .
Välj Registrera.
Du kan se programmets översiktsfönster när registreringen är klar. Registrera katalog-ID:t (klient)-ID:t och program-ID:t (klient) som ska användas i senare steg.
Kommentar
Kontotyper som stöds kan ändras genom att referera till Ändra konton som stöds av ett program.
Exponera API:et
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 är giltig.
Under Hantera väljer du Exponera ett API > Lägg till ett omfång. Acceptera den föreslagna program-ID-URI:
(api://{clientId})
n genom att välja Spara och fortsätta.{clientId}
är värdet som registrerats från sidan Översikt. Ange sedan följande information:- Som Omfångsnamn anger du
Forecast.Read
. - För Vem kan samtycka kontrollerar du att alternativet Administratörer och användare är valt.
- I rutan Visningsnamn för administratörsmedgivande anger du
Read forecast data
. - I rutan Beskrivning av administratörsmedgivande anger du
Allows the application to read weather forecast data
. - I rutan Visningsnamn för användarmedgivande anger du
Read forecast data
. - I rutan Beskrivning av användarmedgivande anger du
Allows the application to read weather forecast data
. - Kontrollera att tillståndet är inställt på Aktiverad.
- Som Omfångsnamn anger du
Välj Lägg till definitionsområde. Om omfånget har angetts korrekt visas det i fönstret Exponera ett API .
Registrera webbappen
Det räcker inte att ha ett webb-API, du behöver också en webbapp för att få en åtkomsttoken för att få åtkomst till webb-API:et.
Följ dessa steg för att skapa registrering av webbappar:
- Välj Start för att återgå till startsidan. Bläddra till Identitetsprogram>> Appregistreringar.
- Välj Ny registrering.
- Ange ett namn för programmet, till exempel web-app-calls-web-api.
- För Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen. Om du vill ha information om olika kontotyper väljer du alternativet Hjälp mig .
- Under Omdirigerings-URI (valfritt) väljer du Webb och anger
http://localhost
sedan i textrutan URL. - Välj Registrera.
- Logga in på administrationscentret för Microsoft Entra som minst programutvecklare.
- 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.
- Bläddra till Identitetsprogram>> Appregistreringar.
- Välj Ny registrering.
- Ange ett namn för programmet, till exempel web-app-calls-web-api.
- För Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen. Om du vill ha information om olika kontotyper väljer du alternativet Hjälp mig .
- Under Omdirigerings-URI (valfritt) väljer du Webb och anger
http://localhost
sedan i textrutan URL. - Välj Registrera.
Du kan se programmets översiktsfönster när registreringen är klar. Registrera katalog-ID:t (klient)-ID:t och program-ID:t (klient) som ska användas i senare steg.
Lägg till en klienthemlighet
En klienthemlighet är ett strängvärde som appen kan använda för själva identiteten och kallas ibland för ett programlösenord. Webbappen använder klienthemligheten för att bevisa sin identitet när den begär token.
Följ dessa steg för att konfigurera en klienthemlighet:
I fönstret Översikt går du till Hantera och väljer Certifikat och hemligheter>Klienthemligheter>Ny klienthemlighet.
Lägg till en beskrivning för din klienthemlighet, till exempel Min klienthemlighet.
Välj en förfallotidpunkt för hemligheten eller ange en anpassad livslängd.
- En klienthemlighets livslängd är begränsad till två år (24 månader) eller mindre. Du kan inte ange en anpassad livslängd som är längre än 24 månader.
- Microsoft rekommenderar att du anger ett förfallovärde på mindre än 12 månader.
Markera Lägga till.
Se till att registrera värdet för klienthemligheten. Det här hemliga värdet visas aldrig igen när du har lämnat den här sidan.
Mer information om hur du lagrar din klienthemlighet på ett säkert sätt finns i Metodtips för hantering av hemligheter i Key Vault.
Lägga till behörigheter för att komma åt ditt webb-API
Genom att ange webb-API:ets omfång kan webbappen hämta en åtkomsttoken som innehåller de omfång som tillhandahålls av Microsofts identitetsplattform. I koden kan webb-API:et sedan ge behörighetsbaserad åtkomst till dess resurser baserat på de omfång som finns i åtkomsttoken.
Följ dessa steg för att konfigurera klientens behörigheter till webb-API:et:
- I fönstret Översikt i ditt program går du till Hantera och väljer API-behörigheter>Lägg till behörighets-API>:er som min organisation använder.
- Välj NewWebAPI1 eller det API som du vill lägga till behörigheter till.
- Markera kryssrutan bredvid Forecast.Read under Välj behörigheter. Du kan behöva expandera behörighetslistan. Detta väljer de behörigheter som klientappen ska ha för den inloggade användarens räkning.
- Välj Lägg till behörigheter för att slutföra processen.
När du har lagt till dessa behörigheter i ditt API bör du se de valda behörigheterna under Konfigurerade behörigheter.
Du kan också märka behörigheten User.Read för Microsoft Graph-API:et. Den här behörigheten läggs till automatiskt när du registrerar en app.
Testa webb-API:et
Följ dessa steg för att se till att ditt API är i drift och redo att hantera begäranden:
Klona lagringsplatsen ms-identity-docs-code-dotnet.
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Navigera till
ms-identity-docs-code-dotnet/web-api
och öppnaappsettings.json
, ersätt{APPLICATION_CLIENT_ID}
och{DIRECTORY_TENANT_ID}
med följande värden:{APPLICATION_CLIENT_ID}
är webb-API-programmets (klient)-ID i appens översiktsfönster.{DIRECTORY_TENANT_ID}
är webb-API-katalog-ID :t (klientorganisation) i appens översiktsfönster.
Kör följande kommando för att starta appen:
dotnet run
Utdata som liknar följande visas. Registrera portnumret i
https://localhost:{port}
URL:en.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Testa webb-API:et
Följ dessa steg för att se till att ditt API är i drift och redo att hantera begäranden:
Navigera till webb-API:et som skapades i Självstudie: Skapa ett ASP.NET Core-projekt och konfigurera API:et, till exempel NewWebAPILocal, och öppna mappen.
Öppna ett nytt terminalfönster och navigera till mappen där webb-API-projektet finns.
Utdata som liknar följande visas. Registrera portnumret i
https://localhost:{port}
URL:en.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Konfigurera en auktoriserad begäran till webb-API:et i Sömnlöshet
Följ dessa steg för att hämta en åtkomsttoken för dina API-begäranden:
Starta insomnia-programmet.
Välj Ny HTTP-begäran eller använd Ctrl + N för att skapa en ny HTTP-begäran.
I modalen Ny begäran väljer du en GET-metod i listrutan.
Ange URL:en för den slutpunkt som exponeras av webb-API:et för
https://localhost:{port}/weatherforecast
begärande-URL:en.I listrutan Auth väljer du OAuth 2.0. Då visas OAuth 2.0-formuläret .
Ange följande värden i formuläret OAuth 2.0 :
Inställning Värde BEVILJA TYP Välj auktoriseringskod AUKTORISERINGS-URL https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize
Ersätt{tenantId}
med katalog-ID :t (klientorganisation)URL FÖR ÅTKOMSTTOKEN https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
Ersätt{tenantId}
med katalog-ID :t (klientorganisation)KLIENT-ID Program-ID-värdet (klient) för din webbappsregistrering KLIENTHEMLIGHET Värdet för webbappregistreringens klienthemlighet OMDIRIGERINGS-URL Ange http://localhost
, som anger OMDIRIGERINGs-URL:en till omdirigerings-URI:n som registrerats med Microsoft Entra-ID.Omfång för avancerade alternativ> api://{application_client_id}/Forecast.Read
Gå till din webbappsregistrering under Hantera, välj API-behörigheter och välj sedan Forecast.Read
Kopiera värdet i textrutan, som innehåller omfångsvärdet
Hämta en åtkomsttoken och skicka en begäran till webb-API:et
- När dessa värden har angetts väljer du Hämta token i slutet av formuläret. Detta startar ett webbläsarfönster för Insomnia där du autentiserar med dina användarautentiseringsuppgifter. Se till att tillåta popup-fönster från programmet Insomnia i webbläsaren.
- När du har autentiserat väljer du Skicka för att skicka begäran till den skyddade webb-API-slutpunkten.
Med en giltig åtkomsttoken som ingår i begäran är det förväntade svaret 200 OK med utdata som liknar:
[
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": -16,
"summary": "Scorching",
"temperatureF": 4
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 1,
"summary": "Sweltering",
"temperatureF": 33
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 26,
"summary": "Freezing",
"temperatureF": 78
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 54,
"summary": "Mild",
"temperatureF": 129
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 11,
"summary": "Bracing",
"temperatureF": 51
}
]
Relaterat innehåll
Mer information om OAuth 2.0-auktoriseringskodflöde och programtyper finns i: