0Pricing
Cloud & IT Cert Prep · Lekcja

Uwierzytelnianie i sieci w App Service

Włącz wbudowanych dostawców uwierzytelniania (Entra ID, Google, GitHub) dla aplikacji internetowej oraz ogranicz ruch przychodzący za pomocą integracji z VNet i ograniczeń dostępu.

Uwierzytelnianie i sieci w App Service to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Wbudowane uwierzytelnianie w App Service

Usługa Azure App Service udostępnia wbudowany moduł uwierzytelniania i autoryzacji (nazywany czasem EasyAuth), który obsługuje procesy logowania, weryfikację tokenów i zarządzanie sesjami bez konieczności wprowadzania zmian w kodzie aplikacji. Można go włączyć bezpośrednio w witrynie Azure Portal i wybrać jednego z wielu dostawców tożsamości. Jest to idealne rozwiązanie do szybkiego dodania uwierzytelniania do interfejsu API lub narzędzia wewnętrznego bez samodzielnego implementowania przepływów OAuth.

Obsługiwani dostawcy tożsamości

Uwierzytelnianie usługi App Service od razu obsługuje kilku dostawców tożsamości: Microsoft Entra ID (do logowania firmowego i korporacyjnego), Google, Facebook, Twitter/X, GitHub oraz dowolnego dostawcę zgodnego ze standardem OpenID Connect. Należy zarejestrować aplikację u wybranego dostawcy, aby uzyskać identyfikator klienta i klucz tajny, a następnie skonfigurować je w usłudze App Service. Można jednocześnie włączyć wielu dostawców, umożliwiając użytkownikom wybór sposobu logowania.

# Enable Microsoft Entra ID authentication via CLI
az webapp auth microsoft update \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --client-id '<Entra-App-Client-ID>' \
  --client-secret '<Client-Secret>' \
  --issuer 'https://sts.windows.net/<TenantId>/'

# Set action when unauthenticated (redirect or 401)
az webapp auth update \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --unauthenticated-client-action RedirectToLoginPage

Magazyn tokenów i dostęp do claims użytkownika

Po włączeniu uwierzytelniania usługa App Service przechowuje zweryfikowane tokeny w magazynie tokenów — trwałym magazynie przypisanym do sesji użytkownika. Kod aplikacji może uzyskać dostęp do claims uwierzytelnionego użytkownika za pośrednictwem specjalnych nagłówków żądania HTTP dodawanych przez moduł EasyAuth: X-MS-CLIENT-PRINCIPAL-NAME (adres e-mail/UPN), X-MS-CLIENT-PRINCIPAL-ID (identyfikator obiektu) oraz X-MS-TOKEN-AAD-ACCESS-TOKEN zawierającego surowy token dostępu.

// Node.js: read user identity from EasyAuth headers
app.get('/profile', (req, res) => {
  const userName = req.headers['x-ms-client-principal-name'];
  const userId = req.headers['x-ms-client-principal-id'];
  res.json({ name: userName, id: userId });
});

// Or decode the full claims JSON from the header
const principalHeader = req.headers['x-ms-client-principal'];
const claims = JSON.parse(Buffer.from(principalHeader, 'base64').toString());

Integracja z siecią VNet dla ruchu wychodzącego

VNet Integration umożliwia aplikacji App Service wykonywanie połączeń wychodzących z zasobami znajdującymi się w sieci wirtualnej platformy Azure, takimi jak maszyny wirtualne, bazy danych SQL i wewnętrzne interfejsy API, bez wystawiania tych zasobów do publicznego Internetu. Aplikacja otrzymuje wirtualny interfejs sieciowy w delegowanej podsieci sieci VNet i może docierać do każdego zasobu dostępnego z tej sieci, w tym do zasobów lokalnych za pośrednictwem sieci VPN lub usługi ExpressRoute. Funkcja VNet Integration jest dostępna od warstwy Standard wzwyż.

# Enable VNet Integration
az webapp vnet-integration add \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --vnet MyVNet \
  --subnet AppServiceSubnet

# Route ALL traffic through the VNet (including internet)
az webapp config appsettings set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --settings WEBSITE_VNET_ROUTE_ALL=1

Punkty końcowe prywatne dla ruchu przychodzącego

Podczas gdy funkcja VNet Integration obsługuje ruch wychodzący, prywatny punkt końcowy obsługuje ruch przychodzący — sprawia, że usługa App Service jest dostępna wyłącznie z wnętrza sieci VNet za pośrednictwem prywatnego adresu IP. Zewnętrzny dostęp internetowy do adresu azurewebsites.net jest blokowany, gdy prywatny punkt końcowy jest jedyną metodą dostępu. Rozwiązanie to służy do obsługi wewnętrznych interfejsów API i portali administracyjnych, które nigdy nie powinny być wystawione do publicznego Internetu.

# Create a private endpoint for the web app
az network private-endpoint create \
  --name MyWebAppPE \
  --resource-group MyRG \
  --vnet-name MyVNet \
  --subnet PrivateEndpointSubnet \
  --private-connection-resource-id \
    '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
  --group-id sites \
  --connection-name MyWebAppConnection

Ograniczenia dostępu

Ograniczenia dostępu w usłudze App Service umożliwiają zdefiniowanie listy adresów IP dozwolonych lub zablokowanych dla ruchu przychodzącego. Reguły są oceniane według priorytetu (niższy numer oznacza wyższy priorytet). Dostęp można ograniczyć do określonych zakresów adresów IP (np. wychodzącego adresu IP firmowej sieci VPN), tagów usług Azure (np. AzureLoadBalancer) lub konkretnych podsieci VNet. Ograniczenia dostępu można wykorzystać do zabezpieczenia slotu przejściowego, tak aby dostęp do niego miał wyłącznie zakres adresów IP zespołu.

# Allow only a specific IP range
az webapp config access-restriction add \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --priority 100 \
  --action Allow \
  --ip-address 203.0.113.0/24 \
  --rule-name 'OfficeRange'

# Allow Azure Front Door service tag
az webapp config access-restriction add \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --priority 200 \
  --action Allow \
  --service-tag AzureFrontDoor.Backend \
  --rule-name 'FrontDoor'

Połączenia hybrydowe

Połączenia hybrydowe (z BizTalk) umożliwiają usłudze App Service dostęp do zasobów lokalnych bez konieczności korzystania z funkcji VNet Integration lub bramy VPN. Lekki agent przekazywania zainstalowany lokalnie nawiązuje połączenie wychodzące z usługą Azure Service Bus, a aplikacja łączy się za pośrednictwem tego pośrednika. Połączenia hybrydowe działają na poziomie TCP i obsługują dowolny port — są przydatne do łączenia ze starszymi lokalnymi bazami danych lub interfejsami API, których nie można przenieść do platformy Azure.

# Add a Hybrid Connection to reach on-prem SQL
az webapp hybrid-connection add \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --namespace myServiceBusNS \
  --hybrid-connection on-prem-sql-relay

# The Hybrid Connection Manager agent must be installed
# and configured on the on-premises server to complete the relay

Zarządzana tożsamość dla App Service

Przypisz aplikacji App Service zarządzaną tożsamość, aby mogła uwierzytelniać się w innych usługach Azure (Key Vault, Blob Storage, SQL Database) bez przechowywania poświadczeń w dowolnym miejscu. Platforma Azure automatycznie zarządza poświadczeniami tożsamości. Można użyć tożsamości przypisanej przez system (powiązanej z cyklem życia aplikacji) lub tożsamości przypisanej przez użytkownika (współdzielonej przez wiele aplikacji). Należy przypisać tożsamości role RBAC w zasobach docelowych.

# Enable system-assigned managed identity
az webapp identity assign \
  --name MyUniqueWebApp \
  --resource-group MyRG

# Grant the identity access to Key Vault secrets
az keyvault set-policy \
  --name MyKeyVault \
  --object-id $(az webapp identity show \
      --name MyUniqueWebApp \
      --resource-group MyRG \
      --query principalId -o tsv) \
  --secret-permissions get list

Włączanie CORS

Cross-Origin Resource Sharing (CORS) określa, które domeny mogą wykonywać wywołania interfejsu API aplikacji App Service z poziomu przeglądarki. Dozwolone źródła należy skonfigurować w ustawieniach CORS — w środowisku produkcyjnym w przypadku uwierzytelnionych interfejsów API nie należy zwracać symbolu wieloznacznego (*). Wbudowana obsługa CORS w usłudze App Service automatycznie dodaje nagłówki odpowiedzi Access-Control-Allow-Origin, dzięki czemu w prostych przypadkach nie trzeba używać oprogramowania pośredniczącego CORS w kodzie aplikacji.

# Allow specific origin
az webapp cors add \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --allowed-origins https://www.contoso.com

# View current CORS settings
az webapp cors show \
  --name MyUniqueWebApp \
  --resource-group MyRG

# Remove a CORS origin
az webapp cors remove \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --allowed-origins https://old.contoso.com

Środowiska App Service (ASE)

App Service Environment (ASE) to w pełni izolowane, dedykowane wdrożenie usługi App Service działające we własnej sieci VNet. Zapewnia najwyższy poziom izolacji sieci, skalowalność (do 200 wystąpień) oraz zgodność z wymaganiami regulacyjnymi. ASE v3 eliminuje potrzebę korzystania z dedykowanego publicznego adresu IP i natywnie obsługuje prywatne punkty końcowe. Wadą jest znacznie wyższy koszt — ASE jest przeznaczone dla obciążeń korporacyjnych o rygorystycznych wymaganiach dotyczących izolacji.

Podsumowanie najlepszych praktyk bezpieczeństwa

Aby zapewnić bezpieczeństwo wdrożenia App Service: wymuś korzystanie wyłącznie z protokołu HTTPS, użyj ograniczeń dostępu do ograniczenia przychodzących adresów IP, włącz zarządzaną tożsamość, aby uniknąć przechowywania wpisów tajnych w konfiguracji, przechowuj wpisy tajne w usłudze Key Vault z użyciem odwołań do Key Vault, ustaw minimalną wersję protokołu TLS na 1.2, włącz Defender for App Service do wykrywania zagrożeń oraz regularnie przeglądaj zalecenia usługi Azure Security Center dotyczące zasobu aplikacji.

# Enforce HTTPS and minimum TLS version
az webapp update \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --https-only true

az webapp config set \
  --name MyUniqueWebApp \
  --resource-group MyRG \
  --min-tls-version '1.2' \
  --ftps-state Disabled

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo: wbudowane uwierzytelnianie (EasyAuth), które dodaje logowanie za pomocą dostawcy tożsamości bez zmian w kodzie; funkcję VNet Integration, która kieruje ruch wychodzący przez sieć wirtualną, podczas gdy prywatne punkty końcowe ograniczają ruch przychodzący; oraz zarządzaną tożsamość, która umożliwia uwierzytelnianie bez użycia haseł w innych usługach Azure. W następnej części omówimy usługę Azure Container Registry.

Często zadawane pytania

Czy lekcja „Uwierzytelnianie i sieci w App Service” jest bezpłatna?

Tak — pełny tekst „Uwierzytelnianie i sieci w App Service” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Uwierzytelnianie i sieci w App Service”?

Włącz wbudowanych dostawców uwierzytelniania (Entra ID, Google, GitHub) dla aplikacji internetowej oraz ogranicz ruch przychodzący za pomocą integracji z VNet i ograniczeń dostępu. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Uwierzytelnianie i sieci w App Service”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie planu App Service i aplikacji internetowej
  2. Sloty wdrażania i zamiana
  3. Automatyczne skalowanie i domeny niestandardowe
  4. Uwierzytelnianie i sieci w App Service
← Powrót do Cloud & IT Cert Prep