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:

Rövid útmutató: Védett ASP.NET webes API meghívása

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

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
    
  • Töltse le ZIP-fájlként.

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.

  1. Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásként Rendszergazda istratorként.

  2. Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.

  3. Új regisztráció kiválasztása.

  4. Adja meg például AppModelv2-NativeClient-DotNet-TodoListServiceaz 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.

  5. Támogatott fióktípusok esetén válassza a Bármely szervezeti címtárban lévő Fiókok lehetőséget.

  6. Válassza a Regisztráció elemet az alkalmazás létrehozásához.

  7. 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).

  8. 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:

    1. A Hatókör neve mezőbe írja be a következőt access_as_user:
    2. 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.
    3. A Rendszergazda hozzájárulás megjelenítendő neve mezőbe írja be a következőtAccess TodoListService as a user:
    4. A Rendszergazda hozzájárulás leírási mezőjébe írja be a következőtAccesses the TodoListService web API as a user:
    5. A Felhasználói hozzájárulás megjelenítendő név mezőjébe írja be a következőtAccess TodoListService as a user:
    6. A Felhasználói hozzájárulás leírás mezőjébe írja be a következőtAccesses the TodoListService web API as a user:
    7. Állapot esetén hagyja engedélyezve.
  9. 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.

  1. Nyissa meg a megoldást a Visual Studióban, majd nyissa meg a Web.config fájlt a TodoListService projekt gyökerében.

  2. 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:

  1. A TodoListClient projekt gyökérmappájában nyissa meg az app.config fájlt.

  2. 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:

  1. Lépjen a Microsoft Identitásplatform fejlesztőknek Alkalmazásregisztrációk portálra.

  2. Új regisztráció kiválasztása.

  3. Amikor megnyílik az Alkalmazás regisztrálása lap , adja meg az alkalmazás regisztrációs adatait:

    1. 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).
    2. Támogatott fióktípusok esetén válassza a Bármely szervezeti címtárban lévő Fiókok lehetőséget.
    3. 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.
  4. 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:

    1. A Platformkonfigurációk területen válassza a Platform hozzáadása gombot.
    2. Mobil- és asztali alkalmazások esetén válassza a Mobil és asztali alkalmazások lehetőséget.
    3. Átirányítási URI-k esetén jelölje be a https://login.microsoftonline.com/common/oauth2/nativeclient jelölőnégyzetet.
    4. Válassza a Konfigurálás lehetőséget.
  5. Válassza ki az API-engedélyeket, majd végezze el az alábbi lépéseket az engedélyek hozzáadásához:

    1. Nyomja meg Az engedély hozzáadása gombot.
    2. Válassza a Saját API-k lapot.
    3. Az API-k listájában válassza az AppModelv2-NativeClient-DotNet-TodoListService API-t vagy a webes API-hoz megadott nevet.
    4. 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.
    5. 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 .

  1. 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.

  2. 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:

  1. Kattintson a jobb gombbal a Visual Studio-megoldásra, és válassza a Tulajdonságok lehetőséget

  2. 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.

  3. Mindkét projektnél válassza a Start műveletet

  4. 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.

  1. Nyomja le az F5 billentyűt a projektek elindításához. Megnyílik a szolgáltatáslap, valamint az asztali alkalmazás.

  2. 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.

  1. A Alkalmazásregisztrációk portálon nyissa meg a TodoListService alkalmazás tulajdonságait.
  2. 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.
  3. Az Ügyfélazonosító mezőbe illessze be a TodoListClient alkalmazás alkalmazásazonosítóját.
  4. Az Engedélyezett hatókörök szakaszban válassza ki a webes API hatókörétapi://<Application ID>/access_as_user.
  5. Válassza az Alkalmazás hozzáadása lehetőséget.

A projekt futtatása

  1. Nyomja le az F5 billentyűt a projekt futtatásához. Megnyílik a TodoListClient-alkalmazás.
  2. 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.

  1. 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 átadvahttps://login.microsoftonline.com/{Tenant ID}/v2.0/.well-known/openid-configurationOpenIdConnectSecurityTokenProvider. A bérlő nevét is használhatja, például contoso.onmicrosoft.com.
  2. Ugyanabban a fájlban állítsa a ValidIssuer tulajdonságot a TokenValidationParameters következőre https://sts.windows.net/{Tenant ID}/, és állítsa az argumentumot a ValidateIssuer következőre true.

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: