Rychlý start: Volání webového rozhraní API ASP.NET chráněné platformou Microsoft Identity Platform

Následující rychlý start používá ukázku kódu, která ukazuje, jak chránit webové rozhraní API ASP.NET omezením přístupu k prostředkům na autorizované účty. Ukázka podporuje autorizaci osobních účtů Microsoft a účtů v jakékoli organizaci Microsoft Entra.

Článek také používá aplikaci WINDOWS Presentation Foundation (WPF) k předvedení, jak požádat přístupový token pro přístup k webovému rozhraní API.

Požadavky

Naklonování nebo stažení ukázky

Vzorový kód lze získat dvěma způsoby:

  • Naklonujte ho z prostředí nebo příkazového řádku:

    git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
    
  • Stáhněte si ho jako soubor ZIP.

Tip

Pokud se chcete vyhnout chybám způsobeným omezením délky cesty ve Windows, doporučujeme extrahovat archiv nebo klonovat úložiště do adresáře blízko kořenového adresáře jednotky.

Registrace webového rozhraní API (TodoListService)

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Zaregistrujte webové rozhraní API v Registrace aplikací na webu Azure Portal.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.

  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 na Identity>Applications> Registrace aplikací a vyberte Nová registrace.

  4. Zadejte název aplikace, například AppModelv2-NativeClient-DotNet-TodoListService. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.

  5. U podporovaných typů účtů vyberte Účty v libovolném adresáři organizace.

  6. Výběrem možnosti Registrovat aplikaci vytvořte.

  7. Na stránce Přehled aplikace vyhledejte hodnotu ID aplikace (klienta) a potom ji poznamenejte pro pozdější použití. Budete ho potřebovat ke konfiguraci konfiguračního souboru sady Visual Studio pro tento projekt (to znamená ClientId v souboru TodoListService\appsettings.json ).

  8. V části Spravovat vyberte Zveřejnit rozhraní API>Přidat obor. Přijměte navrhovaný identifikátor URI ID aplikace (api://{clientId}) tak , že vyberete Uložit a pokračovat a pak zadáte následující informace:

    1. Jako název oboru zadejte access_as_user.
    2. U Kdo může souhlasit, ujistěte se, že je vybraná možnost Správa a uživatelé.
    3. Do pole zobrazovaného názvu souhlasu Správa zadejte Access TodoListService as a user.
    4. Do pole Správa popis souhlasu zadejte Accesses the TodoListService web API as a user.
    5. Do pole Zobrazované jméno souhlasu uživatele zadejte Access TodoListService as a user.
    6. Do pole Popis souhlasu uživatele zadejte Accesses the TodoListService web API as a user.
    7. Pro stav ponechte povoleno.
  9. Vyberte Přidat rozsah.

Konfigurace projektu služby

Nakonfigurujte projekt služby tak, aby odpovídal registrovanému webovému rozhraní API.

  1. Otevřete řešení v sadě Visual Studio a pak otevřete soubor appsettings.json v kořenovém adresáři projektu TodoListService.

  2. Nahraďte hodnotu hodnotou Enter_the_Application_Id_here ID klienta (ID aplikace) z aplikace, kterou jste zaregistrovali na portálu ClientID Registrace aplikací jak ve vlastnostech, tak i ve vlastnostechAudience.

Přidání nového oboru do souboru app.config

Pokud chcete přidat nový obor do souboru TodoListClient app.config , postupujte takto:

  1. V kořenové složce projektu TodoListClient otevřete soubor app.config .

  2. Vložte ID aplikace z aplikace, kterou jste zaregistrovali pro projekt TodoListService v parametru TodoListServiceScope , a nahraďte {Enter the Application ID of your TodoListService from the app registration portal} řetězec.

Poznámka:

Ujistěte se, že ID aplikace používá následující formát: api://{TodoListService-Application-ID}/access_as_user (kde {TodoListService-Application-ID} je identifikátor GUID představující ID aplikace pro vaši aplikaci TodoListService).

Registrace webové aplikace (TodoListClient)

Zaregistrujte aplikaci TodoListClient v Registrace aplikací na webu Azure Portal a nakonfigurujte kód v projektu TodoListClient. Pokud se klient a server považují za stejnou aplikaci, můžete znovu použít aplikaci zaregistrovanou v kroku 2. Stejnou aplikaci použijte, pokud chcete, aby se uživatelé přihlásili pomocí osobního účtu Microsoft.

Registrace aplikace

Aplikaci TodoListClient zaregistrujete takto:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.

  2. Přejděte na Identity>Applications> Registrace aplikací a vyberte Nová registrace.

  3. Vyberte Nová registrace.

  4. Po otevření stránky Registrace aplikace zadejte informace o registraci vaší aplikace:

    1. V části Název zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace (například NativeClient-DotNet-TodoListClient).
    2. U podporovaných typů účtů vyberte Účty v libovolném adresáři organizace.
    3. Výběrem možnosti Registrovat aplikaci vytvořte.

    Poznámka:

    V souboru project app.config todoListClient je výchozí hodnota ida:Tenant nastavena na common. Možné hodnoty:

    • common: Můžete se přihlásit pomocí pracovního nebo školního účtu nebo osobního účtu Microsoft (protože jste vybrali účty v libovolném organizačním adresáři v předchozím kroku).
    • organizations: Můžete se přihlásit pomocí pracovního nebo školního účtu.
    • consumers: Přihlásit se můžete jenom pomocí osobního účtu Microsoft.
  5. Na stránce Přehled aplikace vyberte Ověřování a pak pomocí následujících kroků přidejte platformu:

    1. V části Konfigurace platformy vyberte tlačítko Přidat platformu.
    2. V případě mobilních a desktopových aplikací vyberte Mobilní a desktopové aplikace.
    3. U identifikátorů URI pro přesměrování zaškrtněte https://login.microsoftonline.com/common/oauth2/nativeclient políčko.
    4. Vyberte Konfigurovat.
  6. Vyberte oprávnění rozhraní API a pak dokončete tento postup pro přidání oprávnění:

    1. Vyberte tlačítko Přidat oprávnění.
    2. Vyberte kartu Moje rozhraní API.
    3. V seznamu rozhraní API vyberte appModelv2-NativeClient-DotNet-TodoListService API nebo název, který jste zadali pro webové rozhraní API.
    4. Pokud ještě není zaškrtnuté , zaškrtněte políčko access_as_user oprávnění. V případě potřeby použijte vyhledávací pole.
    5. Vyberte tlačítko Přidat oprávnění.

Konfigurace projektu

Nakonfigurujte projekt TodoListClient přidáním ID aplikace do souboru app.config .

  1. Na portálu Registrace aplikací na stránce Přehled zkopírujte hodnotu ID aplikace (klienta).

  2. Z kořenové složky projektu TodoListClient otevřete soubor app.config a pak do parametru ida:ClientId vložte hodnotu ID aplikace.

Spuštění projektů

Zahajte oba projekty. Pro uživatele sady Visual Studio;

  1. Klikněte pravým tlačítkem na řešení sady Visual Studio a vyberte Vlastnosti.

  2. V části Společné vlastnosti vyberte Spouštěný projekt a pak více projektů po spuštění.

  3. U obou projektů zvolte Spustit jako akci.

  4. Pomocí šipky nahoru se ujistěte, že služba TodoListService začne nejprve tím, že ji přesunete na první pozici v seznamu.

Přihlaste se a spusťte projekt TodoListClient.

  1. Stisknutím klávesy F5 spusťte projekty. Otevře se stránka služby i desktopová aplikace.

  2. V todoListClient v pravém horním rohu vyberte Přihlásit se a pak se přihlaste pomocí stejných přihlašovacích údajů, které jste použili k registraci aplikace, nebo se přihlaste jako uživatel ve stejném adresáři.

    Pokud se přihlašujete poprvé, může se zobrazit výzva k vyjádření souhlasu s webovým rozhraním API TodoListService.

    Pro usnadnění přístupu k webovému rozhraní API TodoListService a manipulaci se seznamem úkolů vyžaduje přihlášení také přístupový token do oboru access_as_user .

Předběžná autorizace klientské aplikace

Uživatelům z jiných adresářů můžete povolit přístup k webovému rozhraní API tak, že předem autorizujete klientskou aplikaci pro přístup k webovému rozhraní API. Uděláte to tak, že do seznamu předem autorizovaných aplikací pro webové rozhraní API přidáte ID aplikace z klientské aplikace. Přidáním předem autorizovaného klienta povolíte uživatelům přístup k webovému rozhraní API, aniž by museli poskytnout souhlas.

  1. Na portálu Registrace aplikací otevřete vlastnosti vaší aplikace TodoListService.
  2. V části Zveřejnit rozhraní API v části Autorizované klientské aplikace vyberte Přidat klientskou aplikaci.
  3. Do pole ID klienta vložte ID aplikace TodoListClient.
  4. V části Autorizované obory vyberte obor webového api://<Application ID>/access_as_user rozhraní API.
  5. Vyberte Přidat aplikaci.

Spusťte projekt

  1. Stisknutím klávesy F5 spusťte projekt. Otevře se vaše aplikace TodoListClient.
  2. V pravém horním rohu vyberte Přihlásit se a pak se přihlaste pomocí osobního účtu Microsoft, jako je live.com nebo hotmail.com účet nebo pracovní nebo školní účet.

Volitelné: Omezení přístupu k přihlášení určitým uživatelům

Ve výchozím nastavení můžou všechny osobní účty, jako jsou outlook.com nebo live.com účty, pracovní nebo školní účty z organizací, které jsou integrované s Id Microsoft Entra, požadovat tokeny a přistupovat k vašemu webovému rozhraní API.

Pokud chcete určit, kdo se může přihlásit k aplikaci, změňte TenantId vlastnost v souboru appsettings.json .

Nápověda a podpora

Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.

Další kroky

Další informace získáte vytvořením chráněného webového rozhraní API ASP.NET Core v následující sérii kurzů: