Użyj serwera proxy aplikacji Entra firmy Microsoft, aby zapewnić bezpieczny dostęp do interfejsu programowania aplikacji (API) hostowanego w chmurze prywatnej lub lokalnie
Logika biznesowa często znajduje się w prywatnym interfejsie programowania aplikacji (API). Interfejs API działa lokalnie lub w chmurze prywatnej. Natywne aplikacje dla systemów Android, iOS, Mac lub Windows muszą korzystać z punktów końcowych interfejsu API w celu korzystania z danych lub interakcji z użytkownikiem. Serwer proxy aplikacji Firmy Microsoft i biblioteka Microsoft Authentication Library (MSAL) umożliwiają aplikacjom natywnym bezpieczny dostęp do interfejsów API chmury prywatnej. Serwer proxy aplikacji Firmy Microsoft Entra to szybsze i bezpieczniejsze rozwiązanie niż otwieranie portów zapory oraz kontrolowanie uwierzytelniania i autoryzacji w warstwie aplikacji.
Napiwek
Lokalnie jest starszym terminem pochodzącym z czasu, w których serwery fizyczne znajdowały się w siedzibie firmy. Obecnie wiele własnych obciążeń działa na maszynie wirtualnej w centrum danych. Termin lokalna i chmura prywatna są używane zamiennie.
W tym artykule opisano konfigurowanie rozwiązania serwera proxy aplikacji Firmy Microsoft Entra na potrzeby hostowania usługi internetowego interfejsu API, do której mogą uzyskiwać dostęp natywne aplikacje.
Omówienie
Na poniższym diagramie przedstawiono tradycyjny sposób publikowania lokalnych interfejsów API. Takie podejście wymaga otwarcia portów przychodzących 80 i 443.
Na poniższym diagramie pokazano, jak używać serwera proxy aplikacji Firmy Microsoft Entra do bezpiecznego publikowania interfejsów API bez otwierania żadnych portów przychodzących:
Serwer proxy aplikacji Firmy Microsoft Entra stanowi szkielet rozwiązania, działając jako publiczny punkt końcowy dostępu do interfejsu API oraz zapewniając uwierzytelnianie i autoryzację. Dostęp do interfejsów API można uzyskać z szerokiej gamy platform przy użyciu bibliotek biblioteki Microsoft Authentication Library (MSAL).
Ponieważ uwierzytelnianie i autoryzacja serwera proxy aplikacji Entra firmy Microsoft są oparte na identyfikatorze Entra firmy Microsoft, możesz użyć dostępu warunkowego firmy Microsoft Entra, aby upewnić się, że tylko zaufane urządzenia mogą uzyskiwać dostęp do interfejsów API publikowanych za pośrednictwem serwera proxy aplikacji. Dołącz do firmy Microsoft Entra lub dołącz hybrydową firmę Microsoft Entra dla komputerów stacjonarnych oraz usługę Intune Managed dla urządzeń. Możesz również skorzystać z funkcji microsoft Entra ID P1 lub P2, takich jak uwierzytelnianie wieloskładnikowe firmy Microsoft Entra, oraz zabezpieczenia oparte na uczeniu maszynowym Ochrona tożsamości Microsoft Entra.
Wymagania wstępne
Aby wykonać czynności opisane w tym przewodniku, potrzebne są następujące elementy:
- Dostęp administratora do katalogu platformy Azure przy użyciu konta, które może tworzyć i rejestrować aplikacje
- Przykładowy internetowy interfejs API i natywne aplikacje klienckie z biblioteki Microsoft Authentication Library (MSAL)
Publikowanie interfejsu API za pośrednictwem serwera proxy aplikacji
Aby opublikować interfejs API poza intranetem za pośrednictwem serwera proxy aplikacji, należy postępować zgodnie z tym samym wzorcem co w przypadku publikowania aplikacji internetowych. Aby uzyskać więcej informacji, zobacz Samouczek: dodawanie aplikacji lokalnej na potrzeby dostępu zdalnego za pośrednictwem serwera proxy aplikacji w usłudze Microsoft Entra ID.
Aby opublikować internetowy interfejs API secretAPI za pośrednictwem serwera proxy aplikacji:
Skompiluj i opublikuj przykładowy projekt SecretAPI jako aplikację internetową ASP.NET na komputerze lokalnym lub intranecie. Upewnij się, że masz dostęp do aplikacji internetowej lokalnie.
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
Przejdź do aplikacji dla przedsiębiorstw usługi Identity>Applications>.
W górnej części strony Aplikacje dla przedsiębiorstw — wszystkie aplikacje wybierz pozycję Nowa aplikacja.
Na stronie Przeglądaj galerię Microsoft Entra znajdź sekcję Aplikacje lokalne i wybierz pozycję Dodaj aplikację lokalną. Zostanie wyświetlona strona Dodawanie własnej aplikacji lokalnej.
Jeśli nie masz zainstalowanego łącznika sieci prywatnej, zostanie wyświetlony monit o jego zainstalowanie. Wybierz pozycję Pobierz łącznik sieci prywatnej, aby pobrać i zainstalować łącznik.
Dodaj informacje na stronie Dodawanie własnej aplikacji lokalnej.
Obok pozycji Nazwa wprowadź wartość SecretAPI.
Obok pozycji Wewnętrzny adres URL wprowadź adres URL używany do uzyskiwania dostępu do interfejsu API z poziomu intranetu.
Upewnij się, że wstępnego uwierzytelniania ustawiono wartość Microsoft Entra ID.
Wybierz pozycję Utwórz i poczekaj na utworzenie aplikacji.
Na stronie Aplikacje dla przedsiębiorstw — wszystkie aplikacje wybierz aplikację SecretAPI.
Na stronie SecretAPI — Przegląd wybierz pozycję Właściwości w obszarze nawigacji po lewej stronie.
Nie chcesz, aby interfejsy API mogły być dostępne dla użytkowników końcowych w panelu MyApps, dlatego dla opcji Widoczne dla użytkowników ustaw wartość Nie w dolnej części strony Właściwości, a następnie wybierz pozycję Zapisz.
Internetowy interfejs API jest teraz publikowany za pośrednictwem serwera proxy aplikacji Firmy Microsoft Entra. Następnie dodaj użytkowników, którzy mogą uzyskiwać dostęp do aplikacji.
Na stronie SecretAPI — Przegląd wybierz pozycję Użytkownicy i grupy w obszarze nawigacji po lewej stronie.
Na stronie Użytkownicy i grupy wybierz pozycję Dodaj użytkownika.
Na stronie Dodawanie przypisania wybierz pozycję Użytkownicy i grupy.
Na stronie Użytkownicy i grupy wyszukaj i wybierz użytkowników, którzy mogą uzyskiwać dostęp do aplikacji, w tym co najmniej samodzielnie. Po wybraniu wszystkich użytkowników wybierz pozycję Wybierz.
Po powrocie na stronę Dodawanie przypisania wybierz pozycję Przypisz.
Uwaga
Interfejsy API korzystające ze zintegrowanego uwierzytelniania systemu Windows mogą wymagać dodatkowych kroków.
Rejestrowanie aplikacji natywnej i udzielanie dostępu do interfejsu API
Aplikacje natywne to programy opracowane do użycia na określonej platformie lub urządzeniu. Zanim aplikacja natywna będzie mogła nawiązać połączenie z interfejsem API i uzyskać do niej dostęp, musisz zarejestrować ją w identyfikatorze Entra firmy Microsoft. W poniższych krokach pokazano, jak zarejestrować aplikację natywną i udzielić jej dostępu do internetowego interfejsu API opublikowanego za pośrednictwem serwera proxy aplikacji.
Aby zarejestrować aplikację natywną AppProxyNativeAppSample:
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
Przejdź do sekcji> Aplikacje dla przedsiębiorstw tożsamości>>Rejestracje aplikacji.
Wybierz opcjęNowa rejestracja.
Wprowadź informacje na stronie Rejestrowanie aplikacji .
W obszarze Nazwa wprowadź ciąg AppProxyNativeAppSample.
W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym (tylko firma Contoso — pojedyncza dzierżawa).
W obszarze Adres URL przekierowania z listy rozwijanej i wybierz pozycję Klient publiczny/natywny (mobilny i klasyczny), a następnie wprowadź *https://login.microsoftonline.com/common/oauth2/nativeclient *.
Wybierz pozycję Zarejestruj i poczekaj na pomyślne zarejestrowanie aplikacji.
Aplikacja jest teraz zarejestrowana AppProxyNativeAppSample
w identyfikatorze Entra firmy Microsoft. Nadaj aplikacji natywnej dostęp do internetowego interfejsu SecretAPI
API:
Na stronie Rejestracje aplikacji wybierz aplikację AppProxyNativeAppSample.
Na stronie AppProxyNativeAppSample wybierz pozycję Uprawnienia interfejsu API w obszarze nawigacji po lewej stronie.
Na stronie Uprawnienia interfejsu API wybierz pozycję Dodaj uprawnienie.
Na pierwszej stronie Zażądaj uprawnień interfejsu API wybierz kartę Interfejsy API używane przez moją organizację, a następnie wyszukaj i wybierz pozycję SecretAPI.
Na następnej stronie Zażądaj uprawnień interfejsu API zaznacz pole wyboru obok pozycji user_impersonation, a następnie wybierz pozycję Dodaj uprawnienia.
Po powrocie do strony uprawnień interfejsu API możesz wybrać pozycję Udziel zgody administratora dla firmy Contoso, aby uniemożliwić innym użytkownikom indywidualne wyrażanie zgody na aplikację.
Konfigurowanie kodu aplikacji natywnej
Ostatnim krokiem jest skonfigurowanie aplikacji natywnej. Kod należy dodać do Form1.cs
pliku w przykładowej NativeClient
aplikacji. Kod używa biblioteki MSAL do uzyskania tokenu. Token żąda wywołania interfejsu API i dołącza go do nagłówka w żądaniu. Token jest dołączany jako certyfikat elementu nośnego. Aby uzyskać więcej informacji na temat biblioteki MSAL, zobacz Dodawanie biblioteki MSAL do projektu i Dodawanie odwołania do biblioteki MSAL.
W Form1.cs dodaj przestrzeń nazw
using Microsoft.Identity.Client;
do kodu.Edytuj kod aplikacji natywnej w kontekście uwierzytelniania biblioteki Microsoft Authentication Library (MSAL), aby uwzględnić ten dostosowany przykład kodu.
Skonfiguruj aplikację natywną, aby nawiązać połączenie z identyfikatorem Entra firmy Microsoft i wywołać interfejs API przy użyciu serwera proxy aplikacji. Następnie zaktualizuj wartości symboli zastępczych NativeClient sample app
w App.config
pliku za pomocą wartości z identyfikatora Entra firmy Microsoft.
Wklej identyfikator katalogu (dzierżawy) w
<add key="ida:Tenant" value="" />
polu . Tę wartość (identyfikator GUID) można znaleźć i skopiować na stronie Przegląd jednej z aplikacji.Wklej w polu identyfikator aplikacji AppProxyNativeAppSample Application (klient).
<add key="ida:ClientId" value="" />
Tę wartość (identyfikator GUID) można znaleźć i skopiować ze strony Przegląd aplikacji AppProxyNativeAppSample w obszarze nawigacji po lewej stronie w obszarze Zarządzanie.Wklej identyfikator URI przekierowania AppProxyNativeAppSample w
<add key="ida:RedirectUri" value="" />
polu . Tę wartość (identyfikator URI) można znaleźć i skopiować ze strony Uwierzytelnianie aplikacji AppProxyNativeAppSample w lewym obszarze nawigacji w obszarze Zarządzanie. Ten krok jest opcjonalny, ponieważ biblioteka MSAL używa metodyPublicClientApplicationBuilder.WithDefaultRedirectUri()
w celu wstawienia zalecanej odpowiedzi Uniform Resource Identifier (URI).Wklej identyfikator URI aplikacji SecretAPI w
<add key="todo:TodoListResourceId" value="" />
polu . Wartość jest taka sama jaktodo:TodoListBaseAddress
. Wartość identyfikatora URI znajduje się na stronieSecretAPI
Uwidaczniaj interfejs API aplikacji. Wyszukaj w obszarze nawigacji po lewej stronie w obszarze Zarządzanie.Wklej adres URL strony głównej
<add key="todo:TodoListBaseAddress" value="" />
secretAPI w polu. Tę wartość (adres URL) można znaleźć i skopiować na stronie Właściwości znakowania i właściwości secretAPI w obszarze Zarządzanie po lewej stronie.
Uwaga
Jeśli rozwiązanie nie kompiluje i zgłasza błąd nieprawidłowego pliku Resx, w Eksplorator rozwiązań rozwiń węzeł Właściwości, kliknij prawym przyciskiem myszy pozycję Resources.resx, a następnie wybierz polecenie Wyświetl kod. Wiersze komentarza od 121 do 123.
Po skonfigurowaniu parametrów skompiluj i uruchom aplikację natywną. Po wybraniu przycisku Zaloguj aplikacja umożliwia zalogowanie się, a następnie wyświetli ekran powodzenia, aby potwierdzić, że pomyślnie nawiązał połączenie z interfejsem SecretAPI.
Następne kroki
- Dodawanie aplikacji lokalnej na potrzeby dostępu zdalnego za pośrednictwem serwera proxy aplikacji w identyfikatorze Entra firmy Microsoft
- Konfigurowanie aplikacji klienckiej na potrzeby uzyskiwania dostępu do internetowych interfejsów API
- Włączanie natywnych aplikacji klienckich do interakcji z aplikacjami proxy