Rövid útmutató: Az Microsoft Identitásplatform által védett ASP.NET webes API meghívása
Üdvözöljük! Valószínűleg nem ez az a lap, amire számított. Amíg dolgozunk a javításon, ez a hivatkozás a megfelelő cikkre viszi:
Elnézést kérünk a kellemetlenségért, és köszönjük türelmét, amíg dolgozunk a probléma megoldásán.
Ebben a rövid útmutatóban letölthet és futtathat egy kódmintát, amely bemutatja, hogyan védhet meg egy ASP.NET webes API-t úgy, hogy az erőforrásokhoz való hozzáférést csak engedélyezett fiókokra korlátozza. A minta támogatja a személyes Microsoft-fiókok és -fiókok engedélyezését bármely Microsoft Entra-szervezetben.
A cikk egy Windows megjelenítési alaprendszer (WPF) alkalmazással is bemutatja, hogyan kérhet hozzáférési jogkivonatot egy webes API eléréséhez.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Visual Studio 2017 vagy 2019. Töltse le ingyenesen a Visual Studiót.
A minta klónozása vagy letöltése
A mintát kétféleképpen szerezheti be:
Klónozza a rendszerhéjból vagy a parancssorból:
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Tipp.
A Windows elérési úthossz-korlátozásai által okozott hibák elkerülése érdekében javasoljuk, hogy bontsa ki az archívumot, vagy klónozza az adattárat a meghajtó gyökeréhez közeli könyvtárba.
A webes API regisztrálása (TodoListService)
Regisztrálja a webes API-t Alkalmazásregisztrációk az Azure Portalon.
Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásként Rendszergazda istratorként.
Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
Új regisztráció kiválasztása.
Adja meg például
AppModelv2-NativeClient-DotNet-TodoListService
az alkalmazás nevét. Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja.Támogatott fióktípusok esetén válassza a Bármely szervezeti címtárban lévő Fiókok lehetőséget.
Válassza a Regisztráció elemet az alkalmazás létrehozásához.
Az Alkalmazás áttekintése lapon keresse meg az alkalmazás (ügyfél) azonosítójának értékét, majd jegyezze fel későbbi használatra. Ehhez konfigurálnia kell a Visual Studio konfigurációs fájlját ehhez a projekthez (azaz
ClientId
a TodoListService\Web.config fájlban).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 gombra kattintva, majd adja meg a következő adatokat:- A Hatókör neve mezőbe írja be a következőt
access_as_user
: - 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
Access TodoListService as a user
: - A Rendszergazda hozzájárulás leírási mezőjébe írja be a következőt
Accesses the TodoListService web API as a user
: - A Felhasználói hozzájárulás megjelenítendő név mezőjébe írja be a következőt
Access TodoListService as a user
: - A Felhasználói hozzájárulás leírás mezőjébe írja be a következőt
Accesses the TodoListService web API as a user
: - Állapot esetén hagyja engedélyezve.
- 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.
A szolgáltatásprojekt konfigurálása
Konfigurálja a szolgáltatásprojektet úgy, hogy megfeleljen a regisztrált webes API-nak.
Nyissa meg a megoldást a Visual Studióban, majd nyissa meg a Web.config fájlt a TodoListService projekt gyökerében.
Cserélje le a
ida:ClientId
paraméter értékét a Alkalmazásregisztrációk portálon regisztrált alkalmazás Ügyfélazonosító (Application ID) értékére.
Az új hatókör hozzáadása az app.config fájlhoz
Ha hozzá szeretné adni az új hatókört a TodoListClient app.config fájlhoz , kövesse az alábbi lépéseket:
A TodoListClient projekt gyökérmappájában nyissa meg az app.config fájlt.
Illessze be az alkalmazásazonosítót a TodoListService-projekthez regisztrált alkalmazásból a
TodoListServiceScope
paraméterbe, és cserélje le a sztringet{Enter the Application ID of your TodoListService from the app registration portal}
.
Feljegyzés
Győződjön meg arról, hogy az alkalmazásazonosító a következő formátumot használja: api://{TodoListService-Application-ID}/access_as_user
(hol {TodoListService-Application-ID}
található a TodoListService-alkalmazás alkalmazásazonosítóját képviselő GUID).
A webalkalmazás regisztrálása (TodoListClient)
Regisztrálja a TodoListClient alkalmazást Alkalmazásregisztrációk az Azure Portalon, majd konfigurálja a kódot a TodoListClient projektben. Ha az ügyfél és a kiszolgáló azonos alkalmazásnak minősül, a 2. lépésben regisztrált alkalmazást újra felhasználhatja. Használja ugyanazt az alkalmazást, ha azt szeretné, hogy a felhasználók személyes Microsoft-fiókkal jelentkezzenek be.
Az alkalmazás regisztrálása
A TodoListClient alkalmazás regisztrálásához kövesse az alábbi lépéseket:
Lépjen a Microsoft Identitásplatform fejlesztőknek Alkalmazásregisztrációk portálra.
Új regisztráció kiválasztása.
Amikor megnyílik az Alkalmazás regisztrálása lap , adja meg az alkalmazás regisztrációs adatait:
- A Név szakaszban adjon meg egy értelmes alkalmazásnevet, amely megjelenik az alkalmazás felhasználói számára (például NativeClient-DotNet-TodoListClient).
- Támogatott fióktípusok esetén válassza a Bármely szervezeti címtárban lévő Fiókok lehetőséget.
- Válassza a Regisztráció elemet az alkalmazás létrehozásához.
Feljegyzés
A TodoListClient project app.config fájlban az alapértelmezett érték
ida:Tenant
a következő.common
A lehetséges értékek a következők:common
: Munkahelyi vagy iskolai fiókkal vagy személyes Microsoft-fiókkal is bejelentkezhet (mivel az előző lépésben bármelyik szervezeti címtárban kiválasztotta a Fiókokat).organizations
: Munkahelyi vagy iskolai fiókkal jelentkezhet be.consumers
: Csak microsoftos személyes fiókkal jelentkezhet be.
Az alkalmazás áttekintési lapján válassza a Hitelesítés lehetőséget, majd hajtsa végre az alábbi lépéseket egy platform hozzáadásához:
- A Platformkonfigurációk területen válassza a Platform hozzáadása gombot.
- Mobil- és asztali alkalmazások esetén válassza a Mobil és asztali alkalmazások lehetőséget.
- Átirányítási URI-k esetén jelölje be a
https://login.microsoftonline.com/common/oauth2/nativeclient
jelölőnégyzetet. - Válassza a Konfigurálás lehetőséget.
Válassza ki az API-engedélyeket, majd végezze el az alábbi lépéseket az engedélyek hozzáadásához:
- Nyomja meg Az engedély hozzáadása gombot.
- Válassza a Saját API-k lapot.
- Az API-k listájában válassza az AppModelv2-NativeClient-DotNet-TodoListService API-t vagy a webes API-hoz megadott nevet.
- Jelölje be a access_as_user engedély jelölőnégyzetet, ha még nincs bejelölve. Szükség esetén használja a Keresőmezőt.
- Válassza az Engedélyek hozzáadása gombot.
A projekt konfigurálása
Konfigurálja a TodoListClient-projektet úgy, hogy hozzáadja az alkalmazásazonosítót az app.config fájlhoz .
Az Alkalmazásregisztrációk portál Áttekintés lapján másolja ki az alkalmazás (ügyfél) azonosítójának értékét.
A TodoListClient projekt gyökérmappájában nyissa meg az app.config fájlt, majd illessze be az alkalmazásazonosító értékét a
ida:ClientId
paraméterbe.
Projektek futtatása
Indítsa el mindkét projektet. Ha Visual Studio-t használ:
Kattintson a jobb gombbal a Visual Studio-megoldásra, és válassza a Tulajdonságok lehetőséget
A Közös tulajdonságok területen válassza az Indítási projekt, majd a Több indítási projekt lehetőséget.
Mindkét projektnél válassza a Start műveletet
Győződjön meg arról, hogy a TodoListService szolgáltatás először elindul, ha a felfelé mutató nyíllal a lista első helyére helyezi.
Jelentkezzen be a TodoListClient-projekt futtatásához.
Nyomja le az F5 billentyűt a projektek elindításához. Megnyílik a szolgáltatáslap, valamint az asztali alkalmazás.
A TodoListClient jobb felső részén válassza a Bejelentkezés lehetőséget, majd jelentkezzen be ugyanazokkal a hitelesítő adatokkal, amelyeket az alkalmazás regisztrálásához használt, vagy jelentkezzen be felhasználóként ugyanabban a könyvtárban.
Ha első alkalommal jelentkezik be, előfordulhat, hogy a rendszer kérni fogja, hogy járuljon hozzá a TodoListService webes API-hoz.
A TodoListService webes API eléréséhez és a teendőlista módosításához a bejelentkezés hozzáférési jogkivonatot is kér a access_as_user hatókörhöz.
Az ügyfélalkalmazás előzetes engedélyezése
Engedélyezheti más könyvtárak felhasználói számára, hogy hozzáférjenek a webes API-hoz, ha előzetesen engedélyezi az ügyfélalkalmazás számára a webes API elérését. Ezt úgy teheti meg, hogy hozzáadja az ügyfélalkalmazás alkalmazásazonosítóját a webes API-hoz előre engedélyezett alkalmazások listájához. Egy előre hitelesített ügyfél hozzáadásával lehetővé teszi, hogy a felhasználók hozzájárulás nélkül férhessenek hozzá a webes API-hoz.
- A Alkalmazásregisztrációk portálon nyissa meg a TodoListService alkalmazás tulajdonságait.
- Az API-k felfedése szakaszban, az Engedélyezett ügyfélalkalmazások területen válassza az Ügyfélalkalmazás hozzáadása lehetőséget.
- Az Ügyfélazonosító mezőbe illessze be a TodoListClient alkalmazás alkalmazásazonosítóját.
- Az Engedélyezett hatókörök szakaszban válassza ki a webes API hatókörét
api://<Application ID>/access_as_user
. - Válassza az Alkalmazás hozzáadása lehetőséget.
A projekt futtatása
- Nyomja le az F5 billentyűt a projekt futtatásához. Megnyílik a TodoListClient-alkalmazás.
- A jobb felső sarokban válassza a Bejelentkezés lehetőséget, majd jelentkezzen be személyes Microsoft-fiókkal, például live.com vagy hotmail.com fiókkal, illetve munkahelyi vagy iskolai fiókkal.
Nem kötelező: Bizonyos felhasználók bejelentkezési hozzáférésének korlátozása
Alapértelmezés szerint minden személyes fiók, például outlook.com vagy live.com fiókok, illetve a Microsoft Entra ID-val integrált szervezetek munkahelyi vagy iskolai fiókjai jogkivonatokat kérhetnek, és hozzáférhetnek a webes API-hoz.
Ha meg szeretné adni, hogy ki tud bejelentkezni az alkalmazásba, használja az alábbi lehetőségek egyikét:
1. lehetőség: Egyetlen szervezet (egyetlen bérlő) hozzáférésének korlátozása
Az alkalmazáshoz való bejelentkezési hozzáférést az egyetlen Microsoft Entra-bérlőben lévő felhasználói fiókokra korlátozhatja, beleértve az adott bérlő vendégfiókját is. Ez a forgatókönyv gyakori az üzletági alkalmazások esetében.
- Nyissa meg a App_Start\Startup.Auth fájlt, majd módosítsa annak a metaadat-végpontnak az értékét, amely a következőnek lett átadva
https://login.microsoftonline.com/{Tenant ID}/v2.0/.well-known/openid-configuration
OpenIdConnectSecurityTokenProvider
. A bérlő nevét is használhatja, példáulcontoso.onmicrosoft.com
. - Ugyanabban a fájlban állítsa a
ValidIssuer
tulajdonságot aTokenValidationParameters
következőrehttps://sts.windows.net/{Tenant ID}/
, és állítsa az argumentumot aValidateIssuer
következőretrue
.
2. lehetőség: Egyéni metódus használata a kiállítók ellenőrzéséhez
A paraméterrel egyéni metódust implementálhat a IssuerValidator
kiállítók érvényesítéséhez. Erről a paraméterről további információt a TokenValidationParameters osztályban talál.
Súgó és támogatás
Ha segítségre van szüksége, szeretne jelentést készíteni egy problémáról, vagy szeretne többet megtudni a támogatási lehetőségekről, olvassa el a súgót és a fejlesztők támogatását.
Következő lépések
További információ egy védett ASP.NET Core webes API létrehozásával a következő oktatóanyag-sorozatban: