Bagikan melalui


Mengautentikasi dan mengotorisasi aplikasi dengan ID Microsoft Entra untuk mengakses entitas Azure Bus Layanan

Azure Bus Layanan mendukung penggunaan ID Microsoft Entra untuk mengotorisasi permintaan ke entitas Bus Layanan (antrean, topik, langganan, atau filter). Dengan MICROSOFT Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan, yang dapat berupa pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola untuk sumber daya Azure. Keuntungan utama menggunakan MICROSOFT Entra ID dengan Azure Bus Layanan adalah Anda tidak perlu menyimpan kredensial Anda dalam kode lagi. Sebagai gantinya, Anda dapat meminta token akses OAuth 2.0 dari platform Identitas Microsoft. Jika autentikasi berhasil, ID Microsoft Entra mengembalikan token akses ke aplikasi, dan aplikasi kemudian dapat menggunakan token akses untuk mengotorisasi permintaan ke sumber daya Bus Layanan.

Penting

Anda dapat menonaktifkan autentikasi kunci lokal atau SAS untuk namespace Bus Layanan dan hanya mengizinkan autentikasi Microsoft Entra. Untuk instruksi langkah demi langkah, lihat Menonaktifkan autentikasi lokal.

Gambaran Umum

Ketika prinsipal keamanan (pengguna, grup, atau aplikasi) mencoba mengakses entitas Microsoft Azure Service Bus, permintaan harus diotorisasi. Dengan ID Microsoft Entra, akses ke sumber daya adalah proses dua langkah.

  1. Pertama, identitas perwakilan keamanan diautentikasi, dan token OAuth 2.0 ditampilkan. Nama sumber daya untuk meminta token adalah https://servicebus.azure.net.
  2. Selanjutnya, token diteruskan sebagai bagian dari permintaan ke layanan Microsoft Azure Service Bus untuk mengotorisasi akses ke sumber daya yang ditentukan.

Langkah otentikasi mengharuskan permintaan aplikasi berisi token akses OAuth 2.0 pada saat runtime. Jika aplikasi berjalan dalam entitas Azure seperti Azure VM, Virtual Machine Scale Set, atau aplikasi Azure Function, aplikasi tersebut dapat menggunakan identitas terkelola untuk mengakses sumber daya. Untuk mempelajari cara mengautentikasi permintaan yang dibuat oleh identitas terkelola ke layanan Bus Layanan, lihat Mengautentikasi akses ke sumber daya Azure Bus Layanan dengan ID Microsoft Entra dan identitas terkelola untuk Sumber Daya Azure.

Langkah otorisasi mengharuskan satu atau beberapa peran Azure ditetapkan ke perwakilan keamanan. Azure Service Bus menyediakan peran Azure yang mencakup sekumpulan izin untuk sumber daya Service Bus. Peran yang ditetapkan ke prinsip keamanan menentukan izin yang akan dimiliki prinsipal pada sumber daya Bus Layanan. Untuk mempelajari selengkapnya tentang penetapan peran Azure ke Azure Service Bus, lihat Peran bawaan Azure untuk Azure Service Bus.

Aplikasi asli dan aplikasi web yang membuat permintaan ke Bus Layanan juga dapat diotorisasi dengan ID Microsoft Entra. Artikel ini memperlihatkan cara meminta token akses dan menggunakannya untuk mengotorisasi permintaan sumber daya Microsoft Azure Service Bus.

Peran bawaan untuk Azure Service Bus

Microsoft Entra mengotorisasi hak akses ke sumber daya aman melalui Azure RBAC. Azure Service Bus menetapkan sekumpulan peran bawaan Azure yang mencakup serangkaian izin umum yang digunakan untuk mengakses entitas Microsoft Azure Service Bus dan Anda juga dapat menentukan peran kustom untuk mengakses data.

Saat peran Azure ditetapkan ke perwakilan keamanan Microsoft Entra, Azure memberikan akses ke sumber daya tersebut untuk prinsip keamanan tersebut. Akses dapat dicakup ke tingkat langganan, grup sumber daya, atau namespace Service Bus. Perwakilan keamanan Microsoft Entra dapat berupa pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola untuk sumber daya Azure.

Untuk Azure Service Bus, pengelolaan namespace dan semua sumber daya terkait melalui portal Microsoft Azure dan AZURE Resource Management API sudah dilindungi menggunakan model Azure RBAC. Azure menyediakan peran bawaan berikut untuk mengotorisasi akses ke namespace Bus Layanan:

  • Pemilik Data Azure Bus Layanan: Gunakan peran ini untuk memberikan akses penuh ke sumber daya Bus Layanan.
  • Pengirim Data Azure Bus Layanan: Gunakan peran ini untuk memberikan akses pengiriman ke namespace Bus Layanan dan entitasnya.
  • Azure Service Bus Data Receiver: Gunakan peran ini untuk memberikan akses penerimaan ke namespace Service Bus dan entitasnya.

Cakupan sumber daya

Sebelum Anda menetapkan peran Azure ke perwakilan keamanan, tentukan cakupan akses yang harus dimiliki perwakilan keamanan. Praktik terbaik memerintahkan bahwa yang terbaik selalu hanya memberikan cakupan sesempit mungkin.

Daftar berikut ini menjelaskan tingkat tempat Anda dapat mencakup akses ke sumber daya Microsoft Azure Service Bus, dimulai dengan lingkup tersempit:

  • Antrean, topik, atau langganan: Penetapan peran berlaku untuk entitas Microsoft Azure Service Bus tertentu. Saat ini, portal Microsoft Azure tidak mendukung penetapan pengguna/grup/identitas terkelola ke peran Service Bus Azure di tingkat langganan.
  • Namespace Service Bus: Penetapan peran mencakup seluruh topologi Service Bus di bawah namespace layanan dan ke grup konsumen yang terkait dengannya.
  • Grup Sumber Daya: Penetapan peran berlaku untuk semua sumber daya Microsoft Azure Service Bus di bawah grup sumber daya.
  • Langganan: Penetapan peran berlaku untuk semua sumber daya Microsoft Azure Service Bus di semua grup sumber daya dalam langganan.

Catatan

Ingatlah bahwa penetapan peran Azure mungkin membutuhkan waktu hingga lima menit untuk disebarluaskan.

Untuk informasi selengkapnya tentang bagaimana peran bawaan ditentukan, lihat Memahami definisi peran. Untuk informasi tentang membuat peran kustom Azure, lihat Peran kustom Azure.

Mengautentikasi dari aplikasi

Keuntungan utama menggunakan ID Microsoft Entra dengan Bus Layanan adalah kredensial Anda tidak perlu lagi disimpan dalam kode Anda. Sebagai gantinya, Anda dapat meminta token akses OAuth 2.0 dari platform Identitas Microsoft. Microsoft Entra mengautentikasi prinsip keamanan (pengguna, grup, perwakilan layanan, atau identitas terkelola untuk sumber daya Azure) yang menjalankan aplikasi. Jika autentikasi berhasil, ID Microsoft Entra mengembalikan token akses ke aplikasi, dan aplikasi kemudian dapat menggunakan token akses untuk mengotorisasi permintaan ke Azure Bus Layanan.

Bagian berikut menunjukkan kepada Anda cara mengonfigurasi aplikasi native atau aplikasi web untuk autentikasi dengan platform identitas Microsoft 2.0. Untuk informasi selengkapnya tentang platform identitas Microsoft 2.0, lihat Ringkasan platform identitas Microsoft (v2.0).

Untuk gambaran umum alur pemberian kode OAuth 2.0, lihat Mengotorisasi akses ke aplikasi web Microsoft Entra menggunakan alur pemberian kode OAuth 2.0.

Mendaftarkan aplikasi Anda dengan penyewa Microsoft Entra

Langkah pertama dalam menggunakan ID Microsoft Entra untuk mengotorisasi entitas Bus Layanan adalah mendaftarkan aplikasi klien Anda dengan penyewa Microsoft Entra dari portal Azure. Ketika Anda mendaftarkan aplikasi klien, Anda menyediakan informasi tentang aplikasi ke AD. MICROSOFT Entra ID kemudian menyediakan ID klien (juga disebut ID aplikasi) yang dapat Anda gunakan untuk mengaitkan aplikasi Anda dengan runtime Microsoft Entra. Untuk mempelajari selengkapnya tentang ID klien, lihat Objek perwakilan aplikasi dan layanan di ID Microsoft Entra.

Ikuti langkah-langkah dalam Mulai Cepat: Mendaftarkan aplikasi dengan platform identitas Microsoft untuk mendaftarkan aplikasi Anda dengan ID Microsoft Entra.

Catatan

Jika Anda mendaftarkan aplikasi Anda sebagai aplikasi asli, Anda dapat menentukan URI yang valid untuk URI Pengalihan. Untuk aplikasi asli, nilai ini tidak harus menjadi URL nyata. Untuk aplikasi web, URI pengalihan harus merupakan URI yang valid, karena menentukan URL yang disediakan token.

Setelah mendaftarkan aplikasi, Anda akan melihat ID Aplikasi (klien) dan ID Direktori (penyewa) di bawah Pengaturan:

Penting

Catat TenantId dan ApplicationId. Anda akan membutuhkan nilai-nilai ini untuk menjalankan aplikasi.

Screenshot showing the App registration page showing the Application ID and Tenant ID.

Untuk informasi selengkapnya tentang mendaftarkan aplikasi dengan ID Microsoft Entra, lihat Mengintegrasikan aplikasi dengan ID Microsoft Entra.

Membuat rahasia klien

Aplikasi ini membutuhkan rahasia klien untuk membuktikan identitasnya saat meminta token. Untuk menambahkan rahasia klien, ikuti langkah-langkah ini.

  1. Buka pendaftaran aplikasi Anda di portal Microsoft Azure jika Anda belum berada di halaman tersebut.

  2. Pilih Sertifikat & rahasia di menu sebelah kiri.

  3. Pada Rahasia klien, pilih Rahasia klien baru untuk membuat rahasia baru.

    Screenshot showing the Certificates and secrets page with New client secret button selected.

  4. Berikan deskripsi untuk rahasia tersebut, dan pilih interval kedaluwarsa yang diinginkan, lalu pilih Tambahkan.

    Screenshot showing the Add a client secret page.

  5. Segera salin nilai rahasia baru ke lokasi yang aman. Nilai isian ditampilkan kepada Anda hanya sekali.

    Screenshot showing the Client secrets section with the secret you added.

Izin untuk Service Bus API

Jika aplikasi Anda adalah aplikasi konsol, Anda harus mendaftarkan aplikasi native dan menambahkan izin API untuk Microsoft.ServiceBus ke set izin yang diperlukan. Aplikasi asli juga memerlukan uri pengalihan di ID Microsoft Entra, yang berfungsi sebagai pengidentifikasi; URI tidak perlu menjadi tujuan jaringan. Gunakan https://servicebus.microsoft.com untuk contoh ini, karena kode sampel sudah menggunakan URI tersebut.

Menetapkan peran Azure menggunakan portal Microsoft Azure

Tetapkan salah satu peran Service Bus ke layanan utama aplikasi pada cakupan yang diinginkan (namespace Service Bus, grup sumber daya, langganan). Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

Setelah menentukan peran dan cakupannya, Anda dapat menguji perilaku ini dengan sampel di GitHub.

Mengautentikasi klien Service Bus

Setelah mendaftarkan aplikasi dan memberinya izin untuk mengirim/menerima data di Azure Service Bus, Anda dapat mengautentikasi klien Anda dengan kredensial rahasia klien, yang akan memungkinkan Anda membuat permintaan terhadap Azure Service Bus.

Untuk daftar skenario yang mendukung akuisisi token, lihat bagian Skenario microsoft Authentication Library (MSAL) untuk repositori GitHub .NET .

Dengan menggunakan pustaka Azure.Messaging.ServiceBus terbaru, Anda dapat mengautentikasi ServiceBusClient dengan ClientSecretCredential, yang ditentukan dalam pustaka Azure.Identity.

TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);

Jika Anda menggunakan paket .NET yang lebih lama, lihat sampel RoleBasedAccessControl di repositori sampel azure-service-bus.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang olahpesan Service Bus, lihat topik berikut ini.