Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
A munkaerő-bérlők
Külső bérlők (további információ)
Ez az oktatóanyag egy sorozat utolsó része, amely egy Microsoft Entra-bérlőben regisztrált védett webes API felépítését és tesztelését mutatja be. A sorozat 1. részében létrehozott egy ASP.NET Core webes API-t, és védte annak végpontjait. Most létrehoz egy egyszerűsített démonalkalmazást, regisztrálja azt a bérlőjében, és a démonalkalmazással teszteli a létrehozott webes API-t.
Ebben az útmutatóban Ön:
- Démonalkalmazás regisztrálása
- Alkalmazásszerepkör hozzárendelése a démonalkalmazáshoz
- A démonalkalmazás létrehozása
- A démonalkalmazás futtatása a védett webes API meghívásához
Előfeltételek
- Ha még nem tette meg, végezze el az oktatóanyagot: ASP.NET Core webes API létrehozása és védelme a Microsoft identitásplatformjával
A démonalkalmazás regisztrálása
Az alábbi lépések bemutatják, hogyan regisztrálhatja démonalkalmazását a Microsoft Entra Felügyeleti központban:
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ü Beállítások ikonjával
válthat a külső bérlőre a Könyvtárak + előfizetések menüből.Keresse meg az Entra-azonosítós>alkalmazásregisztrációkat.
Válassza az + Új regisztráció lehetőséget.
A megjelenő Alkalmazás regisztrálása lapon 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 ciam-client-app.
A Támogatott fióktípusok csoportban válassza a Csak ebben a szervezeti címtárban lévő Fiókok lehetőséget.
Válassza a Regisztráció lehetőséget.
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 .
Hozzon létre egy ügyfélkulcsot a regisztrált alkalmazáshoz. Az alkalmazás az ügyféltitokkal igazolja identitását, amikor tokeneket kér.
- Az Alkalmazásregisztrációk lapon válassza ki a létrehozott alkalmazást (például a webalkalmazás titkos kódját) az Áttekintés lap megnyitásához.
- A Kezelés területen válassza a Tanúsítványok és titkok>Ügyféltitkok>Új ügyféltitok.
- A Leírás mezőbe írja be az ügyfél titkos kódjának leírását (például webalkalmazás ügyfélkódját).
- A Lejáratok csoportban válassza ki azt az időtartamot, amelyre érvényes a titkos kód (a szervezet biztonsági szabályai szerint), majd válassza a Hozzáadás lehetőséget.
- Jegyezze fel a titkos kód értékét. Ezt az értéket egy későbbi lépésben konfigurálhatja. A titkos kulcs értéke nem jelenik meg újra, és semmilyen módon nem lesz lekérthető, miután eltávolodik a tanúsítványoktól és titkos kódoktól. Győződjön meg róla, hogy rögzíti.
Alkalmazásszerepkör hozzárendelése a démonalkalmazáshoz
Azok az alkalmazások, amelyek felhasználó nélkül hitelesítik magukat, alkalmazásengedélyeket (más néven szerepköröket) igényelnek. Ezek az engedélyek lehetővé teszik, hogy az alkalmazás közvetlenül hozzáférjen az erőforrásokhoz. Ha viszont egy bejelentkezett felhasználóval tesztelnénk az API-t, delegált engedélyeket (hatóköröket) rendelnénk hozzá. A delegált engedélyek lehetővé teszik, hogy az alkalmazás a felhasználó nevében járjon el, a felhasználó hozzáférési jogaira korlátozva. Az alábbi lépéseket követve rendeljen alkalmazásengedélyeket a démonalkalmazáshoz:
Az Alkalmazásregisztrációk lapon válassza ki a létrehozott alkalmazást, például a ciam-client-app alkalmazást.
A Kezelés területen válassza ki az API-engedélyeket.
A Konfigurált engedélyek csoportban válassza az Engedély hozzáadása lehetőséget.
Válassza ki a szervezet által használt API-kat .
Az API-k listájában válassza ki az API-t, például a ciam-ToDoList-api-t.
Válassza az Alkalmazásengedélyek lehetőséget. Ezt a lehetőséget választjuk, mivel az alkalmazás önmagában jelentkezik be, de nem egy felhasználó nevében.
Az engedélyek listájában válassza a TodoList.Read.All, a ToDoList.ReadWrite.All elemet (szükség esetén használja a keresőmezőt).
Válassza az Engedélyek hozzáadása gombot.
Ezen a ponton helyesen rendelte hozzá az engedélyeket. Mivel azonban a démonalkalmazás nem teszi lehetővé a felhasználók számára az interakciót, maguk a felhasználók nem járulhatnak hozzá ezekhez az engedélyekhez. A probléma megoldásához Önnek, mint rendszergazdának hozzá kell adnia ezeket az engedélyeket a bérlő összes felhasználója nevében:
- Válassza a rendszergazdai hozzájárulás megadása a bérlő nevének< megadását>, majd válassza az Igen lehetőséget.
- Válassza a Frissítés lehetőséget, majd ellenőrizze, hogy a bérlő nevének< megadása > mindkét engedély állapotában megjelenik-e.
Démonalkalmazás létrehozása
Inicializáljon egy .NET-konzolalkalmazást, és keresse meg a gyökérmappáját:
dotnet new console -o MyTestApp cd MyTestAppTelepítse MSAL.NET a hitelesítés kezeléséhez az alábbi parancs futtatásával:
dotnet add package Microsoft.Identity.ClientFuttassa az API-projektet, és jegyezze fel azt a portot, amelyen fut.
Nyissa meg a Program.cs fájlt, és cserélje le a "Hello world" kódot a következő kódra.
using System; using System.Net.Http; using System.Net.Http.Headers; HttpClient client = new HttpClient(); var response = await client.GetAsync("http://localhost:<your-api-port>/api/todolist); Console.WriteLine("Your response is: " + response.StatusCode);Lépjen a démon alkalmazás gyökérkönyvtárába, és futtassa az alkalmazást a paranccsal
dotnet run. Ez a kód hozzáférési jogkivonat nélkül küld egy kérést. A következő karakterláncnak kell megjelennie a konzolban: A válasz: Jogosulatlan.Távolítsa el a 4. lépésben található kódot, és cserélje le az alábbira az API teszteléséhez egy érvényes hozzáférési jogkivonattal rendelkező kérés elküldésével. Ez a démonalkalmazás az ügyfél hitelesítő adatainak folyamatával szerez be egy hozzáférési jogkivonatot, miközben felhasználói beavatkozás nélkül hitelesít.
using Microsoft.Identity.Client; using System; using System.Net.Http; using System.Net.Http.Headers; HttpClient client = new HttpClient(); var clientId = "<your-daemon-app-client-id>"; var clientSecret = "<your-daemon-app-secret>"; var scopes = new[] {"api://<your-web-api-application-id>/.default"}; var tenantId = "<your-tenant-id>"; //Use in workforce tenant configuration var tenantName = "<your-tenant-name>"; //Use in external tenant configuration var authority = $"https://login.microsoftonline.com/{tenantId}"; // Use "https://{tenantName}.ciamlogin.com" for external tenant configuration var app = ConfidentialClientApplicationBuilder .Create(clientId) .WithAuthority(authority) .WithClientSecret(clientSecret) .Build(); var result = await app.AcquireTokenForClient(new string[] { scopes }).ExecuteAsync(); Console.WriteLine($"Access Token: {result.AccessToken}"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); var response = await client.GetAsync("http://localhost:/<your-api-port>/api/todolist"); var content = await response.Content.ReadAsStringAsync(); Console.WriteLine("Your response is: " + response.StatusCode); Console.WriteLine(content);Cserélje le a kód helyőrzőit a démonalkalmazás ügyfél-azonosítójára, titkos kódjára, webes API-alkalmazásazonosítójára és bérlőnevére.
- Külső bérlők esetén használja a jogosultságot az alábbi formában:
"https://{tenantName}.ciamlogin.com/" - A munkaerő-bérlők esetében használja a hatóságot az alábbi formában:
"https://login.microsoftonline.com/{tenantId}"
- Külső bérlők esetén használja a jogosultságot az alábbi formában:
Lépjen a démon alkalmazás gyökérkönyvtárába, és futtassa az alkalmazást a paranccsal
dotnet run. Ez a kód egy érvényes hozzáférési jogkivonattal rendelkező kérést küld. A következő sztringnek kell megjelennie: Válasza: OK a konzolon.