Menonaktifkan autentikasi dasar dalam penyebaran App Service

Artikel ini memperlihatkan kepada Anda cara menonaktifkan autentikasi dasar (autentikasi nama pengguna dan kata sandi) saat menyebarkan kode ke aplikasi App Service.

App Service menyediakan autentikasi dasar untuk klien FTP dan WebDeploy untuk menyambungkannya dengan menggunakan kredensial penyebaran. API ini sangat bagus untuk menelusuri sistem file situs Anda, mengunggah driver dan utilitas, dan menyebarkan dengan MsBuild. Namun, perusahaan sering memerlukan metode penyebaran yang lebih aman daripada autentikasi dasar, seperti autentikasi ID Microsoft Entra (lihat Jenis autentikasi dengan metode penyebaran di Azure App Service). Microsoft Entra menggunakan otorisasi berbasis token OAuth 2.0 dan memiliki banyak manfaat dan peningkatan yang membantu mengurangi masalah dalam autentikasi dasar. Misalnya, token akses OAuth memiliki masa pakai yang dapat digunakan terbatas, dan khusus untuk aplikasi dan sumber daya yang dikeluarkan, sehingga tidak dapat digunakan kembali. Microsoft Entra juga memungkinkan Anda menyebarkan dari layanan Azure lainnya menggunakan identitas terkelola.

Menonaktifkan autentikasi dasar

Tersedia dua kontrol berbeda untuk autentikasi dasar. Khususnya:

  • Untuk penyebaran FTP, autentikasi dasar dikontrol oleh basicPublishingCredentialsPolicies/ftp bendera (opsi Kredensial Penerbitan Autentikasi Dasar FTP di portal).
  • Untuk metode penyebaran lain yang menggunakan autentikasi dasar, seperti Visual Studio, Git lokal, dan GitHub, autentikasi dasar dikendalikan oleh basicPublishingCredentialsPolicies/scm bendera (opsi Kredensial Penerbitan Autentikasi Dasar SCM di portal).
  1. Di portal Azure, cari dan pilih App Service, lalu pilih aplikasi Anda.

  2. Di menu kiri aplikasi, pilih pengaturan >Konfigurasi Umum.

  3. Untuk Kredensial Penerbitan Autentikasi Dasar SCM atau Kredensial Penerbitan Autentikasi Dasar FTP, pilih Nonaktif, lalu pilih Simpan.

    A screenshot showing how to disable basic authentication for Azure App Service in the Azure portal.

Untuk mengonfirmasi bahwa akses FTP diblokir, coba sambungkan ke aplikasi Anda menggunakan FTP/S. Anda harus mendapatkan pesan 401 Unauthenticted .

Untuk mengonfirmasi bahwa akses Git diblokir, coba penyebaran Git lokal. Anda harus mendapatkan pesan Authentication failed .

Penyebaran tanpa autentikasi dasar

Saat Anda menonaktifkan autentikasi dasar, metode penyebaran yang bergantung pada autentikasi dasar berhenti berfungsi.

Tabel berikut menunjukkan bagaimana berbagai metode penyebaran berulah saat autentikasi dasar dinonaktifkan, dan jika ada mekanisme fallback. Untuk informasi selengkapnya, lihat Jenis autentikasi menurut metode penyebaran di Azure App Service.

Metode penyebaran Ketika autentikasi dasar dinonaktifkan
Penyebaran Visual Studio Tidak berhasil.
FTP Tidak berhasil.
Git Lokal Tidak berhasil.
Azure CLI Di Azure CLI 2.48.1 atau yang lebih tinggi, perintah berikut kembali ke autentikasi Microsoft Entra:
- az webapp up
- az webapp deploy
- az webapp deployment source config-zip
- az webapp log deployment show
- az webapp log deployment list
- az webapp log download
- az webapp log tail
- az webapp browse
- az webapp create-remote-connection
- az webapp ssh
- penyebaran az functionapp
- az functionapp log deployment list
- az functionapp log deployment show
- az functionapp deployment source config-zip 
Plugin Maven atau plugin Gradle Bekerja.
GitHub dengan App Service Build Service Tidak berhasil.
GitHub Actions - Alur kerja GitHub Actions yang ada yang menggunakan autentikasi dasar tidak dapat mengautentikasi. Di Pusat Penyebaran, putuskan sambungan konfigurasi GitHub yang ada dan buat konfigurasi Tindakan GitHub baru dengan opsi identitas yang ditetapkan pengguna sebagai gantinya.
- Jika penyebaran GitHub Actions yang ada dikonfigurasi secara manual, coba gunakan perwakilan layanan atau OpenID Koneksi sebagai gantinya.
- Untuk konfigurasi Tindakan GitHub baru di Pusat Penyebaran, gunakan opsi identitas yang ditetapkan pengguna.
Penyebaran dalam wizard buat Saat Autentikasi dasar diatur ke Nonaktifkan dan Penyebaran berkelanjutan diatur ke Aktifkan, GitHub Actions dikonfigurasi dengan opsi identitas yang ditetapkan pengguna (OpenID Koneksi).
Azure Repos dengan App Service Build Service Tidak berhasil.
BitBucket Tidak berhasil.
Azure Pipelines dengan tugas AzureWebApp Bekerja.
Azure Pipelines dengan tugas AzureRmWebAppDeployment - Gunakan tugas AzureRmWebAppDeployment terbaru untuk mendapatkan perilaku fallback.
- Jenis koneksi Terbitkan Profil (PublishProfile) tidak berfungsi, karena menggunakan autentikasi dasar. Ubah jenis koneksi ke Azure Resource Manager (AzureRM).
- Pada agen Alur non-Windows, autentikasi berfungsi.
- Pada agen Windows, metode penyebaran yang digunakan oleh tugas mungkin perlu dimodifikasi. Saat Web Deploy digunakan (DeploymentType: 'webDeploy') dan autentikasi dasar dinonaktifkan, tugas mengautentikasi dengan token Microsoft Entra. Ada persyaratan tambahan jika Anda tidak menggunakan windows-latest agen atau jika Anda menggunakan agen yang dihost sendiri. Untuk informasi selengkapnya, lihat Saya tidak dapat Menyebarkan Web ke Azure App Service saya menggunakan autentikasi Microsoft Entra dari agen Windows saya.
- Metode penyebaran lainnya berfungsi, seperti penyebaran zip atau jalankan dari paket.

Membuat peran kustom tanpa izin untuk autentikasi dasar

Untuk mencegah pengguna dengan priveldged yang lebih rendah mengaktifkan autentikasi dasar untuk aplikasi apa pun, Anda dapat membuat peran kustom dan menetapkan pengguna ke peran tersebut.

  1. Di portal Azure, di menu atas, cari dan pilih langganan tempat Anda ingin membuat peran kustom.

  2. Dari navigasi kiri, pilih Access Control (IAM)>Tambahkan>peran kustom.

  3. Atur tab Dasar sesuai keinginan Anda, lalu pilih Berikutnya.

  4. Di tab Izin , dan pilih Kecualikan izin.

  5. Temukan dan pilih Microsoft Web Apps, lalu cari operasi berikut:

    Operasi Deskripsi
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Kredensial penerbitan FTP untuk aplikasi App Service.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Kredensial penerbitan SCM untuk aplikasi App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Kredensial penerbitan FTP untuk slot App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Kredensial penerbitan SCM untuk slot App Service.
  6. Di bawah setiap operasi ini, pilih kotak untuk Tulis, lalu pilih Tambahkan. Langkah ini menambahkan operasi sebagai NotActions untuk peran tersebut.

    Tab Izin Anda akan terlihat seperti cuplikan layar berikut:

    A screenshot showing the creation of a custom role with all basic authentication permissions excluded.

  7. Pilih Tinjau + buat, lalu pilih Buat.

  8. Sekarang Anda dapat menetapkan peran ini kepada pengguna organisasi Anda.

Untuk informasi selengkapnya, lihat Membuat atau memperbarui peran kustom Azure menggunakan portal Azure

Memantau upaya autentikasi dasar

Semua proses masuk yang berhasil dan dicoba dicatat ke jenis log Azure Monitor AppServiceAuditLogs . Untuk mengaudit upaya dan keberhasilan login di FTP dan WebDeploy, ikuti langkah-langkah di Mengirim log ke Azure Monitor dan mengaktifkan pengiriman AppServiceAuditLogs jenis log.

Untuk mengonfirmasi bahwa log dikirim ke layanan yang Anda pilih, coba masuk melalui FTP atau WebDeploy. Contoh berikut menunjukkan log Akun Penyimpanan.

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/EF90E930-9D7F-4A60-8A99-748E0EEA69DE/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.WEB/SITES/MY-DEMO-APP",
  "Category": "AppServiceAuditLogs",
  "OperationName": "Authorization",
  "Properties": {
    "User": "$my-demo-app",
    "UserDisplayName": "$my-demo-app",
    "UserAddress": "24.19.191.170",
    "Protocol": "FTP"
  }
}

Azure Policy dapat membantu Anda menerapkan standar organisasi dan menilai kepatuhan dalam skala besar. Anda dapat menggunakan Azure Policy untuk mengaudit aplikasi apa pun yang masih menggunakan autentikasi dasar, dan memulihkan sumber daya yang tidak patuh. Berikut ini adalah kebijakan bawaan untuk mengaudit dan memulihkan autentikasi dasar di App Service:

Berikut ini adalah kebijakan yang sesuai untuk slot:

Tanya jawab umum

Mengapa saya mendapatkan peringatan di Visual Studio yang mengatakan bahwa autentikasi dasar dinonaktifkan?

Visual Studio memerlukan autentikasi dasar untuk disebarkan ke Azure App Service. Peringatan mengingatkan Anda bahwa konfigurasi pada aplikasi Anda berubah dan Anda tidak dapat lagi menyebarkannya. Anda sendiri menonaktifkan autentikasi dasar pada aplikasi, atau kebijakan organisasi Anda memberlakukan bahwa autentikasi dasar dinonaktifkan untuk aplikasi App Service.