Sdílet prostřednictvím


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

Registrace identifikátorů aplikace a záznamů

Spropitné

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.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.

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

  3. Přejděte k aplikacím> identit>Registrace aplikací.

  4. Vyberte Nová registrace.

  5. Zadejte název aplikace, například NewWebAPI1.

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

  7. Vyberte Zaregistrovat.

    Snímek obrazovky znázorňující, jak zadat název a vybrat typ účtu

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

    Snímek obrazovky znázorňující hodnoty identifikátoru na stránce přehledu

Poznámka

Podporované typy účtů je možné změnit odkazem na úpravu účtů podporovaných aplikací.

Zveřejnění 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.

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

    1. Jako název oboru zadejte Forecast.Read.
    2. U možnosti Kdo může souhlasit, ujistěte se, že je vybraná možnost Správci a uživatelé .
    3. Do pole Zobrazovaný název souhlasu správce zadejte Read forecast data.
    4. Do pole Popis souhlasu správce zadejte Allows the application to read weather forecast data.
    5. Do pole Zobrazované jméno souhlasu uživatele zadejte Read forecast data.
    6. Do pole Popis souhlasu uživatele zadejte Allows the application to read weather forecast data.
    7. Ujistěte se, že je stav nastavený na Povoleno.
  2. Vyberte Přidat obor. Pokud byl obor zadán správně, je uvedený v podokně Zveřejnit rozhraní API .

    Snímek obrazovky znázorňující hodnoty polí při přidávání oboru do 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

  1. V integrovaném vývojovém prostředí otevřete složku projektu ms-identity-docs-code-dotnet/web-api obsahující ukázku.

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

  1. Spuštěním následujícího příkazu spusťte aplikaci:

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

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