Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Identitas terkelola untuk sumber daya Azure memungkinkan aplikasi Anda mengautentikasi ke Azure Service Bus tanpa menyimpan kredensial dalam kode Anda. Azure secara otomatis menangani identitas dan kredensialnya untuk Anda.
Menyimpan kredensial dalam kode menciptakan risiko keamanan dan overhead pemeliharaan. Identitas terkelola menghilangkan kekhawatiran ini dengan memberikan manajemen kredensial otomatis melalui Microsoft Entra ID.
Artikel ini memperlihatkan kepada Anda cara mengonfigurasi autentikasi identitas terkelola untuk Bus Layanan sehingga aplikasi Anda dapat mengirim dan menerima pesan dengan aman tanpa kredensial yang dikodekan secara permanen.
Prasyarat
Untuk menggunakan identitas terkelola dengan Azure Service Bus, Anda memerlukan:
Sebuah langganan Azure. Jika Anda belum memiliki satu, buatlah akun gratis sebelum Anda mulai.
Sebuah Namespace di Azure Service Bus. Untuk membuatnya, lihat Membuat namespace Bus Layanan.
Identitas terkelola yang diaktifkan pada sumber daya komputasi Azure Anda. See:
Anda dapat menonaktifkan autentikasi kunci tanda tangan akses lokal atau bersama (SAS) untuk namespace Bus Layanan dan hanya mengizinkan autentikasi Microsoft Entra. Untuk instruksi langkah demi langkah, lihat Menonaktifkan autentikasi lokal.
Menetapkan peran Bus Layanan ke identitas terkelola
Microsoft Entra mengotorisasi akses ke sumber daya aman melalui kontrol akses berbasis peran Azure (RBAC). Azure Service Bus menyediakan peran bawaan Azure yang mencakup serangkaian izin umum untuk mengakses entitas Bus Layanan. Anda juga dapat menentukan peran kustom.
Tabel berikut ini mencantumkan peran bawaan Azure untuk mengotorisasi akses ke namespace Bus Layanan:
| Peranan | Deskripsi |
|---|---|
| Pemilik Data Azure Service Bus | Akses penuh ke namespace Bus Layanan dan entitasnya (antrean, topik, langganan, dan filter) |
| Azure Service Bus Pengirim Data | Kemampuan untuk mengirim pesan ke antrean dan topik di Azure Bus Layanan |
| Penerima Data Azure Service Bus | Kemampuan menerima pesan dari antrean dan langganan Bus Layanan |
Memahami tingkat cakupan RBAC Bus Layanan
Sebelum Anda menetapkan peran Azure, tentukan cakupan akses yang dibutuhkan identitas terkelola. Berikan hanya cakupan sesempit mungkin.
Daftar berikut ini menjelaskan tingkat tempat Anda dapat mencakup akses ke sumber daya Microsoft Azure Bus Layanan, dimulai dengan lingkup tersempit:
- Antrean, topik, atau langganan topik: Penetapan peran hanya berlaku untuk entitas olahpesan tertentu.
- Bus Layanan namespace: Penetapan peran mencakup seluruh topologi Bus Layanan di bawah namespace tersebut.
- Grup Sumber Daya: Penetapan peran berlaku untuk semua sumber daya Microsoft Azure Bus Layanan di bawah grup sumber daya.
- langganan Azure: Penetapan peran berlaku untuk semua sumber daya Bus Layanan di semua grup sumber daya dalam langganan Azure.
Penetapan peran Azure mungkin memerlukan waktu hingga lima menit untuk disebarluaskan.
Menetapkan peran ke identitas terkelola di portal Microsoft Azure
Masuk ke namespace, antrean, atau topik Layanan Bus Anda.
Di menu sebelah kiri, pilih Kontrol akses (IAM).
Pilih Tambahkan>Tambahkan penugasan peran.
Pada tab Peran , pilih peran data Azure Bus Layanan yang sesuai.
Pada tab Anggota, pilih Identitas> terkelolaPilih anggota.
Pilih identitas terkelola untuk sumber daya Azure Anda.
Pilih Tinjau + beri tugas.
Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure.
Menetapkan peran dengan menggunakan Azure CLI
Portal Microsoft Azure tidak mendukung penetapan identitas terkelola ke peran Azure Bus Layanan di tingkat langganan topik. Gunakan perintah az role assignment create Azure CLI untuk menetapkan peran di cakupan apa pun:
az role assignment create \
--role $service_bus_role \
--assignee $assignee_id \
--scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription
Untuk informasi selengkapnya tentang bagaimana peran bawaan ditentukan, lihat Memahami definisi peran Azure. Untuk informasi tentang membuat peran kustom Azure, lihat Peran kustom Azure.
Catatan
Jika layanan sumber atau aplikasi tidak dimulai ulang setelah Anda menghapus identitas terkelolanya dari peran RBAC Bus Layanan, aplikasi sumber mungkin terus mengirim atau menerima pesan ke atau dari entitas Bus Layanan sampai token kedaluwarsa. (Validitas token default adalah 24 jam.) Perilaku ini dirancang.
Setelah Anda menghapus identitas terkelola milik sumber dari peran RBAC, mulai ulang aplikasi atau layanan sumber untuk langsung kadaluarsa token serta mencegahnya mengirim atau menerima pesan dari entitas Bus Layanan.
Menyambungkan ke Azure Bus Layanan dengan menggunakan identitas terkelola di Azure SDK
Azure SDK untuk .NET, Java, JavaScript, dan Python mendukung autentikasi identitas terkelola dengan Bus Layanan. Contoh berikut menunjukkan cara menyambungkan dengan menggunakan .NET SDK.
Di .NET, objek ServiceBusClient diinisialisasi dengan menggunakan konstruktor yang membutuhkan namespace yang sepenuhnya terdefinisi dan kredensial token (TokenCredential).
DefaultAzureCredential berasal dari TokenCredential, yang secara otomatis menggunakan identitas terkelola yang dikonfigurasi untuk aplikasi. Kredensial token secara otomatis menangani alur konteks identitas terkelola ke Azure Bus Layanan dan jabat tangan otorisasi. Ini adalah model yang lebih sederhana daripada menggunakan SAS.
var client = new ServiceBusClient("contoso.servicebus.windows.net", new DefaultAzureCredential());
Kirim dan terima pesan seperti biasa dengan menggunakan ServiceBusSender dan ServiceBusReceiver atau ServiceBusProcessor.
Untuk petunjuk langkah demi langkah untuk mengirim dan menerima pesan dengan menggunakan identitas terkelola, lihat panduan cepat berikut ini. Mulai cepat ini menyertakan kode untuk menggunakan prinsipal layanan guna mengirim dan menerima pesan, namun kodenya tetap sama ketika menggunakan identitas terkelola.
Catatan
Identitas terkelola hanya berfungsi di dalam lingkungan Azure, di Azure App Service, mesin virtual Azure, dan set skala. Untuk aplikasi .NET, pustaka Microsoft.Azure.Services.AppAuthentication (digunakan oleh paket Bus Layanan NuGet) menyediakan abstraksi atas protokol ini dan mendukung pengembangan lokal. Anda dapat menguji kode secara lokal menggunakan akun pengguna dari Visual Studio, Azure CLI, atau autentikasi terintegrasi Microsoft Entra. Untuk informasi selengkapnya, lihat pustaka klien App Authentication untuk .NET.