Bagikan melalui


Mengautentikasi aplikasi Java yang dihosting Azure untuk Azure sumber daya dengan menggunakan identitas terkelola yang ditetapkan pengguna

Pendekatan yang disarankan untuk mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure lainnya adalah dengan menggunakan identitas managed. Sebagian besar layanan Azure mendukung pendekatan ini, termasuk aplikasi yang dihosting di Azure App Service, Azure Container Apps, dan Azure Virtual Machines. Untuk informasi selengkapnya, lihat layanan Azure dan jenis sumber daya yang mendukung identitas terkelola. Untuk informasi selengkapnya tentang berbagai teknik dan pendekatan autentikasi, lihat Autentikasi aplikasi Java ke layanan Azure dengan menggunakan pustaka identitas Azure.

Di bagian berikut, Anda mempelajari tentang:

  • Konsep identitas terkelola yang penting.
  • Cara membuat identitas terkelola yang ditetapkan pengguna untuk aplikasi Anda.
  • Cara menetapkan peran ke identitas terkelola yang ditetapkan pengguna.
  • Cara mengautentikasi dengan menggunakan identitas terkelola yang ditetapkan pengguna dari kode aplikasi Anda.

Konsep identitas terkelola yang penting

Identitas terkelola memungkinkan aplikasi Anda terhubung dengan aman ke sumber daya Azure lain tanpa menggunakan kunci rahasia atau rahasia aplikasi lainnya. Secara internal, Azure melacak identitas dan sumber daya mana yang diizinkan untuk disambungkan. Azure menggunakan informasi ini untuk mendapatkan token Microsoft Entra secara otomatis agar aplikasi dapat terhubung ke sumber daya Azure lainnya.

Ada dua jenis identitas terkelola yang perlu dipertimbangkan saat mengonfigurasi aplikasi yang dihosting:

  • Identitas terkelola yang ditetapkan oleh sistem diaktifkan langsung pada sumber daya Azure dan terkait erat dengan siklus hidup sumber daya tersebut. Saat sumber daya dihapus, Azure secara otomatis menghapus identitas untuk Anda. Identitas yang ditetapkan sistem memberikan pendekatan minimalis untuk menggunakan identitas terkelola.
  • Identitas terkelola yang ditetapkan pengguna dibuat sebagai sumber daya Azure mandiri dan menawarkan fleksibilitas dan kemampuan yang lebih besar. Mereka ideal untuk solusi yang melibatkan beberapa sumber daya Azure yang perlu berbagi identitas dan izin yang sama. Misalnya, jika beberapa komputer virtual perlu mengakses set sumber daya Azure yang sama, identitas terkelola yang ditetapkan pengguna memberikan penggunaan kembali dan manajemen yang dioptimalkan.

Petunjuk / Saran

Pelajari selengkapnya tentang memilih dan mengelola identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna di artikel Rekomendasi praktik terbaik identitas terkelola .

Bagian berikut menjelaskan langkah-langkah untuk mengaktifkan dan menggunakan identitas terkelola yang ditetapkan pengguna untuk aplikasi yang dihosting Azure. Jika Anda perlu menggunakan identitas terkelola yang ditetapkan sistem, lihat Autentikasi aplikasi Java yang dihosting Azure untuk Azure sumber daya menggunakan identitas terkelola yang ditetapkan sistem.

Buat identitas terkelola yang ditetapkan pengguna

Identitas terkelola yang ditetapkan pengguna dibuat sebagai sumber daya mandiri di langganan Azure Anda menggunakan portal Azure atau Azure CLI. perintah Azure CLI dapat dijalankan di Azure Cloud Shell atau di stasiun kerja dengan Azure CLI diinstal.

  1. Di portal Azure, masukkan identitas Managed di bilah pencarian utama dan pilih hasil yang cocok di bawah bagian Services.

  2. Pada halaman Identitas Terkelola , pilih + Buat.

    Cuplikan layar memperlihatkan halaman untuk mengelola identitas terkelola yang ditetapkan pengguna.

  3. Pada halaman Buat Identitas Terkelola yang Ditetapkan Pengguna, pilih langganan, grup sumber daya, dan wilayah untuk identitas terkelola yang ditetapkan pengguna, lalu berikan nama.

  4. Pilih Ulas dan buat untuk meninjau dan memvalidasi input Anda.

    Cuplikan layar memperlihatkan formulir untuk membuat identitas terkelola yang ditetapkan pengguna.

  5. Pilih Buat untuk membuat identitas terkelola yang ditetapkan pengguna.

  6. Setelah identitas dibuat, pilih Buka sumber daya.

  7. Pada halaman Gambaran Umum identitas baru, salin nilai ID Klien untuk digunakan saat mengonfigurasi kode aplikasi nanti.

Menetapkan identitas terkelola ke aplikasi Anda

Identitas terkelola yang ditetapkan pengguna dapat dikaitkan dengan satu atau beberapa sumber daya Azure. Semua sumber daya yang menggunakan identitas tersebut memperoleh izin yang diterapkan melalui peran-peran identitas tersebut.

  1. Di portal Azure, navigasikan ke sumber daya yang menghosting kode aplikasi Anda, seperti instans Azure App Service atau Azure Container Apps.

  2. Dari halaman Gambaran Umum sumber daya, perluas Pengaturan dan pilih Identitas dari Navigasi.

  3. Pada halaman Identitas, beralihlah ke tab yang ditetapkan Pengguna.

  4. Pilih + Tambahkan untuk membuka panel Tambahkan identitas terkelola yang ditetapkan pengguna.

  5. Pada panel Tambahkan identitas terkelola yang ditetapkan pengguna, gunakan menu dropdown Langganan untuk memfilter hasil pencarian untuk identitas Anda. Gunakan kotak pencarian Pengguna identitas terkelola yang ditetapkan untuk menemukan identitas terkelola yang ditetapkan pengguna yang Anda aktifkan untuk sumber daya Azure yang menghosting aplikasi Anda.

  6. Pilih identitas dan pilih Tambahkan di bagian bawah panel untuk melanjutkan.

    Cuplikan layar memperlihatkan cara mengaitkan identitas terkelola yang ditetapkan pengguna dengan aplikasi.

Menetapkan peran pada identitas terkelola

Selanjutnya, tentukan peran mana yang dibutuhkan aplikasi Anda dan tetapkan peran tersebut ke identitas terkelola. Anda dapat menetapkan peran ke identitas terkelola dalam lingkup berikut:

  • Resource: Peran yang ditetapkan hanya berlaku untuk sumber daya tertentu tersebut.
  • Grup sumber daya: Peran yang ditetapkan berlaku untuk semua sumber daya yang terkandung dalam grup sumber daya.
  • Langganan: Peran yang ditetapkan berlaku untuk semua sumber daya yang terkandung dalam langganan.

Contoh berikut menunjukkan cara menetapkan peran di cakupan grup sumber daya, karena banyak aplikasi mengelola semua sumber daya Azure terkait menggunakan satu grup sumber daya.

  1. Arahkan ke halaman Gambaran Umum dari grup sumber daya yang berisi aplikasi dengan identitas terkelola yang ditetapkan pengguna.

  2. Pilih kontrol akses (IAM) di navigasi kiri.

  3. Pada halaman Kontrol akses (IAM), pilih + Tambahkan di menu atas lalu pilih Tambahkan penetapan peran untuk menavigasi ke halaman Tambahkan penetapan peran.

    Cuplikan layar memperlihatkan cara mengakses halaman penetapan peran identitas.

  4. Halaman Tambahkan penugasan peran menyajikan alur kerja bertahap dengan tab untuk menetapkan peran pada identitas. Pada tab Peran awal, gunakan kotak pencarian di bagian atas untuk menemukan peran yang ingin Anda tetapkan ke identitas.

  5. Pilih peran dari hasil pencarian dan kemudian pilih Berikutnya untuk pindah ke tab Anggota.

  6. Untuk opsi Tetapkan akses ke, pilihlah Identitas yang dikelola.

  7. Untuk opsi Anggota , pilih + Pilih anggota untuk membuka panel Pilih identitas terkelola .

  8. Pada panel Pilih identitas terkelola, gunakan dropdown Langganan dan dropdown Identitas terkelola untuk memfilter hasil pencarian identitas Anda. Gunakan kotak pencarian Select untuk menemukan identitas terkelola yang ditetapkan pengguna yang Anda aktifkan untuk sumber daya Azure yang menghosting aplikasi Anda.

    Cuplikan layar memperlihatkan proses penetapan identitas terkelola.

  9. Pilih identitas dan pilih Pilih di bagian bawah panel untuk melanjutkan.

  10. Pilih Tinjau + berikan tugas di bagian bawah halaman.

  11. Pada tab akhir Tinjau + tetapkan , pilih Tinjau + tetapkan untuk menyelesaikan alur kerja.

Mengautentikasi ke layanan Azure dari aplikasi Anda

Pustaka Identitas Azure menawarkan kredensial yang berbeda sebagai implementasi TokenCredential. Setiap implementasi mendukung skenario yang berbeda dan alur autentikasi Microsoft Entra. Untuk identitas terkelola yang ditetapkan pengguna, tentukan ID klien identitas, ID sumber daya, atau ID objek saat Anda mengonfigurasi kredensial.

Menerapkan kode

Tambahkan azure-identity dependensi ke file pom.xml Anda:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Anda mengakses layanan Azure dengan menggunakan kelas klien khusus dari pustaka klien Azure SDK. Contoh kode berikut menunjukkan kepada Anda cara mengonfigurasi kredensial untuk autentikasi identitas terkelola yang ditetapkan pengguna.

Gunakan DefaultAzureCredential

Gunakan DefaultAzureCredential sebagai kredensial untuk aplikasi yang dihosting Azure. Untuk identitas terkelola yang ditetapkan pengguna, konfigurasikan ID klien dengan menggunakan managedIdentityClientId metode :

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .managedIdentityClientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Menggunakan ManagedIdentityCredential

Jika Anda ingin secara eksplisit menggunakan kredensial identitas terkelola dan menghindari pencarian rantai kredensial di DefaultAzureCredential, gunakan ManagedIdentityCredential secara langsung. Untuk identitas terkelola yang ditetapkan pengguna, Anda dapat menentukan identitas dengan menggunakan ID klien, ID sumber daya, atau ID objek.

Gunakan ID klien untuk mengidentifikasi identitas terkelola saat Anda mengonfigurasi aplikasi atau layanan yang perlu diautentikasi dengan menggunakan identitas tersebut.

Ambil ID pelanggan yang ditetapkan ke identitas terkelola yang ditetapkan oleh pengguna dengan menggunakan perintah berikut:

az identity show \
    --resource-group <resource-group-name> \
    --name <identity-name> \
    --query clientId \
    --output tsv

Konfigurasikan ManagedIdentityCredential dengan ID klien:

import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
    .clientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Langkah berikutnya

Artikel ini membahas autentikasi menggunakan identitas terkelola yang ditetapkan pengguna. Bentuk autentikasi ini adalah salah satu dari beberapa cara Anda dapat mengautentikasi di Azure SDK untuk Java. Artikel berikut ini menjelaskan cara lain untuk mengautentikasi:

Jika Anda mengalami masalah terkait autentikasi aplikasi yang dihosting di Azure, lihat Pemecahan Masalah Autentikasi Aplikasi yang Dihosting di Azure.

Setelah Anda menguasai autentikasi, lihat Konfigurasi pengelogan di Azure SDK untuk Java untuk informasi tentang fungsionalitas pengelogan yang disediakan oleh SDK.