Membangun aplikasi dengan menggunakan identitas terkelola Microsoft Entra

Selesai

Anda sudah membuat Azure VM dan menetapkan identitas yang dikelola sistem. Aplikasi yang berjalan di VM ini harus mengautentikasi permintaan ke sumber daya Azure. Alih-alih menggunakan kata sandi untuk kunci bersama, Anda akan menggunakan identitas terkelola yang ditetapkan sistem.

Di unit ini, Anda akan mempelajari lebih lanjut tentang bagaimana aplikasi dapat menggunakan identitas terkelola untuk autentikasi. Anda akan melihat cara menggunakan Azure Key Vault untuk menentukan kebijakan otorisasi, dan Anda akan mengaktifkan identitas terautentikasi untuk membaca informasi rahasia.

Identitas Terkelola

Di unit sebelumnya, Anda mengetahui bahwa Azure mendukung identitas terkelola yang ditetapkan sistem dan identitas terkelola yang ditetapkan pengguna. Azure membuat dan mengelola identitas terkelola yang ditetapkan sistem. Ini terkait erat dengan sumber daya tertentu. Misalnya, jika Anda membuat VM yang memiliki identitas terkelola yang ditetapkan sistem, Azure membuat identitas secara otomatis. Azure mengaitkan identitas dengan VM. Jika VM dihapus, identitas juga akan dihapus.

Identitas terkelola yang ditetapkan pengguna tidak bergantung pada sumber daya apa pun. Anda membuat identitas terkelola yang ditetapkan pengguna secara manual, lalu menetapkannya ke sumber daya atau layanan, seperti aplikasi pelacakan stok Anda. Saat aplikasi berjalan, aplikasi menggunakan identitas terkelola yang ditetapkan pengguna. Anda menetapkan hak akses ke identitas ini untuk sumber daya Azure yang perlu diakses aplikasi. Anda dapat menggunakan pendekatan ini untuk menyebarkan aplikasi di beberapa VM. Aplikasi menggunakan identitas terkelola yang ditetapkan pengguna ini daripada menyiapkan identitas terkelola yang ditetapkan sistem untuk setiap VM.

Membuat dan mengelola identitas terkelola yang ditetapkan pengguna

Anda dapat membuat identitas terkelola yang ditetapkan pengguna di portal Azure atau dari perintah. Perintah berikut menggunakan Azure CLI:

az identity create \
  --name <identity name>
  --resource-group <resource group>

Jalankan perintah berikut untuk melihat daftar identitas, termasuk identitas terkelola yang ditetapkan sistem. Perhatikan ID utama identitas Anda. Azure menggunakan ID ini untuk menetapkan dan memverifikasi hak istimewa.

az identity list \
  --resource-group <resource group>

Setelah membuat identitas, Anda dapat menggunakan ID utama untuk mengaitkan identitas dengan sumber daya.

Untuk menggunakan identitas dengan aplikasi fungsi Azure, jalankan perintah berikut:

az functionapp identity assign \
  --name <function app name> \
  --resource-group <resource group> \
  --role <principal id>

Aplikasi fungsi menggunakan identitas ini untuk berjalan. Aplikasi fungsi ini dapat mengakses sumber daya yang tersedia untuk identitas.

Perintah yang diperlukan bervariasi dari sumber daya ke sumber daya. Misalnya, untuk memberikan identitas kemampuan untuk membaca dan mencantumkan kunci dari Azure Key Vault, jalankan perintah berikut:

az keyvault set-policy \
    --name <key vault name> \
    --object-id <principal id> \
    --secret-permissions get list

Untuk menghapus identitas terkelola yang ditetapkan pengguna, jalankan perintah berikut:

az identity delete \
  --name <identity name>
  --resource-group <resource group>

Menggunakan identitas terkelola dengan Azure Key Vault

Penyedia DefaultAzureCredential memungkinkan Anda menggunakan identitas terkelola untuk autentikasi saat aplikasi kami disebarkan ke Azure, dan menggunakan kredensial pengembang lokal selama penyebaran. Untuk menggunakan DefaultAzureCredential, Anda harus menginstal paket Azure.Identity:

dotnet install Azure.Identity

Dengan menggunakan DefaultAzureCredential, kita sekarang dapat membuat SecretClient yang diautentikasi.

var client = new SecretClient(new Uri(keyVaultUrl), new DefaultAzureCredential());

Setelah membuat klien, kita mengambil rahasia bernama.

KeyVaultSecret secretWithValue = await client.GetSecretAsync(secret.Name).ConfigureAwait(false);