Autentikasi Azure dengan Java dan Azure Identity
Artikel ini menyediakan gambaran umum pustaka Java Azure Identity, yang menyediakan dukungan autentikasi token Microsoft Entra di seluruh Azure SDK untuk Java. Pustaka ini menyediakan serangkaian TokenCredential
implementasi yang dapat Anda gunakan untuk membangun klien Azure SDK yang mendukung autentikasi token Microsoft Entra.
Pustaka Azure Identity saat ini mendukung:
- Autentikasi Azure di lingkungan pengembangan Java, yang memungkinkan:
- Autentikasi IDEA IntelliJ, dengan informasi masuk yang diambil dari Azure Toolkit untuk IntelliJ.
- Autentikasi Visual Studio Code, dengan informasi masuk yang disimpan di plugin Azure untuk Visual Studio Code.
- Autentikasi Azure CLI, dengan informasi masuk yang disimpan di Azure CLI
- Mengautentikasi aplikasi yang dihosting di Azure, yang memungkinkan:
- Autentikasi Kredensial Azure Default
- Autentikasi Identitas Terkelola
- Autentikasi dengan perwakilan layanan, yang memungkinkan:
- Autentikasi Rahasia Klien
- Autentikasi Sertifikat Klien
- Autentikasi dengan kredensial pengguna, yang memungkinkan:
- Autentikasi browser interaktif
- Autentikasi kode perangkat
- Autentikasi nama pengguna/kata sandi
Ikuti tautan ini untuk mempelajari selengkapnya tentang spesifikasi masing-masing pendekatan autentikasi ini. Di sisa artikel ini, kami memperkenalkan subjek yang umum digunakan DefaultAzureCredential
dan terkait.
Menambahkan dependensi Maven
Untuk menambahkan dependensi Maven, sertakan XML berikut dalam file pom.xml proyek. Ganti {version_number}
dengan nomor versi rilis stabil terbaru, seperti yang ditunjukkan pada halaman pustaka Azure Identity.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{version_number}</version>
</dependency>
Konsep kunci
Ada dua konsep utama dalam memahami pustaka Azure Identity: konsep kredensial, dan implementasi paling umum dari kredensial tersebut, DefaultAzureCredential
.
Kredensial adalah kelas yang berisi atau dapat memperoleh data yang diperlukan untuk klien layanan untuk mengautentikasi permintaan. Klien layanan di seluruh Azure SDK menerima kredensial saat dibangun, dan klien layanan menggunakan kredensial tersebut untuk mengautentikasi permintaan ke layanan.
Pustaka Azure Identity berfokus pada autentikasi OAuth dengan ID Microsoft Entra, dan menawarkan berbagai kelas info masuk yang dapat memperoleh token Microsoft Entra untuk mengautentikasi permintaan layanan. Semua kelas kredensial di pustaka ini adalah implementasi dari TokenCredential
kelas abstrak di azure-core, dan Anda dapat menggunakan salah satunya untuk membangun klien layanan yang dapat mengautentikasi dengan satu TokenCredential
.
DefaultAzureCredential
sesuai untuk sebagian besar skenario di mana aplikasi dimaksudkan untuk pada akhirnya berjalan di Azure Cloud. DefaultAzureCredential
menggabungkan kredensial yang biasa digunakan untuk mengautentikasi saat disebarkan, dengan kredensial yang digunakan untuk mengautentikasi di lingkungan pengembangan. Untuk informasi selengkapnya, termasuk contoh yang menggunakan DefaultAzureCredential
, lihat bagian kredensial Azure Default dari Mengautentikasi aplikasi Java yang dihosting Azure.
Contoh
Seperti disebutkan dalam Gunakan Azure SDK untuk Java, pustaka manajemen sedikit berbeda. Salah satu perbedaan mereka adalah bahwa ada perpustakaan untuk mengonsumsi layanan Azure, yang disebut pustaka klien, dan pustaka untuk mengelola layanan Azure, yang disebut pustaka manajemen. Di bagian berikut, ada gambaran singkat tentang pengautentikasian di pustaka klien dan manajemen.
Mengautentikasi pustaka klien Azure
Contoh berikut menunjukkan autentikasi SecretClient
dari pustaka klien azure-security-keyvault-secrets menggunakan DefaultAzureCredential
.
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Mengutentikasi pustaka manajemen Azure
Pustaka manajemen Azure menggunakan API kredensial yang sama dengan pustaka klien Azure, tetapi juga memerlukan ID langganan Azure untuk mengelola sumber daya Azure pada langganan tersebut.
Anda dapat menemukan ID langganan Azure di halaman Langganan di portal Azure. Atau, gunakan perintah Azure CLI berikut untuk mendapatkan ID langganan:
az account list --output table
Anda dapat mengatur ID langganan dalam variabel lingkungan AZURE_SUBSCRIPTION_ID
. AzureProfile
mengambil ID ini sebagai ID langganan default selama pembuatan Manager
instans dalam contoh berikut:
AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE))
.withDefaultSubscription();
DefaultAzureCredential
digunakan dalam contoh ini mengautentikasi AzureResourceManager
instans menggunakan DefaultAzureCredential
. Anda juga dapat menggunakan implementasi Kredensial Token lain yang ditawarkan di pustaka Azure Identity sebagai pengganti DefaultAzureCredential
.
Pemecahan Masalah
Untuk panduan, lihat Memecahkan masalah autentikasi Azure Identity.
Langkah berikutnya
Artikel ini memperkenalkan fungsionalitas Azure Identity yang tersedia di Azure SDK for Java. Ini dijelaskan DefaultAzureCredential
sebagai umum dan sesuai dalam banyak kasus. Artikel berikut ini menjelaskan cara lain untuk mengautentikasi menggunakan pustaka Azure Identity, dan memberikan informasi selengkapnya tentang DefaultAzureCredential
: