Bagikan melalui


Memigrasikan aplikasi untuk menggunakan koneksi tanpa kata sandi dengan Azure Blob Storage

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.

Mengonfigurasikan peran dan pengguna untuk autentikasi pengembangan lokal

Saat mengembangkan secara lokal, pastikan bahwa akun pengguna yang mengakses data blob memiliki izin yang benar. Anda akan memerlukan Kontributor Data Blob Penyimpanan untuk membaca dan menulis data blob. 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. Anda dapat mempelajari selengkapnya tentang cakupan yang tersedia untuk penetapan peran di halaman gambaran umum cakupan.

Dalam skenario ini, Anda akan menetapkan izin ke akun pengguna, yang tercakup ke akun penyimpanan, untuk mengikuti Prinsip Hak Istimewa Paling Rendah. Praktik ini hanya memberi pengguna izin minimum yang diperlukan dan menciptakan lingkungan produksi yang lebih aman.

Contoh berikut akan menetapkan peran Kontributor Data Blob Penyimpanan ke akun pengguna Anda, yang menyediakan akses baca dan tulis ke data blob di akun penyimpanan Anda.

Penting

Dalam kebanyakan kasus, dibutuhkan 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.

  1. Di portal Azure, temukan akun penyimpanan Anda menggunakan bilah pencarian utama atau navigasi kiri.

  2. Di halaman gambaran umum akun penyimpanan, pilih Kontrol akses (IAM) dari menu 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 Kontributor Data Blob Penyimpanan 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.

Masuk dan migrasikan kode aplikasi untuk menggunakan koneksi tanpa kata sandi

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

Selanjutnya, perbarui kode Anda untuk menggunakan koneksi tanpa kata sandi.

  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 BlobServiceClient untuk menyambungkan ke Azure Blob Storage. Perbarui kode berikut agar sesuai dengan contoh berikut:

    DefaultAzureCredential credential = new();
    
    BlobServiceClient blobServiceClient = new(
        new Uri($"https://{storageAccountName}.blob.core.windows.net"),
        credential);
    
  1. Pastikan untuk memperbarui nama akun penyimpanan di URI BlobServiceClient Anda. Anda dapat menemukan nama akun penyimpanan di halaman gambaran umum portal Azure.

    Cuplikan layar memperlihatkan cara menemukan nama akun penyimpanan.

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 untuk pengguna dev lokal Anda di Azure memungkinkan aplikasi Anda terhubung 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 Blob Storage menggunakan 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 dibuat untuk mengakses akun penyimpanan. Berikan izin dengan menetapkan peran ke identitas terkelola, seperti yang Anda lakukan dengan pengguna pengembangan lokal Anda.

  1. Buka halaman gambaran umum akun penyimpanan 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 Kontributor Data Blob Penyimpanan, yang merupakan peran umum yang digunakan untuk mengelola operasi data untuk blob. Anda dapat menetapkan peran apa pun yang sesuai untuk kasus penggunaan Anda. Pilih Kontributor Data Blob Penyimpanan dari daftar, lalu 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.

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 akun penyimpanan. Perlu diingat bahwa mungkin perlu waktu beberapa menit agar penetapan peran disebarkan 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: