Sdílet prostřednictvím


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 ze svého shellu nebo příkazového řádku:

    git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
    
  • Stáhnout jako soubor ZIP.

Spropitné

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)

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

  1. Přihlaste se do centra pro správu Microsoft Entra alespoň jako správce cloudových aplikací.

  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.

  3. Přejděte na Identita>Aplikace>Registrace aplikací a vyberte Nová registrace.

  4. Zadejte název pro vaši aplikaci, 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. Vyberte Zaregistrovat a vytvořte aplikaci.

  7. Na stránce Přehled aplikace vyhledejte hodnotu ID aplikace (klienta) a poznamenejte si ji 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 todoListService\appsettings.jsv souboru).

  8. V části Spravovatvyberte 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čovata pak zadáte následující informace:

    1. Jako název oboruzadejte access_as_user.
    2. V části Kdo může udělit souhlasse ujistěte, že je vybrána možnost Administrátoři a uživatelé.
    3. Do pole zobrazovaného jména souhlasu správce zadejte Access TodoListService as a user.
    4. Do pole popis souhlasu správce zadejte Accesses the TodoListService web API as a user.
    5. Do pole Zobrazovaný název 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 Stavponechte povoleno.
  9. Vyberte Přidat obor.

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. Hodnotu Enter_the_Application_Id_here nahraďte hodnotou ID klienta (ID aplikace) z aplikace, kterou jste zaregistrovali na portálu Portal ve vlastnostech ClientID i Audience.

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

Chcete-li 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. Do parametru TodoListServiceScope vložte ID aplikace z aplikace, kterou jste zaregistrovali pro projekt TodoListService a nahraďte řetězec {Enter the Application ID of your TodoListService from the app registration portal}.

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 pak 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 alespoň jako Správce cloudových aplikací.

  2. Přejděte na Identity>Applications>App registrations a zvolte možnost Nová registrace.

  3. Vyberte Nová registrace.

  4. Když se otevře stránka Zaregistrovat aplikaci, 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. Vyberte Zaregistrovat a vytvořte aplikaci.

    Poznámka

    V souboru projektu TodoListClient app.config 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 adresáři organizace v předchozím kroku).
    • organizations: Můžete se přihlásit pomocí pracovního nebo školního účtu.
    • consumers: Můžete se přihlásit jenom pomocí osobního účtu Microsoft.
  5. Na stránce Přehled aplikace vyberte Ověřovánía pak pomocí těchto kroků přidejte platformu:

    1. V části Konfigurace platformyvyberte tlačítko Přidat platformu.
    2. Pro Mobilní a desktopové aplikacevyberte možnost Mobilní a desktopové aplikace.
    3. Pro identifikátory přesměrování URI zaškrtněte políčko https://login.microsoftonline.com/common/oauth2/nativeclient.
    4. Vyberte Konfigurovat.
  6. Vyberte oprávnění rozhraní APIa dokončete následující kroky 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. Zaškrtněte políčko pro oprávnění access_as_user, pokud ještě není zaškrtnuté. 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 (klienta) aplikace.

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

Řiďte své projekty

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 společné vlastnosti vyberte spouštěný projekt a poté více projektů spuštění.

  3. U obou projektů zvolte jako akci Spustit.

  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 sea 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 aplikace TodoListService.
  2. V části Zveřejnit rozhraní API v části Autorizované klientské aplikacevyberte Přidat klientskou aplikaci.
  3. Do pole ID klienta vložte ID aplikace TodoListClient.
  4. V části Autorizované obory vyberte obor webového rozhraní API api://<Application ID>/access_as_user.
  5. Vyberte Přidataplikace .

Spusťte svůj 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 sea 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í integrovaných s Microsoft Entra ID 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ěnou vlastnosti TenantId 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ů: