Menggunakan identitas terkelola dengan mesin virtual Azure

Selesai

Anda memutuskan untuk menjalankan aplikasi pelacakan stok di dalam VM yang memiliki identitas terkelola yang ditetapkan. Penyiapan ini memungkinkan aplikasi menggunakan brankas kunci Azure untuk mengautentikasi tanpa harus menyimpan nama pengguna dan kata sandi dalam kode.

Setelah perusahaan Anda memigrasikan VM dari lokal ke Azure, Anda dapat menghapus detail autentikasi yang dikodekan secara permanen dari kode aplikasi. Anda ingin menggunakan token identitas terkelola yang lebih aman untuk mengakses sumber daya Azure.

Di unit ini, Anda akan mempelajari bagaimana identitas dikelola di dalam Azure VM. Anda juga akan mempelajari cara berinteraksi dengan Azure Resource Manager guna membentuk lingkungan yang lebih aman untuk aplikasi.

Identitas terkelola di dalam mesin virtual Azure

Di mesin virtual, gunakan identitas terkelola untuk mengakses beberapa sumber daya Azure tanpa harus menentukan kredensial dalam kode aplikasi Anda. Identitas terkelola memungkinkan autentikasi otomatis di latar belakang. Aplikasi Anda tetap mudah digunakan dan seaman mungkin.

Anda dapat menetapkan identitas terkelola ke mesin virtual selama pembuatan build atau kapan saja setelahnya. Anda dapat menetapkan identitas terkelola ke VM yang sudah ada dengan menggunakan portal Azure, Azure CLI, atau PowerShell.

Di unit sebelumnya, Anda telah mempelajari tentang identitas terkelola yang ditetapkan sistem dan identitas terkelola yang ditetapkan pengguna. Anda dapat mengaktifkan identitas terkelola yang ditetapkan sistem dari bagian Identitas di pengaturan VM. Ketika Anda melakukannya, inilah yang terjadi:

  1. Mesin virtual mengirimkan permintaan untuk identitas terkelola.
  2. Di ID Microsoft Entra, perwakilan layanan dibuat untuk VM dalam penyewa yang dipercaya langganan.
  3. Azure Resource Manager memperbarui titik akhir identitas Azure Instance Metadata Service dengan ID dan sertifikat klien perwakilan layanan.
  4. Informasi perwakilan layanan baru digunakan untuk memberikan akses VM ke sumber daya Azure. Untuk memberi aplikasi Anda akses ke brankas kunci, gunakan kontrol akses berbasis peran (RBAC) di ID Microsoft Entra. Tetapkan peran yang diperlukan ke perwakilan layanan VM. Misalnya, Anda dapat menetapkan peran Pembaca atau Kontributor.
  5. Panggilan dilakukan ke ID Microsoft Entra untuk meminta token akses dengan menggunakan ID klien dan sertifikat.
  6. MICROSOFT Entra ID mengembalikan token akses JSON Web Token.

Setelah konfigurasi selesai, Anda tidak perlu membuat kredensial lain untuk mengakses sumber daya lain yang dihosting di Azure yang mendukung autentikasi Microsoft Entra.

Auntentikasi dan kontrol akses

RBAC adalah sistem otorisasi yang dibuat di Azure Resource Manager. Anda dapat menggunakannya untuk memberikan akses menenangkan ke sumber daya di Azure.

Izin dibentuk oleh akses berbasis peran. Akses berbasis peran terdiri dari tiga elemen: perwakilan keamanan, definisi peran, dan cakupan.

Menggunakan identitas terkelola dalam aplikasi

Aplikasi yang berjalan pada sumber daya Azure, seperti VM atau aplikasi fungsi, menggunakan identitas terkelola untuk mengautentikasi dan mengakses sumber daya lainnya.

Proses autentikasi dan akses melibatkan serangkaian permintaan ke Azure Instance Metadata Service:

  1. Layanan tersebut memvalidasi identitas yang terkait dengan aplikasi Anda.
  2. Menghasilkan token akses sumber daya.
  3. Aplikasi Anda mengirimkan token ke sumber daya yang perlu diakses.
  4. Token diautentikasi.
  5. Jika token valid, sumber daya memverifikasi bahwa token mewakili identitas yang memiliki otorisasi yang sesuai untuk permintaan.
  6. Setelah pengujian berhasil, aplikasi Anda dapat mengakses sumber daya.

Untuk menghindari banyak kompleksitas, Anda dapat menggunakan AzureServiceTokenProvider API dalam kode Anda. Objek AzureServiceTokenProvider mengambil ID utama untuk aplikasi Anda dan menghasilkan token akses sumber daya. Gunakan metode GetAccessTokenAsync untuk menentukan sumber daya yang token aksesnya akan dihasilkan. Berikan URI layanan yang menghosting sumber daya.

Contoh C# berikut menghasilkan token untuk Azure Storage.

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
var token = await azureServiceTokenProvider.GetAccessTokenAsync("https://storage.azure.com/");

API Azure Storage lainnya dapat menggunakan token ini untuk mengautentikasi dan mengotorisasi akses.