Nonaktifkan autentikasi kunci akses lokal atau bersama dengan Azure Service Bus

Anda dapat mengautentikasi ke sumber daya Azure Service Bus dengan dua cara:

  • Microsoft Entra ID
  • Tanda Tangan Akses Berbagi (SAS)

MICROSOFT Entra ID menyediakan keamanan yang unggul dan kemudahan penggunaan melalui tanda tangan akses bersama (SAS). Dengan menggunakan ID Microsoft Entra, Anda tidak perlu menyimpan token dalam kode Anda, yang mengurangi potensi kerentanan keamanan. Gunakan ID Microsoft Entra dengan aplikasi Azure Service Bus Anda jika memungkinkan.

Artikel ini menjelaskan cara menonaktifkan autentikasi kunci SAS (atau autentikasi lokal) dan hanya menggunakan ID Microsoft Entra untuk autentikasi.

Mengapa menonaktifkan autentikasi lokal?

Menonaktifkan autentikasi lokal (kunci SAS) memperkuat keamanan namespace Bus Layanan Anda dalam beberapa cara:

  • Menghilangkan kredensial statis. Kunci SAS adalah rahasia bersama yang bertahan lama. Jika kunci bocor, siapa pun yang memilikinya dapat mengakses namespace hingga Anda memutar kunci secara manual. MICROSOFT Entra ID menggunakan token berumur pendek yang di-refresh secara otomatis.
  • Memungkinkan kontrol akses yang sangat terperinci. Kebijakan SAS memberikan hak luas (Kirim, Dengarkan, Kelola) di tingkat namespace atau entitas. Kontrol akses berbasis peran (RBAC) Microsoft Entra memungkinkan Anda menetapkan peran tertentu (Azure Service Bus Data Sender, , Azure Service Bus Data Receiver) Azure Service Bus Data Owneruntuk pengguna individu, grup, perwakilan layanan, atau identitas terkelola.
  • Menyediakan jejak audit. Peristiwa autentikasi Microsoft Entra muncul di log masuk Microsoft Entra. Penggunaan kunci SAS tidak menghasilkan catatan audit yang setara pada tingkat identitas.
  • Mendukung akses bersyarat. Dengan menggunakan ID Microsoft Entra, Anda dapat menerapkan kebijakan seperti autentikasi multifaktor, persyaratan perangkat tepercaya, dan pembatasan lokasi - yang tidak ada yang tersedia dengan menggunakan kunci SAS.

Petunjuk / Saran

Sebelum Anda menonaktifkan autentikasi lokal, perbarui semua aplikasi untuk diautentikasi dengan menggunakan ID Microsoft Entra. Lihat bagian langkah-langkah migrasi nanti di artikel ini.

Menggunakan portal untuk menonaktifkan otorisasi lokal

Di bagian ini, Anda mempelajari cara menggunakan portal Microsoft Azure untuk menonaktifkan autentikasi lokal.

  1. Buka namespace Service Bus Anda di portal Microsoft Azure.

  2. Di bagian Esensial dari halaman Gambaran Umum , pilih Diaktifkan untuk Autentikasi Lokal.

    Cuplikan layar yang memperlihatkan halaman Gambaran Umum namespace Bus Layanan dengan Autentikasi Lokal diatur ke Diaktifkan.

  3. Pada halaman Autentikasi Lokal, pilih Nonaktif, dan pilih Oke.

    Cuplikan layar yang memperlihatkan pilihan opsi Dinonaktifkan di halaman Autentikasi Lokal.

Menggunakan templat untuk menonaktifkan autentikasi lokal

Anda dapat menonaktifkan autentikasi lokal untuk namespace Service Bus dengan mengatur disableLocalAuth properti ke true seperti yang diperlihatkan dalam templat berikut.

@description('Name of the Service Bus namespace')
param namespaceName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: namespaceName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
  properties: {
    disableLocalAuth: true
  }
}

Menggunakan Azure CLI atau PowerShell untuk menonaktifkan autentikasi lokal

Anda juga dapat menonaktifkan autentikasi lokal dengan menggunakan alat baris perintah untuk namespace yang sudah ada.

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth true

Untuk mengaktifkan kembali autentikasi lokal:

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth false

Anda dapat memverifikasi status saat ini dengan memeriksa disableLocalAuth properti:

az servicebus namespace show \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --query disableLocalAuth

Terapkan dengan Azure Policy

Untuk penerapan di seluruh penyewa atau langganan, gunakan kebijakan bawaan Azure Policy "Namespace Service Bus harus menonaktifkan metode autentikasi lokal" (ID kebijakan: ).

Kebijakan ini mengevaluasi namespace Bus Layanan dan menandai apa pun yang telah disableLocalAuth diatur ke false atau batal disetel. Anda dapat menetapkannya di tingkat grup manajemen, langganan, atau grup sumber daya.

Efek kebijakan

Saat Anda menetapkan kebijakan, pilih efek yang sesuai dengan kebutuhan penegakan Anda:

Efek Perilaku
Audit (standar) Namespace yang ada dengan autentikasi lokal diaktifkan muncul sebagai tidak patuh di dasbor kepatuhan. Namespace baru masih diperbolehkan.
Menyangkal Mencegah pembuatan atau pembaruan namespace layanan apa pun yang mengaktifkan autentikasi lokal. Gunakan efek ini untuk memberlakukan kepatuhan untuk sumber daya baru.

Menetapkan kebijakan

  1. Di portal Microsoft Azure, bukaDefinisi>.
  2. Cari namespace Service Bus yang seharusnya memiliki metode autentikasi lokal dinonaktifkan.
  3. Pilih definisi kebijakan, lalu pilih Tetapkan.
  4. Pilih cakupan (grup manajemen, langganan, atau grup sumber daya).
  5. Pada tab Parameter , pilih efek yang diinginkan (Audit atau Tolak).
  6. Pilih Tinjau + buat, lalu Buat.

Setelah penugasan, namespace yang tidak mematuhi muncul diKepatuhan>. Anda dapat membuat tugas remediasi untuk namespace yang perlu diperbarui.

Cuplikan layar kebijakan Azure untuk menonaktifkan autentikasi lokal.

Migrasi dari SAS ke ID Microsoft Entra

Sebelum Anda menonaktifkan autentikasi lokal, perbarui semua aplikasi yang tersambung ke namespace Service Bus Anda untuk menggunakan ID Microsoft Entra alih-alih string koneksi atau token SAS. Ikuti langkah-langkah berikut:

Langkah 1: Menetapkan peran RBAC

Tetapkan peran data Azure Service Bus yang sesuai ke setiap identitas (pengguna, perwakilan layanan, atau identitas terkelola) yang memerlukan akses:

Peranan Persetujuan
Azure Service Bus Data Sender Mengirimkan pesan ke antrian dan topik pesan
Azure Service Bus Data Receiver Menerima pesan dari antrean dan langganan
Azure Service Bus Data Owner Akses penuh (kirim, terima, kelola entitas)

Anda dapat menetapkan peran melalui portal Microsoft Azure, Azure CLI, atau Azure PowerShell. Untuk instruksi mendetail, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure.

Langkah 2: Memperbarui kode aplikasi

Ganti autentikasi berbasis string koneksi dengan DefaultAzureCredential (atau kredensial Microsoft Entra lainnya) dari pustaka Azure Identity. Contoh berikut menunjukkan perubahan untuk setiap bahasa:

// Before (connection string):
await using ServiceBusClient client = new("<connection-string>");

// After (Microsoft Entra ID):
await using ServiceBusClient client = new(
    "<your-namespace>.servicebus.windows.net",
    new DefaultAzureCredential());

Untuk detail selengkapnya tentang setiap SDK, lihat:

Langkah 3: Uji dengan kedua metode autentikasi diaktifkan

Sebarkan aplikasi yang diperbarui saat autentikasi lokal masih diaktifkan. Verifikasi bahwa:

  • Anda berhasil mengirim dan menerima pesan.
  • Log aplikasi menunjukkan akuisisi token Microsoft Entra (bukan SAS).
  • Tidak ada kesalahan yang terkait dengan autentikasi yang muncul.

Langkah 4: Nonaktifkan autentikasi lokal

Setelah Anda mengonfirmasi bahwa semua aplikasi berfungsi dengan MICROSOFT Entra ID, nonaktifkan autentikasi lokal dengan menggunakan salah satu metode yang dijelaskan sebelumnya dalam artikel ini (portal, CLI, PowerShell, atau templat).

Langkah 5: Bersihkan kebijakan SAS (opsional)

Setelah Anda menonaktifkan autentikasi lokal, kebijakan SAS yang ada pada namespace tetap ada tetapi tidak dapat digunakan untuk menghasilkan token fungsional. Anda dapat membiarkannya di tempat atau menghapusnya untuk konfigurasi yang lebih bersih. Menghapus kebijakan yang tidak digunakan mengurangi permukaan serangan jika seseorang secara tidak sengaja mengaktifkan kembali autentikasi lokal.

Untuk mempelajari tentang ID Microsoft Entra dan autentikasi SAS, lihat artikel berikut ini: