Rychlý start: Ochrana webového rozhraní API ASP.NET Core pomocí platformy Microsoft Identity Platform
V tomto rychlém startu se používá ukázka kódu webového rozhraní API ASP.NET Core, která ukazuje, jak omezit přístup k prostředkům na autorizované účty. Ukázka používá k zpracování ověřování ASP.NET základní identitu, která komunikuje s knihovnou MSAL (Microsoft Authentication Library).
Požadavky
- Účet Azure s aktivním předplatným. Pokud ho ještě nemáte, vytvořte si účet zdarma.
- Minimální požadavek sady .NET 6.0 SDK
- Visual Studio 2022 nebo Visual Studio Code
Registrace identifikátorů aplikace a záznamů
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
K dokončení registrace zadejte název aplikace a zadejte podporované typy účtů. Po registraci se na stránce Přehled aplikace zobrazí identifikátory potřebné ve zdrojovém kódu aplikace.
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.
Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
Přejděte k aplikacím> identit>Registrace aplikací.
Vyberte Nová registrace.
Zadejte název aplikace, například NewWebAPI1.
U podporovaných typů účtů vyberte Pouze účty v tomto organizačním adresáři. Pokud chcete získat informace o různých typech účtů, vyberte možnost Pomoc s výběrem možnosti.
Vyberte Zaregistrovat.
Po dokončení registrace se zobrazí podokno Přehled aplikace. Poznamenejte si ID adresáře (tenanta) a ID aplikace (klienta), které se má použít ve zdrojovém kódu aplikace.
Poznámka:
Podporované typy účtů je možné změnit odkazem na úpravu účtů podporovaných aplikací.
Zpřístupnit rozhraní API
Po registraci rozhraní API můžete nakonfigurovat jeho oprávnění definováním oborů, které rozhraní API zveřejňuje klientským aplikacím. Klientské aplikace požadují oprávnění k provádění operací předáním přístupového tokenu spolu s požadavky na chráněné webové rozhraní API. Webové rozhraní API pak provede požadovanou operaci pouze v případě, že přístupový token, který obdrží, obsahuje požadované obory.
V části Spravovat vyberte Zveřejnit rozhraní API > Přidat obor. Výběrem možnosti Uložit a pokračovat přijměte navrhovaný identifikátor URI
(api://{clientId})
ID aplikace. Jedná se{clientId}
o hodnotu zaznamenanou ze stránky Přehled . Pak zadejte následující informace:- Jako název oboru zadejte
Forecast.Read
. - U Kdo může souhlasit, ujistěte se, že je vybraná možnost Správa a uživatelé.
- Do pole zobrazovaného názvu souhlasu Správa zadejte
Read forecast data
. - Do pole Správa popis souhlasu zadejte
Allows the application to read weather forecast data
. - Do pole Zobrazované jméno souhlasu uživatele zadejte
Read forecast data
. - Do pole Popis souhlasu uživatele zadejte
Allows the application to read weather forecast data
. - Ujistěte se, že je stav nastavený na Povoleno.
- Jako název oboru zadejte
Vyberte Přidat rozsah. Pokud byl obor zadán správně, je uvedený v podokně Zveřejnit rozhraní API .
Klonování nebo stažení ukázkové aplikace
Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip .
Pokud chcete ukázku naklonovat, otevřete příkazový řádek a přejděte do umístění, kam chcete projekt vytvořit, a zadejte následující příkaz:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Stáhněte soubor .zip. Extrahujte ho do cesty k souboru, kde délka názvu je menší než 260 znaků.
Konfigurace ukázkové aplikace ASP.NET Core
V integrovaném vývojovém prostředí otevřete složku projektu ms-identity-docs-code-dotnet/web-api obsahující ukázku.
Otevřete
appsettings.json
soubor, který obsahuje následující fragment kódu:{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "Scopes": "Forecast.Read" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
Vyhledejte následující
key
:ClientId
– Identifikátor aplikace, označovaný také jako klient.value
Nahraďte text v uvozovkách ID aplikace (klienta), které bylo zaznamenáno dříve ze stránky Přehled registrované aplikace.TenantId
– Identifikátor tenanta, ve kterém je aplikace zaregistrovaná.value
Nahraďte text v uvozovkách hodnotou ID adresáře (tenanta), která byla zaznamenána dříve ze stránky Přehled registrované aplikace.
Spuštění ukázkové aplikace
Spuštěním následujícího příkazu spusťte aplikaci:
dotnet run
Zobrazí se výstup podobný následujícímu příkladu:
... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Poznamenejte si číslo portu v
https://localhost:{port}
adrese URL.Pokud chcete ověřit, že je koncový bod chráněný, pomocí následujícího příkazu cURL v Bash odešlete neověřený požadavek HTTP GET v Bash:
curl -X GET https://localhost:5001/weatherforecast -ki
Očekávaná odpověď je 401 Neautorizováno s výstupem podobným:
user@host:~$ curl -X GET https://localhost:5001/weatherforecast -ki HTTP/2 401 date: Fri, 23 Sep 2023 23:34:24 GMT server: Kestrel www-authenticate: Bearer content-length: 0
Související obsah
- Postupy: Volání webového rozhraní API ASP.NET Core pomocí cURL
- Další informace o vytvoření tohoto webového rozhraní API od začátku pomocí následující řady – kurz: Registrace webového rozhraní API na platformě Microsoft Identity Platform