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 8.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 možnosti Kdo může souhlasit, ujistěte se, že je vybraná možnost Správci a uživatelé .
- Do pole Zobrazovaný název souhlasu správce zadejte
Read forecast data
. - Do pole Popis souhlasu správce 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: http://localhost:{port} ...
Poznamenejte si číslo portu v
http://localhost:{port}
adrese URL.Pokud chcete ověřit, že je koncový bod chráněný, aktualizujte základní adresu URL v následujícím příkazu cURL tak, aby odpovídala adrese URL, kterou jste obdrželi v předchozím kroku, a pak spusťte příkaz:
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
Další kroky
V dalším článku se dozvíte, jak volat chráněné webové rozhraní API pomocí cURL.