Integrasu Application Gateway

Tiga variasi Azure App Service memerlukan konfigurasi integrasi yang sedikit berbeda dengan Azure Application Gateway. Variasinya termasuk App Service reguler (juga dikenal sebagai multipenyewa), Load Balancer Internal (ILB) App Service Environment, dan Lingkungan App Service eksternal.

Artikel ini menjelaskan cara mengonfigurasi Application Gateway dengan App Service (multipenyewa) dengan menggunakan titik akhir layanan untuk mengamankan lalu lintas. Artikel ini juga membahas pertimbangan tentang menggunakan titik akhir privat dan mengintegrasikan dengan ILB dan Lingkungan App Service eksternal. Terakhir, artikel ini menjelaskan cara mengatur pembatasan akses pada situs Source Control Manager (SCM).

Integrasi dengan App Service (multipenyewa)

App Service (multipenyewa) memiliki titik akhir publik yang terhubung ke internet. Dengan menggunakan titik akhir layanan, Anda dapat mengizinkan lalu lintas hanya dari subnet tertentu dalam jaringan virtual Azure dan memblokir yang lainnya. Dalam skenario berikut, Anda menggunakan fungsionalitas ini untuk memastikan bahwa instans App Service hanya dapat menerima lalu lintas dari gateway aplikasi tertentu.

Diagram that shows the internet flowing to an application gateway in an Azure virtual network and then flowing through a firewall icon to instances of apps in App Service.

Ada dua bagian untuk konfigurasi ini, selain membuat instans App Service dan gateway aplikasi. Bagian pertama adalah mengaktifkan titik akhir layanan di subnet jaringan virtual tempat gateway aplikasi disebarkan. Titik akhir layanan memastikan bahwa semua lalu lintas jaringan yang meninggalkan subnet menuju App Service ditandai dengan ID subnet tertentu.

Bagian kedua adalah mengatur pembatasan akses pada aplikasi web tertentu untuk memastikan bahwa hanya lalu lintas yang ditandai dengan ID subnet khusus ini yang diizinkan. Anda dapat mengonfigurasi pembatasan akses dengan menggunakan alat yang berbeda, tergantung pada preferensi Anda.

Menyiapkan layanan dengan menggunakan portal Azure

Dengan portal Azure, Anda mengikuti empat langkah untuk membuat dan mengonfigurasi penyiapan App Service dan Application Gateway. Jika Anda memiliki sumber daya yang ada, Anda bisa melewati langkah pertama.

  1. Buat instans App Service dengan menggunakan salah satu mulai cepat dalam dokumentasi App Service. Salah satu contohnya adalah mulai cepat .NET Core.
  2. Buat gateway aplikasi dengan menggunakan mulai cepat portal, tetapi lewati bagian tentang menambahkan target back-end.
  3. Konfigurasikan App Service sebagai ujung belakang di Application Gateway, tetapi lewati bagian tentang membatasi akses.
  4. Buat pembatasan akses dengan menggunakan titik akhir layanan.

Sekarang Anda dapat mengakses App Service melalui Application Gateway. Jika Anda mencoba mengakses App Service secara langsung, Anda akan menerima kesalahan HTTP 403 yang mengatakan aplikasi web telah memblokir akses Anda.

Screenshot shows the text of Error 403 - Forbidden.

Menyiapkan layanan dengan menggunakan templat Azure Resource Manager

Templat penyebaran Azure Resource Manager membuat skenario lengkap. Skenario ini terdiri dari instans App Service yang dikunci dengan titik akhir layanan dan pembatasan akses untuk menerima lalu lintas hanya dari Application Gateway. Templat ini mencakup banyak default cerdas dan postfix unik yang ditambahkan ke nama sumber daya untuk membuatnya sederhana. Untuk mengambil alihnya, Anda harus mengkloning repositori atau mengunduh templat dan mengeditnya.

Untuk menerapkan templat, Anda dapat menggunakan tombol Sebarkan ke Azure dalam deskripsi templat. Atau Anda dapat menggunakan kode PowerShell atau Azure CLI yang sesuai.

Menyiapkan layanan dengan menggunakan Azure CLI

Sampel Azure CLI membuat instans App Service yang dikunci dengan titik akhir layanan dan pembatasan akses untuk menerima lalu lintas hanya dari Application Gateway. Jika Anda hanya perlu mengisolasi lalu lintas ke instans App Service yang ada dari gateway aplikasi yang sudah ada, gunakan perintah berikut:

az webapp config access-restriction add --resource-group myRG --name myWebApp --rule-name AppGwSubnet --priority 200 --subnet mySubNetName --vnet-name myVnetName

Dalam konfigurasi default, perintah memastikan penyiapan konfigurasi titik akhir layanan di subnet dan pembatasan akses di App Service.

Pertimbangan untuk menggunakan titik akhir privat

Sebagai alternatif untuk titik akhir layanan, Anda dapat menggunakan titik akhir privat untuk mengamankan lalu lintas antara Application Gateway dan App Service (multipenyewa). Anda perlu memastikan bahwa Application Gateway dapat menggunakan DNS untuk menyelesaikan alamat IP privat aplikasi App Service. Atau, Anda dapat menggunakan alamat IP privat di kumpulan back-end dan mengambil alih nama host di pengaturan HTTP.

Diagram that shows traffic flowing to an application gateway in an Azure virtual network and then flowing through a private endpoint to instances of apps in App Service.

Application Gateway menyimpan hasil pencarian DNS. Jika Anda menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN) dan mengandalkan pencarian DNS untuk mendapatkan alamat IP privat, Anda mungkin perlu memulai ulang gateway aplikasi jika pembaruan DNS atau tautan ke zona DNS privat Azure terjadi setelah Anda mengonfigurasi kumpulan back-end.

Untuk memulai ulang gateway aplikasi, hentikan dan mulai dengan menggunakan Azure CLI:

az network application-gateway stop --resource-group myRG --name myAppGw
az network application-gateway start --resource-group myRG --name myAppGw

Pertimbangan untuk ILB App Service Environment

ILB App Service Environment tidak terekspos ke internet. Lalu lintas antara instans dan gateway aplikasi sudah diisolasi ke jaringan virtual. Untuk mengonfigurasi ILB App Service Environment dan mengintegrasikannya dengan gateway aplikasi dengan menggunakan portal Azure, lihat panduan caranya.

Jika Anda ingin memastikan bahwa hanya lalu lintas dari subnet Application Gateway yang mencapai Lingkungan App Service, Anda dapat mengonfigurasi grup keamanan jaringan (NSG) yang memengaruhi semua aplikasi web di Lingkungan App Service. Untuk NSG, Anda dapat menentukan rentang IP subnet dan secara opsional port (80/443). Agar Lingkungan App Service berfungsi dengan benar, pastikan Anda tidak mengambil alih aturan NSG yang diperlukan.

Untuk mengisolasi lalu lintas ke aplikasi web individual, Anda perlu menggunakan pembatasan akses berbasis IP, karena titik akhir layanan tidak berfungsi dengan Lingkungan App Service. Alamat IP harus menjadi IP privat gateway aplikasi.

Pertimbangan untuk Lingkungan App Service eksternal

Lingkungan App Service eksternal memiliki penyeimbang beban yang menghadap publik seperti App Service multipenyewa. Titik akhir layanan tidak berfungsi untuk Lingkungan App Service. Itulah sebabnya Anda harus menggunakan pembatasan akses berbasis IP dengan menggunakan alamat IP publik gateway aplikasi. Untuk membuat Lingkungan App Service eksternal dengan menggunakan portal Azure, Anda dapat mengikuti mulai cepat ini.

Pertimbangan untuk situs Kudu/SCM

Situs SCM, juga dikenal sebagai Kudu, adalah situs admin yang ada untuk setiap aplikasi web. Tidak dimungkinkan untuk menggunakan proksi terbalik untuk situs SCM. Kemungkinan besar Anda juga ingin menguncinya ke alamat IP individual atau subnet tertentu.

Jika Anda ingin menggunakan pembatasan akses yang sama dengan situs utama, Anda dapat mewarisi pengaturan dengan menggunakan perintah berikut:

az webapp config access-restriction set --resource-group myRG --name myWebApp --use-same-restrictions-for-scm-site

Jika Anda ingin menambahkan pembatasan akses individual untuk situs SCM, Anda dapat menggunakan --scm-site bendera:

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

Pertimbangan untuk menggunakan domain default

Mengonfigurasi Application Gateway untuk mengambil alih nama host dan menggunakan domain default App Service (biasanya azurewebsites.net) adalah cara term mudah untuk mengonfigurasi integrasi. Ini tidak memerlukan konfigurasi domain kustom dan sertifikat di App Service.

Artikel ini membahas pertimbangan umum untuk mengambil alih nama host asli. Di App Service, ada dua skenario di mana Anda perlu memperhatikan konfigurasi ini.

Autentikasi

Saat Anda menggunakan fitur autentikasi di App Service (juga dikenal sebagai Easy Auth), aplikasi Anda biasanya mengalihkan ke halaman masuk. Karena App Service tidak mengetahui nama host asli permintaan, pengalihan dilakukan pada nama domain default dan biasanya menghasilkan kesalahan.

Untuk mengatasi pengalihan default, Anda dapat mengonfigurasi autentikasi untuk memeriksa header yang diteruskan dan menyesuaikan domain pengalihan ke domain asli. Application Gateway menggunakan header yang disebut X-Original-Host. Dengan menggunakan konfigurasi berbasis file untuk mengonfigurasi autentikasi, Anda dapat mengonfigurasi App Service untuk beradaptasi dengan nama host asli. Tambahkan konfigurasi ini ke file konfigurasi Anda:

{
    ...
    "httpSettings": {
        "forwardProxy": {
            "convention": "Custom",
            "customHostHeaderName": "X-Original-Host"
        }
    }
    ...
}

Afinitas ARR

Dalam penyebaran beberapa instans, afinitas ARR memastikan bahwa permintaan klien dirutekan ke instans yang sama selama masa pakai sesi. Afinitas ARR tidak berfungsi dengan penggantian nama host. Agar afinitas sesi berfungsi, Anda harus mengonfigurasi domain kustom dan sertifikat yang identik di App Service dan di Application Gateway dan tidak menimpa nama host.

Langkah berikutnya

Untuk informasi selengkapnya tentang Lingkungan App Service, lihat dokumentasi Lingkungan App Service.

Untuk lebih mengamankan aplikasi web, Anda dapat menemukan informasi tentang Azure Web Application Firewall di Application Gateway di dokumentasi Azure Web Application Firewall.

Untuk menyebarkan situs yang aman dan tangguh dengan domain kustom di App Service dengan menggunakan Azure Front Door atau Application Gateway, lihat tutorial ini.