Integracja usługi Application Gateway
W tym artykule opisano sposób konfigurowania usługi Application Gateway z usługą App Service przy użyciu prywatnych punktów końcowych w celu zabezpieczenia ruchu. W tym artykule omówiono również zagadnienia związane z używaniem punktów końcowych usługi i integracją z wewnętrznymi i zewnętrznymi środowiskami App Service Environment. Na koniec w artykule opisano sposób ustawiania ograniczeń dostępu w witrynie Menedżera kontroli kodu źródłowego (SCM).
Integracja z usługą App Service
Za pomocą prywatnych punktów końcowych można zabezpieczyć ruch między usługą Application Gateway i aplikacją usługi App Service. Należy się upewnić, że usługa Application Gateway może używać usługi DNS do rozpoznawania prywatnego adresu IP aplikacji usługi App Service. Alternatywnie możesz użyć prywatnego adresu IP w puli zaplecza i zastąpić nazwę hosta w ustawieniach PROTOKOŁU HTTP.
Usługa Application Gateway buforuje wyniki wyszukiwania DNS. Jeśli używasz w pełni kwalifikowanych nazw domen (FQDN) i polegasz na wyszukiwaniu DNS w celu uzyskania prywatnego adresu IP, może być konieczne ponowne uruchomienie bramy aplikacji, jeśli aktualizacja DNS lub link do prywatnej strefy DNS platformy Azure wystąpił po skonfigurowaniu puli zaplecza.
Aby ponownie uruchomić bramę aplikacji, zatrzymaj ją i uruchom przy użyciu interfejsu wiersza polecenia platformy Azure:
az network application-gateway stop --resource-group myRG --name myAppGw
az network application-gateway start --resource-group myRG --name myAppGw
Dowiedz się więcej o konfigurowaniu aplikacji usługi App Service z prywatnym punktem końcowym.
Zagadnienia dotyczące korzystania z punktów końcowych usługi
Alternatywą dla prywatnych punktów końcowych jest zabezpieczenie ruchu z usługi Application Gateway przy użyciu punktów końcowych usługi. Korzystając z punktów końcowych usługi, można zezwolić na ruch tylko z określonej podsieci w sieci wirtualnej platformy Azure i zablokować wszystkie inne elementy. W poniższym scenariuszu użyjesz tej funkcji, aby upewnić się, że wystąpienie usługi App Service może odbierać ruch tylko z określonej bramy aplikacji.
Istnieją dwie części tej konfiguracji, oprócz tworzenia wystąpienia aplikacji usługi App Service i bramy aplikacji. Pierwsza część polega na włączeniu punktów końcowych usługi w podsieci sieci wirtualnej, w której wdrożono bramę aplikacji. Punkty końcowe usługi zapewniają, że cały ruch sieciowy opuszczający podsieć w kierunku usługi App Service jest oznaczony określonym identyfikatorem podsieci.
Drugą częścią jest ustawienie ograniczenia dostępu dla określonej aplikacji internetowej, aby upewnić się, że dozwolony jest tylko ruch oznaczony tym konkretnym identyfikatorem podsieci. Ograniczenie dostępu można skonfigurować przy użyciu różnych narzędzi, w zależności od preferencji.
W witrynie Azure Portal wykonasz cztery kroki, aby utworzyć i skonfigurować konfigurację usług App Service i Application Gateway. Jeśli masz istniejące zasoby, możesz pominąć pierwsze kroki.
- Utwórz wystąpienie usługi App Service przy użyciu jednego z przewodników Szybki start w dokumentacji usługi App Service. Przykładem jest przewodnik Szybki start platformy .NET Core.
- Utwórz bramę aplikacji przy użyciu przewodnika Szybki start portalu, ale pomiń sekcję dotyczącą dodawania obiektów docelowych zaplecza.
- Skonfiguruj usługę App Service jako zaplecze w usłudze Application Gateway, ale pomiń sekcję dotyczącą ograniczania dostępu.
- Utwórz ograniczenie dostępu przy użyciu punktów końcowych usługi.
Teraz możesz uzyskać dostęp do usługi App Service za pośrednictwem usługi Application Gateway. Jeśli spróbujesz uzyskać bezpośredni dostęp do usługi App Service, powinien zostać wyświetlony błąd HTTP 403 z informacją, że aplikacja internetowa blokuje dostęp.
Zagadnienia dotyczące wewnętrznego środowiska App Service Environment
Wewnętrzne środowisko App Service Environment nie jest uwidocznione w Internecie. Ruch między wystąpieniem a bramą aplikacji jest już izolowany do sieci wirtualnej. Aby skonfigurować wewnętrzne środowisko App Service Environment i zintegrować je z bramą aplikacji przy użyciu witryny Azure Portal, zobacz przewodnik z instrukcjami.
Jeśli chcesz mieć pewność, że tylko ruch z podsieci usługi Application Gateway dociera do środowiska App Service Environment, możesz skonfigurować sieciową grupę zabezpieczeń, która ma wpływ na wszystkie aplikacje internetowe w środowisku App Service Environment. Dla sieciowej grupy zabezpieczeń można określić zakres adresów IP podsieci i opcjonalnie porty (80/443).
Aby odizolować ruch do pojedynczej aplikacji internetowej, musisz użyć ograniczeń dostępu opartych na adresach IP, ponieważ punkty końcowe usługi nie działają ze środowiskiem App Service Environment. Adres IP powinien być prywatnym adresem IP bramy aplikacji.
Zagadnienia dotyczące zewnętrznego środowiska App Service Environment
Zewnętrzne środowisko App Service Environment ma publiczny moduł równoważenia obciążenia, taki jak wielodostępne aplikacje usługi App Service. Punkty końcowe usługi nie działają w środowisku App Service Environment. Za pomocą środowiska App Service Environment można używać ograniczeń dostępu opartych na adresach IP przy użyciu publicznego adresu IP bramy aplikacji. Aby utworzyć zewnętrzne środowisko App Service Environment przy użyciu witryny Azure Portal, możesz skorzystać z tego przewodnika Szybki start.
Możesz również dodać prywatne punkty końcowe do aplikacji hostowanych w zewnętrznym środowisku App Service Environment.
Zagadnienia dotyczące witryny Kudu/SCM
Witryna SCM, znana również jako Kudu, jest witryną administracyjną, która istnieje dla każdej aplikacji internetowej. Nie można użyć zwrotnego serwera proxy dla lokacji SCM. Najprawdopodobniej chcesz również zablokować go do poszczególnych adresów IP lub określonej podsieci.
Jeśli chcesz użyć tych samych ograniczeń dostępu co witryna główna, możesz dziedziczyć ustawienia przy użyciu następującego polecenia:
az webapp config access-restriction set --resource-group myRG --name myWebApp --use-same-restrictions-for-scm-site
Jeśli chcesz dodać indywidualne ograniczenia dostępu dla witryny SCM, możesz użyć flagi --scm-site
:
az webapp config access-restriction add --resource-group myRG --name myWebApp --scm-site --rule-name KudoAccess --priority 200 --ip-address 208.130.0.0/16
Zagadnienia dotyczące używania domeny domyślnej
Skonfigurowanie usługi Application Gateway w celu zastąpienia nazwy hosta i użycie domyślnej domeny usługi App Service (zazwyczaj azurewebsites.net
) jest najprostszym sposobem skonfigurowania integracji. Nie wymaga skonfigurowania domeny niestandardowej i certyfikatu w usłudze App Service.
W tym artykule omówiono ogólne zagadnienia dotyczące zastępowania oryginalnej nazwy hosta. W usłudze App Service istnieją dwa scenariusze, w których należy zwrócić uwagę na tę konfigurację.
Uwierzytelnianie
W przypadku korzystania z funkcji uwierzytelniania w usłudze App Service (znanej również jako Easy Auth) aplikacja zwykle przekierowuje do strony logowania. Ponieważ usługa App Service nie zna oryginalnej nazwy hosta żądania, przekierowanie odbywa się w domyślnej nazwie domeny i zwykle powoduje wystąpienie błędu.
Aby obejść domyślne przekierowanie, można skonfigurować uwierzytelnianie w celu sprawdzenia przekazanego nagłówka i dostosowania domeny przekierowania do oryginalnej domeny. Usługa Application Gateway używa nagłówka o nazwie X-Original-Host
. Korzystając z konfiguracji opartej na plikach do konfigurowania uwierzytelniania, można skonfigurować usługę App Service, aby dostosować się do oryginalnej nazwy hosta. Dodaj tę konfigurację do pliku konfiguracji:
{
...
"httpSettings": {
"forwardProxy": {
"convention": "Custom",
"customHostHeaderName": "X-Original-Host"
}
}
...
}
Koligacja sesji
W przypadku wdrożeń z wieloma wystąpieniami koligacja sesji gwarantuje, że żądania klientów są kierowane do tego samego wystąpienia przez cały czas cyklu życia sesji. Koligację sesji można skonfigurować tak, aby dostosować domenę plików cookie do nagłówka przychodzącego z zwrotnego serwera proxy. Konfigurując serwer proxy koligacji sesji na wartość true, koligacja sesji wyszukuje X-Original-Host
lub X-Forwarded-Host
dostosowuje domenę plików cookie do domeny znalezionej w tym nagłówku. Zalecaną praktyką podczas włączania serwera proxy koligacji sesji należy skonfigurować ograniczenia dostępu w lokacji, aby upewnić się, że ruch pochodzi z zwrotnego serwera proxy.
Można również skonfigurować clientAffinityProxyEnabled
za pomocą następującego polecenia:
az resource update --resource-group myRG --name myWebApp --resource-type "Microsoft.Web/sites" --set properties.clientAffinityProxyEnabled=true
Następne kroki
Aby uzyskać więcej informacji na temat środowisk App Service Environment, zobacz dokumentację środowiska App Service Environment.
Aby dodatkowo zabezpieczyć aplikację internetową, możesz znaleźć informacje o usłudze Azure Web Application Firewall w usłudze Application Gateway w dokumentacji usługi Azure Web Application Firewall.
Aby wdrożyć bezpieczną, odporną lokację z domeną niestandardową w usłudze App Service przy użyciu usługi Azure Front Door lub Application Gateway, zobacz ten samouczek.