Bagikan melalui


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:

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: