Bagikan melalui


Integrasu Application Gateway

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

Integrasi dengan App Service

Anda dapat menggunakan titik akhir privat untuk mengamankan lalu lintas antara Application Gateway dan aplikasi App Service Anda. 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 yang menunjukkan lalu lintas yang mengalir ke gateway aplikasi melalui titik akhir privat ke instans aplikasi di 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

Pelajari selengkapnya tentang mengonfigurasi aplikasi App Service dengan titik akhir privat.

Pertimbangan untuk menggunakan titik akhir layanan

Sebagai alternatif untuk titik akhir privat, Anda dapat menggunakan titik akhir layanan untuk mengamankan lalu lintas dari Application Gateway. 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 yang memperlihatkan internet yang mengalir ke gateway aplikasi di jaringan virtual Azure lalu mengalir melalui ikon firewall ke instans aplikasi di App Service.

Ada dua bagian untuk konfigurasi ini, selain membuat instans aplikasi 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.

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 memblokir akses Anda.

Cuplikan layar memperlihatkan teks Kesalahan 403 - Terlarang.

Pertimbangan untuk Lingkungan App Service internal

Lingkungan App Service internal tidak terekspos ke internet. Lalu lintas antara instans dan gateway aplikasi sudah diisolasi ke jaringan virtual. Untuk mengonfigurasi Lingkungan App Service internal 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).

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 aplikasi App Service multipenyewa. Titik akhir layanan tidak berfungsi untuk Lingkungan App Service. Dengan Lingkungan App Service, Anda dapat 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.

Anda juga dapat menambahkan titik akhir privat ke aplikasi yang dihosting di Lingkungan App Service eksternal.

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 Sesi

Dalam penyebaran beberapa instans, afinitas sesi memastikan bahwa permintaan klien dirutekan ke instans yang sama selama masa pakai sesi. Afinitas sesi dapat dikonfigurasi untuk menyesuaikan domain cookie ke header masuk dari proksi terbalik. Dengan mengonfigurasi proksi afinitas sesi ke true, afinitas sesi mencari X-Original-Host atau X-Forwarded-Host dan menyesuaikan domain cookie ke domain yang ditemukan di header ini. Sebagai praktik yang direkomendasikan saat mengaktifkan proksi afinitas sesi, Anda harus mengonfigurasi pembatasan akses di situs untuk memastikan bahwa lalu lintas berasal dari proksi terbalik Anda.

Anda juga dapat mengonfigurasi clientAffinityProxyEnabled dengan menggunakan perintah berikut:

az resource update --resource-group myRG --name myWebApp --resource-type "Microsoft.Web/sites" --set properties.clientAffinityProxyEnabled=true

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.