Tutorial: Mengakses layanan Azure dari aplikasi web .NET

Pelajari cara mengakses layanan Azure, seperti Azure Storage, dari aplikasi web (bukan pengguna yang masuk) yang berjalan di Azure App Service dengan menggunakan identitas terkelola. Tutorial ini menunjukkan koneksi ke Azure Storage sebagai contoh.

Layanan apa pun yang mendukung identitas terkelola (B pada gambar berikut) dapat diakses dengan aman menggunakan tutorial ini:

  • Azure Storage
  • Azure SQL Database
  • Azure Key Vault

Diagram that shows how to access storage.

Anda ingin menambahkan akses aman ke layanan Azure (Azure Storage, Azure SQL Database, Azure Key Vault, atau layanan lainnya) dari aplikasi web Anda. Anda dapat menggunakan kunci bersama, tetapi kemudian Anda harus khawatir tentang keamanan operasional siapa yang dapat membuat, menyebarkan, dan mengelola rahasia. Ada kemungkinan juga bahwa kunci dapat diperiksa ke GitHub, yang peretas tahu cara memindainya. Cara yang lebih aman untuk memberi aplikasi web Anda akses ke data adalah dengan menggunakan identitas terkelola.

Identitas terkelola dari MICROSOFT Entra ID memungkinkan App Service mengakses sumber daya melalui kontrol akses berbasis peran (RBAC), tanpa memerlukan kredensial aplikasi. Setelah menetapkan identitas terkelola ke aplikasi web Anda, Azure mengurus pembuatan dan distribusi sertifikat. Orang tidak perlu khawatir mengelola rahasia atau kredensial aplikasi.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat identitas terkelola yang ditetapkan sistem di aplikasi web.
  • Buat akun penyimpanan dan wadah Azure Blob Storage.
  • Akses penyimpanan dari aplikasi web dengan menggunakan identitas terkelola.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

Mengaktifkan identitas terkelola pada aplikasi

Jika Anda membuat dan memublikasikan aplikasi web melalui Visual Studio, identitas terkelola diaktifkan di aplikasi untuk Anda. Di layanan aplikasi Anda, pilih Identitas di panel kiri, lalu pilih Sistem yang ditetapkan. Verifikasikan bahwa Status diatur ke Aktif. Jika tidak, pilih Aktif lalu Simpan. Pilih Ya dalam dialog konfirmasi untuk mengaktifkan identitas terkelola yang ditetapkan sistem. Ketika identitas terkelola diaktifkan, status diatur ke Aktif dan ID objek tersedia.

Screenshot that shows the System assigned identity option.

Langkah ini membuat ID objek baru, berbeda dari ID aplikasi yang dibuat di panel Autentikasi/Otorisasi. Salin ID objek identitas terkelola yang ditetapkan sistem. Anda akan membutuhkannya nanti.

Membuat akun penyimpanan dan kontainer Penyimpanan Blob

Sekarang Anda siap untuk membuat akun penyimpanan dan kontainer Penyimpanan Blob.

Setiap akun penyimpanan harus termasuk dalam grup sumber daya Azure. Grup sumber daya adalah kontainer logis untuk mengelompokkan layanan Azure Anda. Saat membuat akun penyimpanan, Anda memiliki opsi untuk membuat grup sumber daya baru atau menggunakan grup sumber daya yang sudah ada. Artikel ini memperlihatkan cara membuat grup sumber daya baru.

Akun penyimpanan v2 tujuan umum menyediakan akses ke semua layanan Penyimpanan Azure: blob, file, antrian, tabel, dan disk. Langkah-langkah yang diuraikan di sini membuat akun penyimpanan v2 tujuan umum, tetapi langkah-langkah untuk membuat semua jenis akun penyimpanan serupa.

Blob di Azure Storage diatur ke dalam kontainer. Sebelum Anda dapat mengunggah blob nanti dalam tutorial ini, Anda harus terlebih dahulu membuat wadah.

Untuk membuat akun penyimpanan v2 tujuan umum di portal Microsoft Azure, ikuti langkah-langkah ini.

  1. Pada menu portal Microsoft Azure, pilih Semua layanan. Pada daftar sumber daya, masukkan Akun Penyimpanan. Saat Anda mulai mengetik, daftar akan memfilter berdasarkan input Anda. Pilih Akun Penyimpanan.

  2. Di jendela Akun Penyimpanan yang muncul, pilih Buat.

  3. Pilih langganan untuk membuat akun penyimpanan.

  4. Di bawah bidang Grup sumber daya, pilih grup sumber daya yang berisi aplikasi web Anda dari menu turun bawah.

  5. Selanjutnya, masukkan nama untuk akun penyimpanan Anda. Nama yang Anda pilih harus unik di seluruh Azure. Nama ini juga harus memiliki panjang 3 dan 24 karakter, dan dapat menyertakan angka dan huruf kecil saja.

  6. Pilih lokasi (wilayah) untuk akun penyimpanan Anda, atau gunakan nilai default.

  7. Biarkan bidang ini diatur ke nilai defaultnya:

    Bidang Nilai
    Model Penyebaran Resource Manager
    Performa Standard
    Jenis akun StorageV2 (tujuan umum v2)
    Replikasi Penyimpanan lewah geo akses baca (RA-GRS)
    Tingkat penyimpanan Populer
  8. Pilih Tinjau + Buat untuk meninjau pengaturan akun penyimpanan Anda dan membuat akun.

  9. Pilih Buat.

Untuk membuat kontainer Penyimpanan Blob di Azure Storage, ikuti langkah-langkah ini.

  1. Buka akun penyimpanan baru Anda di portal Microsoft Azure.

  2. Di menu sebelah kiri untuk akun penyimpanan, gulir ke bagian Penyimpanan data, lalu pilih Penampung.

  3. Pilih tombol + Kontainer.

  4. Ketik Nama untuk kontainer baru Anda. Nama kontainer harus huruf kecil, harus dimulai dengan huruf atau angka, dan hanya boleh menyertakan huruf, angka, dan karakter tanda hubung (-).

  5. Tetapkan tingkat akses publik ke kontainer. Tingkat default adalah Privat (tidak ada akses anonim).

  6. Pilih OK untuk membuat kontainer.

Memberikan akses ke akun penyimpanan

Anda perlu memberikan akses aplikasi web ke akun penyimpanan sebelum dapat membuat, membaca, atau menghapus blob. Pada langkah sebelumnya, Anda mengonfigurasi aplikasi web yang berjalan di App Service dengan identitas terkelola. Menggunakan Azure RBAC, Anda dapat memberikan akses identitas terkelola ke sumber daya lain, sama seperti prinsip keamanan lainnya. Peran Kontributor Data Blob Penyimpanan memberi aplikasi web (diwakili oleh identitas terkelola yang ditetapkan sistem) membaca, menulis, dan menghapus akses ke kontainer dan data blob.

Catatan

Beberapa operasi pada kontainer blob privat tidak didukung oleh Azure RBAC, seperti melihat blob atau menyalin blob antar akun. Kontainer blob dengan tingkat akses privat memerlukan token SAS untuk operasi apa pun yang tidak diotorisasi oleh Azure RBAC. Untuk informasi selengkapnya, lihat Kapan menggunakan tanda tangan akses bersama.

Di portal Microsoft Azure, masuk ke akun penyimpanan Anda untuk memberikan akses aplikasi web Anda. Pilih Kontrol akses (IAM) di panel kiri, lalu pilih Penetapan peran. Anda akan melihat daftar siapa yang memiliki akses ke akun penyimpanan. Sekarang Anda ingin menambahkan penetapan peran ke robot, layanan aplikasi yang membutuhkan akses ke akun penyimpanan. Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

Tetapkan peran Kontributor Data Blob Penyimpanan ke App Service di cakupan langganan. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

Aplikasi web Anda sekarang memiliki akses ke akun penyimpanan Anda.

Akses Blob Storage

Kelas DefaultAzureCredential digunakan untuk mendapatkan kredensial token untuk kode Anda untuk mengotorisasi permintaan ke Azure Storage. Buat contoh kelas DefaultAzureCredential, yang menggunakan identitas terkelola untuk mengambil token dan melampirkannya ke klien layanan. Contoh kode berikut mendapatkan kredensial token terautentikasi dan menggunakannya untuk membuat objek klien layanan, yang mengunggah blob baru.

Untuk melihat kode ini sebagai bagian dari aplikasi sampel, lihat sampel di GitHub.

Instal paket pustaka klien

Instal paket Blob Storage NuGet untuk bekerja dengan Blob Storage dan pustaka klien Azure Identity untuk paket NuGet .NET untuk mengautentikasi dengan kredensial Microsoft Entra. Instal pustaka klien dengan menggunakan antarmuka baris perintah .NET Core atau Package Manager Console di Visual Studio.

Baris perintah .NET Core

  1. Buka baris perintah, dan beralih ke direktori yang memuat file proyek Anda.

  2. Jalankan perintah instalasi.

    dotnet add package Azure.Storage.Blobs
    
    dotnet add package Azure.Identity
    

Konsol Manajer Paket

  1. Buka project atau solusi di Visual Studio, dan buka konsol dengan menggunakan perintah Alat>NuGet Package Manager>Package Manager Console.

  2. Jalankan perintah instalasi.

    Install-Package Azure.Storage.Blobs
    
    Install-Package Azure.Identity
    

.NET contoh

using System;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using System.IO;
using Azure.Identity;

// Some code omitted for brevity.

static public async Task UploadBlob(string accountName, string containerName, string blobName, string blobContents)
{
    // Construct the blob container endpoint from the arguments.
    string containerEndpoint = string.Format("https://{0}.blob.core.windows.net/{1}",
                                                accountName,
                                                containerName);

    // Get a credential and create a client object for the blob container.
    BlobContainerClient containerClient = new BlobContainerClient(new Uri(containerEndpoint),
                                                                    new DefaultAzureCredential());

    try
    {
        // Create the container if it does not exist.
        await containerClient.CreateIfNotExistsAsync();

        // Upload text to a new block blob.
        byte[] byteArray = Encoding.ASCII.GetBytes(blobContents);

        using (MemoryStream stream = new MemoryStream(byteArray))
        {
            await containerClient.UploadBlobAsync(blobName, stream);
        }
    }
    catch (Exception e)
    {
        throw e;
    }
}

Membersihkan sumber daya

Jika Anda sudah selesai dengan tutorial ini dan tidak lagi memerlukan aplikasi web atau sumber daya terkait, bersihkan sumber daya yang Anda buat.

Hapus grup sumber daya

Di portal Microsoft Azure, pilih Grup sumber daya dari menu portal dan pilih grup sumber daya yang berisi layanan aplikasi dan paket layanan aplikasi Anda.

Pilih Hapus grup sumber daya untuk menghapus grup sumber daya dan semua sumber daya.

Screenshot that shows deleting the resource group.

Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara:

  • Membuat identitas terkelola yang ditetapkan sistem.
  • Membuat akun penyimpanan dan kontainer Penyimpanan Blob.
  • Akses penyimpanan dari aplikasi web dengan menggunakan identitas terkelola.