Bagikan melalui


Memigrasikan aplikasi untuk menggunakan koneksi tanpa kata sandi dengan Azure Event Hubs

Permintaan aplikasi ke layanan Azure harus diautentikasi menggunakan konfigurasi seperti kunci akses akun atau koneksi tanpa kata sandi. Namun, Anda harus memprioritaskan koneksi tanpa kata sandi di aplikasi jika memungkinkan. Metode autentikasi tradisional yang menggunakan kata sandi atau kunci rahasia menciptakan risiko dan komplikasi keamanan. Kunjungi koneksi tanpa kata sandi untuk hub layanan Azure untuk mempelajari selengkapnya tentang keuntungan pindah ke koneksi tanpa kata sandi.

Tutorial berikut menjelaskan cara memigrasikan aplikasi yang ada untuk terhubung menggunakan koneksi tanpa kata sandi. Langkah-langkah migrasi yang sama ini harus berlaku apakah Anda menggunakan kunci akses, string koneksi, atau pendekatan berbasis rahasia lainnya.

Mengonfigurasi lingkungan pengembangan lokal Anda

Koneksi tanpa kata sandi dapat dikonfigurasi agar berfungsi untuk lingkungan lokal dan yang dihosting Azure. Di bagian ini, Anda menerapkan konfigurasi untuk memungkinkan pengguna individual mengautentikasi ke Azure Event Hubs untuk pengembangan lokal.

Tetapkan peran pengguna

Saat mengembangkan secara lokal, pastikan bahwa akun pengguna yang mengakses Azure Event Hubs memiliki izin yang benar. Anda memerlukan peran Penerima Data Azure Event Hubs dan Pengirim Data Azure Event Hubs untuk membaca dan menulis data pesan. Untuk menetapkan sendiri peran ini, Anda harus diberi peran Administrator Akses Pengguna, atau peran lain yang menyertakan tindakan Microsoft.Authorization/roleAssignments/write . Anda dapat menetapkan peran Azure RBAC kepada pengguna menggunakan portal Azure, Azure CLI, atau Azure PowerShell. Pelajari selengkapnya tentang cakupan yang tersedia untuk penetapan peran di halaman gambaran umum cakupan .

Contoh berikut menetapkan peran Pengirim Data Azure Event Hubs dan Penerima Data Azure Event Hubs ke akun pengguna Anda. Peran ini memberikan akses baca dan tulis ke pesan pusat aktivitas.

  1. Di portal Azure, temukan pusat aktivitas Anda menggunakan bilah pencarian utama atau navigasi kiri.

  2. Pada halaman gambaran umum pusat aktivitas, pilih Kontrol akses (IAM) dari menu sebelah kiri.

  3. Di halaman Kontrol akses (IAM), pilih tab Penetapan peran.

  4. Pilih + Tambahkan dari menu atas lalu Tambahkan penetapan peran dari menu drop-down yang dihasilkan.

    Cuplikan layar yang menampilkan cara menetapkan peran.

  5. Gunakan kotak pencarian untuk memfilter hasil ke peran yang diinginkan. Untuk contoh ini, cari Pengirim Data Azure Event Hubs dan pilih hasil yang cocok lalu pilih Berikutnya.

  6. Di bagian Tetapkan akses ke, pilih Pengguna, grup, atau perwakilan layanan, lalu pilih + Pilih anggota.

  7. Dalam dialog, cari nama pengguna Microsoft Entra Anda (biasanya alamat email user@domain Anda) lalu pilih Pilih di bagian bawah dialog.

  8. Pilih Tinjau + tetapkan untuk masuk ke halaman akhir, lalu Tinjau + tetapkan lagi untuk menyelesaikan proses.

  9. Ulangi langkah-langkah ini untuk peran Penerima Data Azure Event Hubs untuk memungkinkan akun mengirim dan menerima pesan.

Penting

Dalam kebanyakan kasus, akan memakan waktu satu atau dua menit agar penetapan peran disebarluaskan di Azure, tetapi dalam kasus yang jarang terjadi mungkin perlu waktu hingga delapan menit. Jika Anda menerima kesalahan autentikasi saat pertama kali menjalankan kode, tunggu beberapa saat dan coba lagi.

Masuk ke Azure secara lokal

Untuk pengembangan lokal, pastikan Anda diautentikasi dengan akun Microsoft Entra yang sama dengan yang Anda tetapkan perannya. Anda dapat mengautentikasi melalui alat pengembangan populer, seperti Azure CLI atau Azure PowerShell. Alat pengembangan yang dapat Anda autentikasi bervariasi di seluruh bahasa.

Masuk ke Azure melalui Azure CLI menggunakan perintah berikut:

az login

Memperbarui kode aplikasi untuk menggunakan koneksi tanpa kata sandi

Pustaka klien Azure Identity, untuk setiap ekosistem berikut, menyediakan kelas yang menangani autentikasi DefaultAzureCredential tanpa kata sandi ke Azure:

DefaultAzureCredential mendukung beberapa metode autentikasi. Metode yang digunakan ditentukan pada runtime. Pendekatan ini memungkinkan aplikasi Anda menggunakan metode autentikasi yang berbeda di lingkungan yang berbeda (lokal vs. produksi) tanpa menerapkan kode spesifik per lingkungan. Lihat tautan sebelumnya untuk pesanan dan lokasi di mana DefaultAzureCredential mencari kredensial.

  1. Untuk digunakan DefaultAzureCredential dalam aplikasi .NET, instal Azure.Identity paket:

    dotnet add package Azure.Identity
    
  2. Di bagian atas file Anda, tambahkan kode berikut:

    using Azure.Identity;
    
  3. Identifikasi lokasi dalam kode Anda yang membuat EventHubProducerClient objek atau EventProcessorClient untuk menyambungkan ke Azure Event Hubs. Perbarui kode berikut agar sesuai dengan contoh berikut:

    DefaultAzureCredential credential = new();
    var eventHubNamespace = $"https://{namespace}.servicebus.windows.net";
    
    // Event Hubs producer
    EventHubProducerClient producerClient = new(
        eventHubNamespace,
        eventHubName,
        credential);
    
    // Event Hubs processor
    EventProcessorClient processorClient = new(
        storageClient,
        EventHubConsumerClient.DefaultConsumerGroupName,
        eventHubNamespace,
        eventHubName,
        credential);
    
  1. Pastikan untuk memperbarui namespace layanan pusat aktivitas di URI objek atau EventProcessorClient AndaEventHubProducerClient. Anda dapat menemukan nama namespace layanan di halaman gambaran umum portal Azure.

    Cuplikan layar memperlihatkan cara menemukan nama namespace layanan.

Menjalankan aplikasi secara lokal

Setelah menerapkan perubahan kode ini, jalankan aplikasi Anda secara lokal. Konfigurasi baru akan mengambil kredensial lokal Anda, seperti Azure CLI, Visual Studio, atau IntelliJ. Peran yang Anda tetapkan kepada pengguna di Azure memungkinkan aplikasi Anda tersambung ke layanan Azure secara lokal.

Mengonfigurasikan lingkungan hosting Azure

Setelah aplikasi Anda dikonfigurasi untuk menggunakan koneksi tanpa kata sandi dan berjalan secara lokal, kode yang sama dapat mengautentikasi ke layanan Azure setelah disebarkan ke Azure. Bagian yang mengikuti menjelaskan cara mengonfigurasi aplikasi yang disebarkan untuk menyambungkan ke Azure Event Hubs menggunakan identitas terkelola. Identitas terkelola memberikan identitas terkelola secara otomatis di Microsoft Entra ID untuk digunakan aplikasi saat menyambung ke sumber daya yang mendukung autentikasi Microsoft Entra. Pelajari selengkapnya tentang identitas terkelola:

Buat identitas terkelola

Anda dapat membuat identitas terkelola yang ditetapkan pengguna menggunakan portal Azure atau Azure CLI. Aplikasi Anda menggunakan identitas untuk mengautentikasi ke layanan lain.

  1. Di bagian atas portal Azure, cari Identitas terkelola. Pilih hasil Identitas Terkelola.
  2. Pilih + Buat di bagian atas halaman gambaran umum Identitas Terkelola.
  3. Pada tab Dasar , masukkan nilai berikut ini:
    • Langganan: Pilih langganan yang Anda inginkan.
    • Grup Sumber Daya: Pilih grup sumber daya yang Anda inginkan.
    • Wilayah: Pilih wilayah di dekat lokasi Anda.
    • Nama: Masukkan nama yang dapat dikenali untuk identitas Anda, seperti MigrationIdentity.
  4. Pilih Tinjau + buat di bagian bawah halaman.
  5. Setelah pemeriksaan validasi selesai, pilih Buat. Azure membuat identitas baru yang ditetapkan pengguna.

Setelah sumber daya dibuat, pilih Buka sumber daya untuk melihat detail identitas terkelola.

Cuplikan layar memperlihatkan cara membuat identitas terkelola yang ditetapkan pengguna.

Mengaitkan identitas terkelola dengan aplikasi web Anda

Anda perlu mengonfigurasi aplikasi web untuk menggunakan identitas terkelola yang Anda buat. Tetapkan identitas ke aplikasi Anda menggunakan portal Azure atau Azure CLI.

Selesaikan langkah-langkah berikut di portal Azure untuk mengaitkan identitas dengan aplikasi Anda. Langkah-langkah yang sama ini berlaku untuk layanan Azure berikut ini:

  • Azure Spring Apps
  • Azure Container Apps
  • Komputer virtual Azure
  • Azure Kubernetes Service
  1. Navigasi ke halaman gambaran umum aplikasi web Anda.

  2. Pilih Identitas dari navigasi kiri.

  3. Pada halaman Identitas , beralihlah ke tab Pengguna yang ditetapkan.

  4. Pilih + Tambahkan untuk membuka flyout Tambahkan identitas terkelola yang ditetapkan pengguna.

  5. Pilih langganan yang Anda gunakan sebelumnya untuk membuat identitas.

  6. Cari MigrationIdentity menurut nama dan pilih dari hasil pencarian.

  7. Pilih Tambahkan untuk mengaitkan identitas dengan aplikasi Anda.

    Cuplikan layar memperlihatkan cara membuat identitas yang ditetapkan pengguna.

Menetapkan peran ke identitas terkelola

Selanjutnya, Anda perlu memberikan izin ke identitas terkelola yang Anda buat untuk mengakses pusat aktivitas Anda. Berikan izin dengan menetapkan peran ke identitas terkelola, seperti yang Anda lakukan dengan pengguna pengembangan lokal Anda.

  1. Navigasi ke halaman gambaran umum pusat aktivitas Anda dan pilih Kontrol Akses (IAM) dari navigasi kiri.

  2. Pilih Tambahkan penetapan peran

    Cuplikan layar memperlihatkan cara menambahkan peran ke identitas terkelola.

  3. Dalam kotak pencarian Peran , cari Pengirim Data Azure Event Hubs, yang merupakan peran umum yang digunakan untuk mengelola operasi data untuk antrean. Anda dapat menetapkan peran apa pun yang sesuai untuk kasus penggunaan Anda. Pilih Pengirim Data Azure Event Hubs dari daftar dan pilih Berikutnya.

  4. Di layar Tambahkan penetapan peran, untuk opsi Tetapkan akses ke, pilih Identitas terkelola. Lalu, pilih +Pilih anggota.

  5. Di flyout, cari identitas terkelola yang Anda buat berdasarkan nama dan pilih dari hasilnya. Pilih Pilih untuk menutup menu flyout.

    Cuplikan layar memperlihatkan cara memilih identitas terkelola yang ditetapkan.

  6. Pilih Berikutnya beberapa kali hingga Anda dapat memilih Tinjau + tetapkan untuk menyelesaikan penetapan peran.

  7. Ulangi langkah-langkah ini untuk peran Penerima Data Azure Event Hub.

Memperbarui kode aplikasi

Anda perlu mengonfigurasi kode aplikasi untuk mencari identitas terkelola tertentu yang Anda buat saat disebarkan ke Azure. Dalam beberapa skenario, secara eksplisit mengatur identitas terkelola untuk aplikasi juga mencegah identitas lingkungan lain terdeteksi dan digunakan secara otomatis.

  1. Pada halaman gambaran umum identitas terkelola, salin nilai ID klien ke clipboard Anda.

  2. Terapkan perubahan khusus bahasa berikut:

    Buat DefaultAzureCredentialOptions objek dan teruskan ke DefaultAzureCredential. Atur properti ManagedIdentityClientId ke ID klien.

    DefaultAzureCredential credential = new(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = managedIdentityClientId
        });
    
  3. Sebarkan ulang kode Anda ke Azure setelah melakukan perubahan ini agar pembaruan konfigurasi diterapkan.

Menguji aplikasi

Setelah menyebarkan kode yang diperbarui, telusuri ke aplikasi yang dihosting di browser. Aplikasi Anda harus berhasil terhubung ke pusat aktivitas. Perlu diingat bahwa perlu waktu beberapa menit agar penetapan peran disebarluaskan melalui lingkungan Azure Anda. Aplikasi Anda kini dikonfigurasikan untuk berjalan baik secara lokal maupun di lingkungan produksi tanpa pengembang harus mengelola rahasia dalam aplikasi itu sendiri.

Langkah berikutnya

Dalam tutorial ini, Anda belajar cara memigrasikan aplikasi ke koneksi tanpa kata sandi.

Anda dapat membaca sumber daya berikut untuk menjelajahi konsep yang dibahas dalam artikel ini secara lebih mendalam: