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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Visual Studio 2022. Stáhněte si Visual Studio zdarma.
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
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.
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
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á.
Přejděte na Identity>Applications> Registrace aplikací a vyberte Nová registrace.
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.U podporovaných typů účtů vyberte Účty v libovolném adresáři organizace.
Výběrem možnosti Registrovat aplikaci vytvořte.
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 ).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:- Jako název oboru zadejte
access_as_user
. - U Kdo může souhlasit, ujistěte se, že je vybraná možnost Správa a uživatelé.
- Do pole zobrazovaného názvu souhlasu Správa zadejte
Access TodoListService as a user
. - Do pole Správa popis souhlasu zadejte
Accesses the TodoListService web API as a user
. - Do pole Zobrazované jméno souhlasu uživatele zadejte
Access TodoListService as a user
. - Do pole Popis souhlasu uživatele zadejte
Accesses the TodoListService web API as a user
. - Pro stav ponechte povoleno.
- Jako název oboru zadejte
Vyberte Přidat rozsah.
Konfigurace projektu služby
Nakonfigurujte projekt služby tak, aby odpovídal registrovanému webovému rozhraní API.
Otevřete řešení v sadě Visual Studio a pak otevřete soubor appsettings.json v kořenovém adresáři projektu TodoListService.
Nahraďte hodnotu hodnotou
Enter_the_Application_Id_here
ID klienta (ID aplikace) z aplikace, kterou jste zaregistrovali na portáluClientID
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:
V kořenové složce projektu TodoListClient otevřete soubor app.config .
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:
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
Přejděte na Identity>Applications> Registrace aplikací a vyberte Nová registrace.
Vyberte Nová registrace.
Po otevření stránky Registrace aplikace zadejte informace o registraci vaší aplikace:
- V části Název zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace (například NativeClient-DotNet-TodoListClient).
- U podporovaných typů účtů vyberte Účty v libovolném adresáři organizace.
- Výběrem možnosti Registrovat aplikaci vytvořte.
Poznámka:
V souboru project app.config todoListClient je výchozí hodnota
ida:Tenant
nastavena nacommon
. 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.
Na stránce Přehled aplikace vyberte Ověřování a pak pomocí následujících kroků přidejte platformu:
- V části Konfigurace platformy vyberte tlačítko Přidat platformu.
- V případě mobilních a desktopových aplikací vyberte Mobilní a desktopové aplikace.
- U identifikátorů URI pro přesměrování zaškrtněte
https://login.microsoftonline.com/common/oauth2/nativeclient
políčko. - Vyberte Konfigurovat.
Vyberte oprávnění rozhraní API a pak dokončete tento postup pro přidání oprávnění:
- Vyberte tlačítko Přidat oprávnění.
- Vyberte kartu Moje rozhraní API.
- V seznamu rozhraní API vyberte appModelv2-NativeClient-DotNet-TodoListService API nebo název, který jste zadali pro webové rozhraní API.
- 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.
- Vyberte tlačítko Přidat oprávnění.
Konfigurace projektu
Nakonfigurujte projekt TodoListClient přidáním ID aplikace do souboru app.config .
Na portálu Registrace aplikací na stránce Přehled zkopírujte hodnotu ID aplikace (klienta).
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;
Klikněte pravým tlačítkem na řešení sady Visual Studio a vyberte Vlastnosti.
V části Společné vlastnosti vyberte Spouštěný projekt a pak více projektů po spuštění.
U obou projektů zvolte Spustit jako akci.
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.
Stisknutím klávesy F5 spusťte projekty. Otevře se stránka služby i desktopová aplikace.
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.
- Na portálu Registrace aplikací otevřete vlastnosti vaší aplikace TodoListService.
- V části Zveřejnit rozhraní API v části Autorizované klientské aplikace vyberte Přidat klientskou aplikaci.
- Do pole ID klienta vložte ID aplikace TodoListClient.
- V části Autorizované obory vyberte obor webového
api://<Application ID>/access_as_user
rozhraní API. - Vyberte Přidat aplikaci.
Spusťte projekt
- Stisknutím klávesy F5 spusťte projekt. Otevře se vaše aplikace TodoListClient.
- 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ů: