Rövid útmutató: A ASP.NET Core webes API védelme a Microsoft Identitásplatform
Ez a rövid útmutató egy ASP.NET Core webes API-kódmintával mutatja be, hogyan korlátozhatja az erőforrások hozzáférését a jogosult fiókokhoz. A minta ASP.NET Core Identity-t használ, amely a Microsoft Authentication Library (MSAL) használatával kezeli a hitelesítést.
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók. Ha még nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot.
- A .NET 6.0 SDK minimális követelménye
- Visual Studio 2022 vagy Visual Studio Code
Az alkalmazás és a rekordazonosítók regisztrálása
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
A regisztráció befejezéséhez adjon meg egy nevet az alkalmazásnak, és adja meg a támogatott fióktípusokat. A regisztrációt követően az alkalmazás áttekintési oldala megjeleníti az alkalmazás forráskódjában szükséges azonosítókat.
Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásfejlesztőként.
Ha több bérlőhöz is hozzáfér, a felső menü Gépház ikonjávalválthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
Új regisztráció kiválasztása.
Adja meg az alkalmazás nevét, például a NewWebAPI1 nevet.
Támogatott fióktípusok esetén csak ebben a szervezeti címtárban válassza a Fiókok lehetőséget. A különböző fióktípusokra vonatkozó információkért válassza a Súgó kiválasztása lehetőséget.
Válassza ki a pénztárgépet.
A regisztráció befejezésekor megjelenik az alkalmazás Áttekintés panelje. Jegyezze fel a címtár (bérlő) azonosítóját és az alkalmazás forráskódjában használandó alkalmazás-(ügyfél-) azonosítót .
Feljegyzés
A támogatott fióktípusok módosíthatók az alkalmazás által támogatott fiókok módosításával.
API közzététele
Az API regisztrálása után konfigurálhatja annak engedélyét az API által az ügyfélalkalmazások számára elérhetővé tott hatókörök meghatározásával. Az ügyfélalkalmazások engedélyt kérnek a műveletek végrehajtására azáltal, hogy átadnak egy hozzáférési jogkivonatot a kérésekkel együtt a védett webes API-nak. A webes API ezután csak akkor hajtja végre a kért műveletet, ha a kapott hozzáférési jogkivonat tartalmazza a szükséges hatóköröket.
A Kezelés területen válassza az API-k> hatókör hozzáadása lehetőséget. Fogadja el a javasolt alkalmazásazonosító URI-ját
(api://{clientId})
a Mentés és folytatás lehetőség kiválasztásával. Ez{clientId}
az Áttekintés lapról rögzített érték. Ezután adja meg a következő adatokat:- A Hatókör neve mezőbe írja be a következőt
Forecast.Read
: - A Ki tud hozzájárulni, győződjön meg arról, hogy a Rendszergazda és a felhasználók lehetőség van kiválasztva.
- A Rendszergazda hozzájárulás megjelenítendő neve mezőbe írja be a következőt
Read forecast data
: - A Rendszergazda hozzájárulás leírási mezőjébe írja be a következőt
Allows the application to read weather forecast data
: - A Felhasználói hozzájárulás megjelenítendő név mezőjébe írja be a következőt
Read forecast data
: - A Felhasználói hozzájárulás leírás mezőjébe írja be a következőt
Allows the application to read weather forecast data
: - Győződjön meg arról, hogy az állapot engedélyezve van.
- A Hatókör neve mezőbe írja be a következőt
Válassza a Hatókör hozzáadása lehetőséget. Ha a hatókör helyesen lett megadva, az API-t közzétenő panelen jelenik meg.
A mintaalkalmazás klónozása vagy letöltése
A mintaalkalmazás beszerzéséhez klónozhatja a GitHubról, vagy letöltheti .zip fájlként.
A minta klónozásához nyisson meg egy parancssort, és keresse meg a projektet, és írja be a következő parancsot:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Töltse le a .zip fájlt. Bontsa ki egy fájl elérési útjára, ahol a név hossza kevesebb, mint 260 karakter.
A ASP.NET Core mintaalkalmazás konfigurálása
Az IDE-ben nyissa meg a mintát tartalmazó ms-identity-docs-code-dotnet/web-api projektmappát.
Nyissa meg
appsettings.json
a fájlt, amely a következő kódrészletet tartalmazza:{ "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": "*" }
Keresse meg a következőket
key
:ClientId
- Az alkalmazás azonosítója, más néven az ügyfél. Cserélje le azvalue
idézőjelek szövegét a regisztrált alkalmazás Áttekintés lapján korábban rögzített alkalmazás-(ügyfél-) azonosítóra.TenantId
- Annak a bérlőnek az azonosítója, ahol az alkalmazás regisztrálva van. Cserélje le azvalue
idézőjelek szövegét a címtár (bérlő) azonosítójának korábban rögzített értékére a regisztrált alkalmazás Áttekintés lapján.
A mintaalkalmazás futtatása
Az alkalmazás elindításához hajtsa végre a következő parancsot:
dotnet run
Megjelenik egy kimenet, mint a következő minta:
... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Jegyezze fel a portszámot az
https://localhost:{port}
URL-címben.A végpont védelmének ellenőrzéséhez használja a következő cURL-parancsot a Bashben egy hitelesítés nélküli HTTP GET-kérés küldéséhez a Bashben:
curl -X GET https://localhost:5001/weatherforecast -ki
A várt válasz 401 Nem engedélyezett a következőhöz hasonló kimenettel:
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
Kapcsolódó tartalom
- Útmutató: ASP.NET Core webes API meghívása cURL használatával
- További információ a webes API alapoktól való létrehozásával a következő sorozattal – Oktatóanyag: Webes API regisztrálása a Microsoft Identitásplatform