Použití proxy aplikací Microsoft Entra k zajištění zabezpečeného přístupu k aplikačnímu programovacímu rozhraní (API) hostovaným v privátním cloudu nebo místně
Obchodní logika se často nachází v privátním aplikačním programovacím rozhraní (API). Rozhraní API běží místně nebo v privátním cloudu. Vaše nativní aplikace pro Android, iOS, Mac nebo Windows musí komunikovat s koncovými body rozhraní API, aby bylo možné používat data nebo poskytovat interakci uživatelů. Proxy aplikací Microsoft Entra a knihovna MICROSOFT Authentication Library (MSAL) umožňují vašim nativním aplikacím zabezpečený přístup k rozhraním API privátního cloudu. Proxy aplikací Microsoft Entra je rychlejší a bezpečnější řešení než otevírání portů brány firewall a řízení ověřování a autorizace ve vrstvě aplikace.
Tip
Místní prostředí je starší termín, který se datuje do doby, kdy byly fyzické servery umístěny v prostorách firemní kanceláře. Mnoho úloh hostovaných v místním prostředí teď běží na virtuálním počítači v datacentru. Termín místní a privátní cloud se používá zaměnitelně.
Tento článek vás provede nastavením řešení proxy aplikací Microsoft Entra pro hostování služby webového rozhraní API, ke které mají nativní aplikace přístup.
Přehled
Následující diagram znázorňuje tradiční způsob publikování místních rozhraní API. Tento přístup vyžaduje otevření příchozích portů 80 a 443.
Následující diagram ukazuje, jak pomocí proxy aplikace Microsoft Entra bezpečně publikovat rozhraní API bez otevření příchozích portů:
Proxy aplikace Microsoft Entra tvoří páteř řešení, pracuje jako veřejný koncový bod pro přístup k rozhraní API a poskytuje ověřování a autorizaci. K rozhraním API můžete přistupovat z rozsáhlé škály platforem pomocí knihoven Knihovny MSAL (Microsoft Authentication Library).
Vzhledem k tomu, že ověřování a autorizace proxy aplikací Microsoft Entra jsou založené na ID Microsoft Entra, můžete pomocí podmíněného přístupu Microsoft Entra zajistit, že k rozhraním API publikovaným prostřednictvím proxy aplikací můžou přistupovat jenom důvěryhodná zařízení. Použijte připojení k Microsoft Entra nebo hybridní připojení Microsoft Entra pro stolní počítače a Intune Managed for devices. Můžete také využít funkce Microsoft Entra ID P1 nebo P2, jako je vícefaktorové ověřování Microsoft Entra, a zabezpečení microsoft Entra ID Protection založené na strojovém učení.
Požadavky
Pokud chcete postupovat podle tohoto návodu, potřebujete:
- Přístup správce k adresáři Azure pomocí účtu, který může vytvářet a registrovat aplikace
- Ukázkové webové rozhraní API a nativní klientské aplikace z knihovny Microsoft Authentication Library (MSAL)
Publikování rozhraní API prostřednictvím proxy aplikací
Pokud chcete publikovat rozhraní API mimo intranet prostřednictvím proxy aplikací, postupujte podle stejného vzoru jako při publikování webových aplikací. Další informace naleznete v tématu Kurz: Přidání místní aplikace pro vzdálený přístup prostřednictvím proxy aplikací v Microsoft Entra ID.
Publikování webového rozhraní API SecretAPI prostřednictvím proxy aplikace:
Sestavte a publikujte ukázkový projekt SecretAPI jako webovou aplikaci ASP.NET na místním počítači nebo intranetu. Ujistěte se, že máte přístup k webové aplikaci místně.
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce aplikací.
Přejděte k podnikovým aplikacím> identit.>
V horní části stránky Podnikové aplikace – Všechny aplikace vyberte Nová aplikace.
Na stránce Procházet galerii Microsoft Entra vyhledejte oddíl Místní aplikace a vyberte Přidat místní aplikaci. Zobrazí se stránka Přidat vlastní místní aplikaci .
Pokud nemáte nainstalovaný privátní síťový konektor, zobrazí se výzva k jeho instalaci. Vyberte Stáhnout privátní síťový konektor a stáhněte a nainstalujte konektor.
Přidejte informace na stránce Přidat vlastní místní aplikaci .
Vedle názvu zadejte SecretAPI.
Vedle interní adresy URL zadejte adresu URL, kterou používáte pro přístup k rozhraní API z intranetu.
Ujistěte se, že je předběžné ověřování nastavené na Microsoft Entra ID.
Vyberte Vytvořit a počkejte, až se aplikace vytvoří.
Na stránce Podnikové aplikace – Všechny aplikace vyberte aplikaci SecretAPI.
Na stránce SecretAPI – Přehled vyberte v levém navigačním panelu vlastnosti.
Nechcete, aby rozhraní API byla dostupná koncovým uživatelům na panelu Moje aplikace, takže v dolní části stránky Vlastnosti nastavte možnost Zobrazit pro uživatele na Ne a pak vyberte Uložit.
Webové rozhraní API je nyní publikováno prostřednictvím proxy aplikací Microsoft Entra. Dále přidejte uživatele, kteří mají přístup k aplikaci.
Na stránce SecretAPI – Přehled vyberte v levém navigačním panelu uživatele a skupiny.
Na stránce Uživatelé a skupiny vyberte Přidat uživatele.
Na stránce Přidat přiřazení vyberte Uživatelé a skupiny.
Na stránce Uživatelé a skupiny vyhledejte a vyberte uživatele, kteří mají přístup k aplikaci, včetně alespoň sebe. Po výběru všech uživatelů vyberte Vybrat.
Zpět na stránce Přidat zadání vyberte Přiřadit.
Poznámka:
Rozhraní API, která používají integrované ověřování systému Windows, můžou vyžadovat další kroky.
Registrace nativní aplikace a udělení přístupu k rozhraní API
Nativní aplikace jsou programy vyvinuté pro použití na konkrétní platformě nebo zařízení. Než se vaše nativní aplikace může připojit a získat přístup k rozhraní API, musíte ji zaregistrovat v Microsoft Entra ID. Následující kroky ukazují, jak zaregistrovat nativní aplikaci a udělit jí přístup k webovému rozhraní API, které jste publikovali prostřednictvím proxy aplikací.
Registrace nativní aplikace AppProxyNativeAppSample:
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce aplikací.
Přejděte k podnikovým aplikacím>> identit>Registrace aplikací.
Vyberte Nová registrace.
Zadejte informace na stránce Registrace aplikace .
V části Název zadejte AppProxyNativeAppSample.
V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři (pouze Contoso – Jeden tenant).
V části Adresa URL pro přesměrování vyberte veřejný klient nebo nativní (mobilní &desktop) a pak zadejte *https://login.microsoftonline.com/common/oauth2/nativeclient *.
Vyberte Zaregistrovat a počkejte, až se aplikace úspěšně zaregistruje.
Aplikace AppProxyNativeAppSample
je teď zaregistrovaná v Microsoft Entra ID. Dejte nativní aplikaci přístup k webovému SecretAPI
rozhraní API:
Na stránce Registrace aplikací vyberte aplikaci AppProxyNativeAppSample.
Na stránce AppProxyNativeAppSample vyberte v levém navigačním panelu oprávnění rozhraní API.
Na stránce oprávnění rozhraní API vyberte Přidat oprávnění.
Na první stránce oprávnění rozhraní API požadavku vyberte rozhraní API, která moje organizace používá , a pak vyhledejte a vyberte SecretAPI.
Na další stránce Oprávnění rozhraní API požadavku zaškrtněte políčko vedle user_impersonation a pak vyberte Přidat oprávnění.
Zpátky na stránce oprávnění rozhraní API můžete pro Společnost Contoso vybrat udělení souhlasu správce, abyste ostatním uživatelům zabránili v individuálním souhlasu s aplikací.
Konfigurace kódu nativní aplikace
Posledním krokem je konfigurace nativní aplikace. Kód se musí přidat do Form1.cs
souboru v NativeClient
ukázkové aplikaci. Kód k získání tokenu používá knihovnu MSAL. Token požádá o volání rozhraní API a připojí ho k hlavičce v požadavku. Token je připojen jako nosný certifikát. Další informace o knihovně MSAL naleznete v tématu Přidání knihovny MSAL do projektu a přidání odkazu na knihovnu MSAL.
V Form1.cs přidejte obor názvů
using Microsoft.Identity.Client;
do kódu.Upravte nativní kód aplikace v kontextu ověřování knihovny MSAL (Microsoft Authentication Library), aby zahrnoval tuto přizpůsobenou ukázku kódu.
Nakonfigurujte nativní aplikaci tak, aby se připojila k ID Microsoft Entra a volala rozhraní API pomocí proxy aplikací. Potom aktualizujte zástupné hodnoty v App.config
souboru NativeClient sample app
hodnot z Microsoft Entra ID.
Do pole vložte ID adresáře (tenanta
<add key="ida:Tenant" value="" />
). Tuto hodnotu (GUID) najdete a zkopírujete ze stránky Přehled některé z vašich aplikací.Do pole vložte ID aplikace AppProxyNativeAppSample (klient).
<add key="ida:ClientId" value="" />
Tuto hodnotu (GUID) najdete a zkopírujete ze stránky Přehled appProxyNativeAppSample v levém navigačním panelu v části Spravovat.Do pole vložte identifikátor URI
<add key="ida:RedirectUri" value="" />
přesměrování AppProxyNativeAppSample. Tuto hodnotu (identifikátor URI) najdete a zkopírujete ze stránky Ověřování AppProxyNativeAppSample v levém navigačním panelu v části Spravovat. Tento krok je volitelný, protože knihovna MSAL používá metoduPublicClientApplicationBuilder.WithDefaultRedirectUri()
k vložení doporučeného identifikátoru URI (Uniform Resource Identifier).Do pole vložte identifikátor URI
<add key="todo:TodoListResourceId" value="" />
ID aplikace SecretAPI. Hodnota je stejná jakotodo:TodoListBaseAddress
. Hodnota identifikátoru URI se nachází na stránceSecretAPI
Vystavení rozhraní API aplikace. Podívejte se do levé navigace v části Spravovat.Do pole vložte adresu URL
<add key="todo:TodoListBaseAddress" value="" />
domovské stránky SecretAPI. Tuto hodnotu (url) najdete a zkopírujete ze stránky Vlastností a brandingu SecretAPI v levém navigačním panelu v části Spravovat.
Poznámka:
Pokud řešení nevytvořuje a hlásí chybný neplatný soubor Resx, v Průzkumník řešení rozbalte vlastnosti, klikněte pravým tlačítkem na Resources.resx a pak vyberte Zobrazit kód. Řádky komentáře 121 až 123
Po konfiguraci parametrů sestavte a spusťte nativní aplikaci. Když vyberete tlačítko Přihlásit se, aplikace vám umožní přihlásit se a pak zobrazí obrazovku s úspěšným potvrzením, že se úspěšně připojila k SecretAPI.