0Pricing
Cloud & IT Cert Prep · Pelajaran

Autentikasi dan Jaringan App Service

Aktifkan penyedia autentikasi bawaan (Entra ID, Google, GitHub) untuk aplikasi web Anda, lalu batasi lalu lintas masuk menggunakan Integrasi VNet dan pembatasan akses.

Autentikasi dan Jaringan App Service adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Autentikasi Bawaan di App Service

Azure App Service menyediakan modul autentikasi dan otorisasi bawaan (terkadang disebut EasyAuth) yang menangani alur masuk, validasi token, dan pengelolaan sesi tanpa perubahan kode apa pun pada aplikasi Anda. Anda dapat mengaktifkannya langsung di portal Azure dan memilih dari beberapa penyedia identitas. Fitur ini ideal untuk menambahkan autentikasi dengan cepat ke API atau alat internal tanpa menerapkan alur OAuth sendiri.

Penyedia Identitas yang Didukung

Autentikasi App Service secara bawaan mendukung beberapa penyedia identitas: Microsoft Entra ID (untuk akses masuk perusahaan/korporat), Google, Facebook, Twitter/X, GitHub, dan penyedia apa pun yang kompatibel dengan OpenID Connect. Anda mendaftarkan aplikasi pada penyedia yang dipilih untuk memperoleh ID klien dan rahasia, lalu mengonfigurasinya di App Service. Beberapa penyedia dapat diaktifkan secara bersamaan sehingga pengguna dapat memilih cara untuk masuk.

# 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

Penyimpanan Token dan Mengakses Klaim Pengguna

Saat autentikasi diaktifkan, App Service menyimpan token yang telah divalidasi di penyimpanan token — penyimpanan persisten untuk setiap sesi pengguna. Kode aplikasi Anda dapat mengakses klaim pengguna yang telah diautentikasi melalui header permintaan HTTP khusus yang disisipkan oleh modul EasyAuth: X-MS-CLIENT-PRINCIPAL-NAME (email/UPN), X-MS-CLIENT-PRINCIPAL-ID (ID objek), dan X-MS-TOKEN-AAD-ACCESS-TOKEN untuk token akses mentah.

// 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());

Integrasi VNet untuk Lalu Lintas Keluar

Integrasi VNet memungkinkan aplikasi App Service melakukan panggilan keluar ke sumber daya di dalam Azure Virtual Network — seperti VM, basis data SQL, dan API internal — tanpa mengekspos sumber daya tersebut ke internet publik. Aplikasi memperoleh NIC virtual di subnet yang didelegasikan dari VNet dan dapat menjangkau sumber daya apa pun yang dapat dijangkau VNet, termasuk sumber daya lokal melalui VPN atau ExpressRoute. Integrasi VNet tersedia mulai dari tingkat Standard.

# 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

Endpoint Privat untuk Lalu Lintas Masuk

Jika Integrasi VNet menangani lalu lintas keluar, endpoint privat menangani lalu lintas masuk — fitur ini membuat App Service hanya dapat diakses dari dalam VNet Anda melalui alamat IP privat. Akses internet eksternal ke azurewebsites.net diblokir jika endpoint privat merupakan satu-satunya metode akses. Fitur ini digunakan untuk API internal dan portal admin yang tidak boleh diekspos ke internet publik.

# 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

Pembatasan Akses

Pembatasan akses di App Service memungkinkan Anda menentukan daftar IP yang diizinkan atau ditolak untuk lalu lintas masuk. Aturan dievaluasi berdasarkan urutan prioritas (angka yang lebih rendah = prioritas lebih tinggi). Anda dapat membatasi akses ke rentang IP tertentu (misalnya, IP egress VPN kantor Anda), tag layanan Azure (misalnya, AzureLoadBalancer), atau subnet VNet tertentu. Gunakan pembatasan akses untuk mengamankan slot staging sehingga hanya rentang IP tim Anda yang dapat menjangkaunya.

# 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'

Hybrid Connections

Hybrid Connections (dari BizTalk) memungkinkan App Service menjangkau sumber daya lokal tanpa memerlukan Integrasi VNet atau gateway VPN. Agen relay ringan yang dipasang di lingkungan lokal membuat koneksi keluar ke Azure Service Bus; aplikasi Anda terhubung melalui relay tersebut. Hybrid Connections bekerja pada tingkat TCP dan mendukung port apa pun — berguna untuk terhubung ke basis data atau API lokal lama yang tidak dapat dipindahkan ke 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

Identitas Terkelola untuk App Service

Tetapkan identitas terkelola ke aplikasi App Service Anda agar aplikasi dapat melakukan autentikasi ke layanan Azure lain (Key Vault, Blob Storage, SQL Database) tanpa menyimpan kredensial di mana pun. Azure mengelola kredensial identitas tersebut secara otomatis. Gunakan identitas yang ditetapkan sistem (terikat pada siklus hidup aplikasi) atau identitas yang ditetapkan pengguna (digunakan bersama oleh beberapa aplikasi). Berikan peran RBAC kepada identitas tersebut pada sumber daya target.

# 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

Mengaktifkan CORS

Cross-Origin Resource Sharing (CORS) mengontrol domain mana yang dapat melakukan panggilan API berbasis browser ke aplikasi App Service Anda. Konfigurasikan origin yang diizinkan dalam pengaturan CORS — jangan mengembalikan wildcard (*) di lingkungan produksi untuk API yang memerlukan autentikasi. Dukungan CORS bawaan App Service secara otomatis menambahkan header respons Access-Control-Allow-Origin, sehingga untuk kasus sederhana Anda tidak perlu menggunakan middleware CORS dalam kode aplikasi.

# 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

App Service Environments (ASE)

App Service Environment (ASE) adalah deployment App Service yang sepenuhnya terisolasi dan didedikasikan, yang berjalan di dalam VNet Anda sendiri. ASE menyediakan tingkat isolasi jaringan, skalabilitas (hingga 200 Instance), dan keselarasan kepatuhan tertinggi. ASE v3 menghilangkan kebutuhan akan IP publik khusus dan secara bawaan mendukung endpoint privat. Konsekuensinya adalah biaya yang jauh lebih tinggi — ASE ditujukan untuk beban kerja perusahaan dengan persyaratan isolasi yang ketat.

Ringkasan Praktik Terbaik Keamanan

Untuk deployment App Service yang aman: terapkan HTTPS saja, gunakan pembatasan akses untuk membatasi IP masuk, aktifkan identitas terkelola agar rahasia tidak disimpan dalam konfigurasi, simpan rahasia di Key Vault dengan referensi Key Vault, terapkan versi TLS minimum 1.2, aktifkan Defender for App Service untuk deteksi ancaman, dan tinjau secara berkala rekomendasi Azure Security Center untuk sumber daya aplikasi.

# 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

Pemeriksaan Singkat

Ujilah pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa autentikasi bawaan (EasyAuth) menambahkan akses masuk melalui penyedia identitas tanpa perubahan kode, Integrasi VNet merutekan lalu lintas keluar melalui jaringan virtual Anda sementara endpoint privat mengamankan lalu lintas masuk, dan identitas terkelola memungkinkan autentikasi tanpa kata sandi ke layanan Azure lainnya. Selanjutnya, kita akan membahas Azure Container Registry.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Autentikasi dan Jaringan App Service” gratis?

Ya — teks lengkap “Autentikasi dan Jaringan App Service” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Autentikasi dan Jaringan App Service”?

Aktifkan penyedia autentikasi bawaan (Entra ID, Google, GitHub) untuk aplikasi web Anda, lalu batasi lalu lintas masuk menggunakan Integrasi VNet dan pembatasan akses. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Autentikasi dan Jaringan App Service” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Rencana App Service dan Aplikasi Web
  2. Slot Penerapan dan Pertukaran
  3. Penskalaan Otomatis dan Domain Kustom
  4. Autentikasi dan Jaringan App Service
← Kembali ke Cloud & IT Cert Prep