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).
Di portal Azure, cari dan pilih App Service, lalu pilih aplikasi Anda.
Di menu kiri aplikasi, pilih pengaturan >Konfigurasi Umum.
Untuk Kredensial Penerbitan Autentikasi Dasar SCM atau Kredensial Penerbitan Autentikasi Dasar FTP, pilih Nonaktif, lalu pilih Simpan.
Untuk mengonfirmasi bahwa akses FTP diblokir, coba sambungkan ke aplikasi Anda menggunakan FTP/S. Anda harus mendapatkan pesan 401 Unauthenticated
.
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 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 Connect 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 Connect). |
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 hak istimewa yang lebih rendah mengaktifkan autentikasi dasar untuk aplikasi apa pun, Anda dapat membuat peran kustom dan menetapkan pengguna ke peran tersebut.
Di portal Azure, di menu atas, cari dan pilih langganan tempat Anda ingin membuat peran kustom.
Dari navigasi kiri, pilih Access Control (IAM)>Tambahkan>peran kustom.
Atur tab Dasar sesuai keinginan Anda, lalu pilih Berikutnya.
Di tab Izin , dan pilih Kecualikan izin.
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. 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:
Pilih Tinjau + buat, lalu pilih Buat.
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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" } }
Kebijakan terkait autentikasi dasar
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:
- Kebijakan audit untuk FTP
- Kebijakan audit untuk SCM
- Kebijakan remediasi untuk FTP
- Kebijakan remediasi untuk SCM
Berikut ini adalah kebijakan yang sesuai untuk slot:
- Kebijakan audit untuk FTP
- Kebijakan audit untuk SCM
- Kebijakan remediasi untuk FTP
- Kebijakan remediasi untuk SCM
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.