Identitas terkelola di Azure Container Apps

Identitas terkelola dari MICROSOFT Entra ID memungkinkan aplikasi kontainer Anda mengakses sumber daya yang dilindungi Microsoft Entra lainnya. Untuk informasi selengkapnya tentang identitas terkelola di ID Microsoft Entra, lihat Identitas terkelola untuk sumber daya Azure.

Aplikasi kontainer Anda dapat diberikan dua jenis identitas:

  • Identitas yang ditetapkan sistem terkait dengan aplikasi penampung Anda dan dihapus saat aplikasi penampung Anda dihapus. Aplikasi hanya dapat memiliki satu identitas yang ditetapkan sistem.
  • Identitas yang ditetapkan pengguna adalah sumber daya Azure mandiri yang dapat ditetapkan ke aplikasi penampung Anda dan sumber daya lainnya. Aplikasi kontainer dapat memiliki beberapa identitas yang ditetapkan pengguna. Identitas ada sampai Anda menghapusnya.

Mengapa menggunakan identitas terkelola?

Anda dapat menggunakan identitas terkelola di aplikasi kontainer yang sedang berjalan untuk mengautentikasi ke layanan apa pun yang mendukung autentikasi Microsoft Entra.

Dengan identitas terkelola:

  • Aplikasi Anda terhubung ke sumber daya dengan identitas terkelola. Anda tidak perlu mengelola kredensial di aplikasi kontainer Anda.
  • Anda dapat menggunakan kontrol akses berbasis peran untuk memberikan izin tertentu ke identitas terkelola.
  • Identitas yang ditetapkan sistem dibuat dan dikelola secara otomatis. Mereka dihapus saat aplikasi kontainer Anda dihapus.
  • Anda dapat menambahkan dan menghapus identitas yang ditetapkan pengguna dan menetapkannya ke beberapa sumber daya. Mereka independen dari siklus hidup aplikasi kontainer Anda.
  • Anda dapat menggunakan identitas terkelola untuk mengautentikasi dengan Azure Container Registry privat tanpa nama pengguna dan kata sandi untuk menarik kontainer untuk Aplikasi Kontainer Anda.
  • Anda dapat menggunakan identitas terkelola untuk membuat koneksi untuk aplikasi yang mendukung Dapr melalui komponen Dapr

Kasus penggunaan umum

Identitas yang ditetapkan sistem adalah yang terbaik untuk beban kerja yang:

  • tersedia dalam satu sumber daya
  • butuh identitas mandiri

Identitas yang ditetapkan pengguna sangat ideal untuk beban kerja yang:

  • berjalan di banyak sumber daya dan dapat berbagi satu identitas
  • perlu pra-otorisasi ke sumber daya yang aman

Batasan

Menggunakan identitas terkelola dalam aturan skala tidak didukung. Anda masih harus menyertakan string koneksi atau kunci dalam secretRef aturan penskalaan.

Kontainer init tidak dapat mengakses identitas terkelola.

Konfigurasi identitas yang dikelola

Anda dapat mengonfigurasi identitas terkelola Anda melalui:

  • portal Azure
  • Azure CLI
  • template Azure Resource Manager (ARM) Anda

Saat identitas terkelola ditambahkan, dihapus, atau dimodifikasi pada aplikasi kontainer yang sedang berjalan, aplikasi tidak dimulai ulang secara otomatis dan revisi baru tidak dibuat.

Catatan

Saat menambahkan identitas terkelola ke aplikasi kontainer yang disebarkan sebelum 11 April 2022, Anda harus membuat revisi baru.

Tambahkan identitas yang ditetapkan sistem

  1. Di navigasi kiri halaman aplikasi penampung Anda, gulir ke bawah ke grup Pengaturan.

  2. Pilih Identitas.

  3. Dalam tab Ditetapkan oleh sistem, alihkan Status ke Aktif. Pilih Simpan.

Screenshot of system-assigned identities.

Menambahkan identitas yang ditetapkan pengguna

Mengonfigurasi aplikasi kontainer dengan identitas yang ditetapkan pengguna mengharuskan Anda terlebih dahulu membuat identitas, lalu menambahkan pengidentifikasi sumber dayanya ke konfigurasi aplikasi kontainer Anda. Anda dapat membuat identitas yang ditetapkan pengguna melalui portal Azure atau Azure CLI. Untuk informasi tentang membuat dan mengelola identitas yang ditetapkan pengguna, lihat Mengelola identitas terkelola yang ditetapkan pengguna.

Pertama, Anda harus membuat sumber daya identitas yang ditetapkan pengguna.

  1. Buat sumber daya identitas terkelola yang ditetapkan pengguna sesuai dengan langkah-langkah yang ditemukan di Mengelola identitas terkelola yang ditetapkan pengguna.

  2. Di navigasi kiri untuk halaman aplikasi penampung Anda, gulir ke bawah ke grup Pengaturan.

  3. Pilih Identitas.

  4. Pada tab Ditetapkan pengguna, pilih Tambahkan.

  5. Cari identitas yang Anda buat sebelumnya dan pilih identitas tersebut. Pilih Tambahkan.

Screenshot of user-assigned identities.

Konfigurasikan sumber daya target

Untuk beberapa sumber daya, Anda harus mengonfigurasi penetapan peran untuk identitas terkelola aplikasi Anda untuk memberikan akses. Jika tidak, panggilan dari aplikasi Anda ke layanan, seperti Azure Key Vault dan Azure SQL Database, akan ditolak bahkan jika Anda menggunakan token yang valid untuk identitas tersebut. Untuk mempelajari selengkapnya tentang kontrol akses berbasis peran Azure (Azure RBAC), lihat Apa yang dimaksud dengan RBAC?. Untuk mempelajari selengkapnya tentang sumber daya mana yang mendukung token Microsoft Entra, lihat Layanan Azure yang mendukung autentikasi Microsoft Entra.

Penting

Layanan back-end untuk identitas terkelola mempertahankan cache per URI sumber daya selama sekitar 24 jam. Jika Anda memperbarui kebijakan akses sumber daya target tertentu dan segera mengambil token untuk sumber daya tersebut, Anda dapat terus mendapatkan token yang di-cache dengan izin yang sudah usang hingga token tersebut kedaluwarsa. Saat ini tidak ada cara untuk memaksa refresh token.

Sambungkan ke layanan Azure dalam kode aplikasi

Dengan identitas terkelola, aplikasi dapat memperoleh token untuk mengakses sumber daya Azure yang menggunakan ID Microsoft Entra, seperti Azure SQL Database, Azure Key Vault, dan Azure Storage. Token tersebut mewakili aplikasi yang mengakses sumber daya, dan bukan pengguna aplikasi tertentu.

Container Apps menyediakan Titik akhir REST yang dapat diakses secara internal untuk mengambil token. Titik akhir REST dapat diakses dari dalam aplikasi dengan GET HTTP standar, yang dapat diimplementasikan dengan klien HTTP generik dalam setiap bahasa. Untuk .NET, JavaScript, Java, dan Python, pustaka klien Azure Identity menyediakan abstraksi pada titik akhir REST ini. Menghubungkan ke layanan Azure lainnya semudah menambahkan objek kredensial ke klien khusus layanan.

Catatan

Saat menggunakan pustaka klien Azure Identity, id klien identitas terkelola yang ditetapkan pengguna harus ditentukan.

Catatan

Saat menyambungkan ke sumber data Azure SQL dengan Entity Framework Core, pertimbangkan untuk menggunakan Microsoft.Data.SqlClient, yang menyediakan string koneksi khusus untuk konektivitas identitas terkelola.

Untuk aplikasi .NET, cara paling sederhana untuk bekerja dengan identitas terkelola adalah melalui pustaka klien Azure Identity untuk .NET. Lihat judul dokumentasi setiap pustaka klien untuk mendapatkan informasi:

Contoh terkait menggunakan DefaultAzureCredential. Ini berguna untuk sebagian besar skenario karena pola yang sama berfungsi di Azure (dengan identitas terkelola) dan di mesin lokal Anda (tanpa identitas terkelola).

Menampilkan identitas terkelola

Anda dapat menampilkan identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna menggunakan perintah Azure CLI berikut. Output menunjukkan jenis identitas terkelola, ID penyewa, dan ID utama dari semua identitas terkelola yang ditetapkan ke aplikasi kontainer Anda.

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Menghapus identitas terkelola

Saat Anda menghapus identitas yang ditetapkan sistem, identitas tersebut akan dihapus dari ID Microsoft Entra. Identitas yang ditetapkan sistem juga secara otomatis dihapus dari ID Microsoft Entra saat Anda menghapus sumber daya aplikasi kontainer itu sendiri. Menghapus identitas terkelola yang ditetapkan pengguna dari aplikasi kontainer Anda tidak menghapusnya dari ID Microsoft Entra.

  1. Di navigasi kiri halaman aplikasi Anda, gulir ke bawah ke grup Pengaturan.

  2. Pilih Identitas. Kemudian ikuti langkah-langkah berdasarkan jenis identitas:

    • Identitas ditetapkan sistem: Dalam tab Sistem yang ditetapkan, alihkan Status menjadi Nonaktif. Pilih Simpan.
    • Identitas yang ditetapkan pengguna: Pilih tab Ditetapkan pengguna, centang kotak untuk identitas, dan pilih Hapus. Pilih Ya untuk mengonfirmasi.

Langkah berikutnya