Dela via


Använd Microsoft Entra-programproxy för att ge säker åtkomst till ett API (Application Programming Interface) som finns i ett privat moln eller lokalt

Affärslogik finns ofta i ett privat API (Application Programming Interface). API:et körs lokalt eller i ett privat moln. Dina interna Android-, iOS-, Mac- eller Windows-appar måste interagera med API-slutpunkterna för att använda data eller ge användarinteraktion. Microsoft Entra-programproxy och Microsoft Authentication Library (MSAL) låter dina interna appar få säker åtkomst till dina privata moln-API:er. Microsoft Entra-programproxy är en snabbare och säkrare lösning än att öppna brandväggsportar och kontrollera autentisering och auktorisering på applagret.

Dricks

Lokalt är en äldre term som går tillbaka till den tid då fysiska servrar fanns på företagets kontor. Nu för tiden körs många lokalt installerade arbetsbelastningar på en virtuell dator i ett datacenter. Termen lokalt och privat moln används omväxlande.

Den här artikeln beskriver hur du konfigurerar en Microsoft Entra-programproxylösning för att vara värd för en webb-API-tjänst som interna appar kan komma åt.

Översikt

Följande diagram visar ett traditionellt sätt att publicera lokala API:er. Den här metoden kräver att inkommande portar 80 och 443 öppnas.

Traditionell API-åtkomst

Följande diagram visar hur du kan använda Microsoft Entra-programproxy för att publicera API:er på ett säkert sätt utan att öppna några inkommande portar:

Api-åtkomst för Microsoft Entra-programproxy

Microsoft Entra-programproxyn utgör ryggraden i lösningen, arbetar som en offentlig slutpunkt för API-åtkomst och tillhandahåller autentisering och auktorisering. Du kan komma åt dina API:er från en mängd olika plattformar med hjälp av MSAL-bibliotek (Microsoft Authentication Library).

Eftersom autentisering och auktorisering för Microsoft Entra-programproxy bygger på Microsoft Entra-ID kan du använda Villkorsstyrd åtkomst för Microsoft Entra för att säkerställa att endast betrodda enheter kan komma åt API:er som publicerats via programproxy. Använd Microsoft Entra-anslutning eller Microsoft Entra-hybridansluten för stationära datorer och Intune Managed för enheter. Du kan också dra nytta av Microsoft Entra ID P1- eller P2-funktioner som Microsoft Entra multifaktorautentisering och den maskininlärningsbaserade säkerheten för Microsoft Entra ID Protection.

Förutsättningar

Om du vill följa den här genomgången behöver du:

Publicera API:et via programproxy

Om du vill publicera ett API utanför intranätet via programproxyn följer du samma mönster som för publicering av webbappar. Mer information finns i Självstudie: Lägga till ett lokalt program för fjärråtkomst via programproxy i Microsoft Entra-ID.

Så här publicerar du SecretAPI-webb-API:et via programproxy:

  1. Skapa och publicera SecretAPI-exempelprojektet som en ASP.NET webbapp på din lokala dator eller intranät. Kontrollera att du kan komma åt webbappen lokalt.

  2. Logga in på administrationscentret för Microsoft Entra som minst programadministratör.

  3. Bläddra till Identity>Applications Enterprise-program.>

  4. Längst upp på sidan Företagsprogram – Alla program väljer du Nytt program.

  5. På sidan Bläddra i Microsoft Entra-galleriet letar du upp avsnittet Lokala program och väljer Lägg till ett lokalt program. Sidan Lägg till ditt eget lokala program visas.

  6. Om du inte har en privat nätverksanslutning installerad uppmanas du att installera den. Välj Ladda ned anslutningsprogram för privata nätverk för att ladda ned och installera anslutningsappen.

  7. Lägg till information på sidan Lägg till ditt eget lokala program .

    1. Bredvid Namn anger du SecretAPI.

    2. Bredvid Intern URL anger du den URL som du använder för att komma åt API:et inifrån intranätet.

    3. Kontrollera att Förautentisering är inställt på Microsoft Entra-ID.

    4. Välj Skapa och vänta tills appen har skapats.

    Lägg till API-app

  8. På sidan Företagsprogram – Alla program väljer du SecretAPI-appen .

  9. På sidan SecretAPI – Översikt väljer du Egenskaper i det vänstra navigeringsfältet.

  10. Du vill inte att API:er ska vara tillgängliga för slutanvändare i panelen MyApps, så ställ in Synligt för användare på Nej längst ned på sidan Egenskaper och välj sedan Spara.

    Inte synligt för användare

Webb-API:et publiceras nu via Microsoft Entra-programproxy. Lägg sedan till användare som kan komma åt appen.

  1. På sidan SecretAPI – Översikt väljer du Användare och grupper i det vänstra navigeringsfältet.

  2. På sidan Användare och grupper väljer du Lägg till användare.

  3. På sidan Lägg till tilldelning väljer du Användare och grupper.

  4. På sidan Användare och grupper söker du efter och väljer användare som kan komma åt appen, inklusive åtminstone dig själv. När du har valt alla användare väljer du Välj.

    Välj och tilldela användare

  5. På sidan Lägg till tilldelning väljer du Tilldela.

Kommentar

API:er som använder integrerad Windows-autentisering kan kräva ytterligare steg.

Registrera den interna appen och bevilja åtkomst till API:et

Interna appar är program som har utvecklats för att användas på en viss plattform eller enhet. Innan din interna app kan ansluta och komma åt ett API måste du registrera den i Microsoft Entra-ID. Följande steg visar hur du registrerar en intern app och ger den åtkomst till webb-API:et som du publicerade via programproxyn.

Så här registrerar du den inbyggda appen AppProxyNativeAppSample:

  1. Logga in på administrationscentret för Microsoft Entra som minst programadministratör.

  2. Bläddra till Appregistreringar för Identity>Applications>Enterprise-program.>

  3. Välj Ny registrering.

  4. Ange information på sidan Registrera ett program .

    1. Under Namn anger du AppProxyNativeAppSample.

    2. Under Kontotyper som stöds väljer du Endast Konton i den här organisationskatalogen (endast Contoso – enskild klientorganisation).

    3. Under Omdirigerings-URL väljer du Offentlig klient/intern (mobil och stationär dator) och anger sedan *https://login.microsoftonline.com/common/oauth2/nativeclient *.

    4. Välj Registrera och vänta tills appen har registrerats.

      Ny programregistrering

Appen AppProxyNativeAppSample är nu registrerad i Microsoft Entra-ID. Ge din interna app åtkomst till webb-API:et SecretAPI :

  1. På sidan Appregistreringar väljer du appen AppProxyNativeAppSample .

  2. På sidan AppProxyNativeAppSample väljer du API-behörigheter i det vänstra navigeringsfältet.

  3. På sidan API-behörigheter väljer du Lägg till en behörighet.

  4. På den första sidan Api-behörigheter för begäran väljer du fliken API:er som min organisation använder och söker sedan efter och väljer SecretAPI.

  5. På nästa sida för API-behörigheter för begäran markerar du kryssrutan bredvid user_impersonation och väljer sedan Lägg till behörigheter.

    Välj ett A P I.

  6. På sidan API-behörigheter kan du välja Bevilja administratörsmedgivande för Contoso för att förhindra att andra användare måste godkänna appen individuellt.

Konfigurera den interna appkoden

Det sista steget är att konfigurera den interna appen. Koden måste läggas till i Form1.cs filen i exempelappen NativeClient . Koden använder MSAL-biblioteket för att hämta token. Token begär API-anropet och bifogar det till huvudet i begäran. Token är kopplad som ett ägarcertifikat. Mer information om MSAL finns i Lägga till MSAL i projektet och Lägg till referensen till MSAL.

  1. Lägg till namnområdet using Microsoft.Identity.Client; i koden i Form1.cs.

  2. Redigera den interna programkoden i autentiseringskontexten för Microsoft Authentication Library (MSAL) för att inkludera det här anpassade kodexemplet.

Konfigurera den interna appen för att ansluta till Microsoft Entra-ID och anropa API:et med hjälp av programproxy. Uppdatera sedan platshållarvärdena i App.config filen NativeClient sample app med värden från Microsoft Entra ID.

  1. Klistra in katalog-ID :t (klientorganisation) i fältet <add key="ida:Tenant" value="" /> . Du kan hitta och kopiera det här värdet (ett GUID) från översiktssidan för någon av dina appar.

  2. Klistra in AppProxyNativeAppSample Application (klient)-ID i fältet <add key="ida:ClientId" value="" /> . Du kan hitta och kopiera det här värdet (ett GUID) från sidan Översikt för AppProxyNativeAppSample i det vänstra navigeringsfältet under Hantera.

  3. Klistra in omdirigerings-URI:n AppProxyNativeAppSample i fältet <add key="ida:RedirectUri" value="" /> . Du kan hitta och kopiera det här värdet (en URI) från sidan Autentisering för AppProxyNativeAppSample i det vänstra navigeringsfältet under Hantera. Det här steget är valfritt eftersom MSAL använder metoden PublicClientApplicationBuilder.WithDefaultRedirectUri() för att infoga den rekommenderade svars-URI:n (Uniform Resource Identifier).

  4. Klistra in URI för SecretAPI-program-ID i fältet <add key="todo:TodoListResourceId" value="" /> . Värdet är detsamma som todo:TodoListBaseAddress. URI-värdet finns på sidan Exponera ett API i SecretAPI programmet. Titta i det vänstra navigeringsfältet under Hantera.

  5. Klistra in URL:en för SecretAPI-startsidan i fältet <add key="todo:TodoListBaseAddress" value="" /> . Du kan hitta och kopiera det här värdet (en URL) från sidan SecretAPI Branding &properties i det vänstra navigeringsfältet under Hantera.

Kommentar

Om lösningen inte skapas och rapporterar felet ogiltig Resx-fil expanderar du Egenskaper i Istraživač rešenja, högerklickar på Resources.resx och väljer sedan Visa kod. Kommentarsrader 121 till 123.

När du har konfigurerat parametrarna skapar och kör du den interna appen. När du väljer knappen Logga in låter appen dig logga in och visar sedan en lyckad skärm för att bekräfta att den har anslutits till SecretAPI.

Skärmbild som visar meddelandet Secret A P I Successful och en OK-knapp.

Nästa steg