Autentikasi Azure di lingkungan pengembangan Java

Artikel ini memberikan gambaran umum tentang dukungan pustaka Azure Identity untuk autentikasi token Microsoft Entra. Dukungan ini memungkinkan autentikasi untuk aplikasi yang berjalan secara lokal pada mesin pengembang melalui serangkaian implementasi TokenCredential.

Artikel ini membahas subjek berikut:

Untuk memecahkan masalah autentikasi lingkungan pengembangan, lihat Memecahkan masalah autentikasi lingkungan pengembangan.

Info masuk kode perangkat

Kredensial kode perangkat mengautentikasi pengguna secara interaktif di perangkat dengan UI terbatas. Ini berfungsi dengan meminta pengguna untuk mengunjungi URL masuk pada komputer yang diaktifkan browser saat aplikasi mencoba mengautentikasi. Pengguna kemudian memasukkan kode perangkat yang disebutkan dalam instruksi bersama dengan kredensial masuk mereka. Setelah autentikasi berhasil, aplikasi yang meminta autentikasi berhasil diautentikasi pada perangkat yang dijalankannya.

Untuk informasi selengkapnya, lihat Platform identitas Microsoft dan alur pemberian otorisasi perangkat OAuth 2.0.

Mengaktifkan aplikasi untuk alur kode perangkat

Untuk mengautentikasi pengguna melalui alur kode perangkat, lakukan langkah-langkah berikut:

  1. Buka ID Microsoft Entra di portal Azure dan temukan pendaftaran aplikasi Anda.
  2. Navigasikan ke bagian Autentikasi.
  3. Di bawah URI Pengalihan yang Disarankan, periksa URI yang diakhiri dengan /common/oauth2/nativeclient.
  4. Di bagian Jenis Klien Default, pilih ya untuk Memperlakukan aplikasi sebagai klien publik.

Langkah-langkah ini memungkinkan aplikasi untuk mengautentikasi, tetapi masih tidak memiliki izin untuk memasukkan Anda ke ID Microsoft Entra, atau mengakses sumber daya atas nama Anda. Untuk mengatasi masalah ini, navigasikan ke Izin API, dan aktifkan Microsoft Graph serta sumber daya yang ingin Anda akses.

Anda juga harus menjadi admin penyewa untuk memberikan persetujuan ke aplikasi Anda saat masuk untuk pertama kalinya.

Jika Anda tidak dapat mengonfigurasi opsi alur kode perangkat di ID Microsoft Entra Anda, aplikasi mungkin mengharuskan aplikasi Anda menjadi multi-penyewa. Untuk membuat aplikasi Anda multi-penyewa, navigasikan ke panel Autentikasi, lalu pilih Akun di direktori organisasi apa pun. Kemudian, pilih ya untuk Perlakukan aplikasi sebagai Klien Publik.

Mengautentikasi akun pengguna dengan alur kode perangkat

Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan DeviceCodeCredential pada perangkat IoT.

DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
  .challengeConsumer(challenge -> {
    // lets user know of the challenge
    System.out.println(challenge.getMessage());
  }).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(deviceCodeCredential)
  .buildClient();

Info masuk browser interaktif

Info masuk ini secara interaktif mengautentikasi pengguna dengan browser sistem default dan menawarkan pengalaman autentikasi yang lancar dengan membiarkan Anda menggunakan info masuk Anda sendiri untuk mengautentikasi aplikasi Anda.

Mengaktifkan aplikasi untuk alur OAuth 2 browser interaktif

Untuk menggunakan InteractiveBrowserCredential, Anda perlu mendaftarkan aplikasi di MICROSOFT Entra ID dengan izin untuk masuk atas nama pengguna. Ikuti langkah-langkah sebelumnya untuk alur kode perangkat untuk mendaftarkan aplikasi Anda. Seperti disebutkan sebelumnya, admin penyewa Anda harus memberikan persetujuan ke aplikasi Anda sebelum akun pengguna apa pun dapat masuk.

Anda mungkin memperhatikan bahwa pada InteractiveBrowserCredentialBuilder, URL pengalihan diperlukan. Tambahkan URL pengalihan ke subbagian URI Pengalihan di bawah bagian Autentikasi aplikasi Microsoft Entra terdaftar Anda.

Mengautentikasi akun pengguna secara interaktif di browser

Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan InteractiveBrowserCredential.

InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
  .clientId("<your client ID>")
  .redirectUrl("http://localhost:8765")
  .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(interactiveBrowserCredential)
  .buildClient();

Info masuk Azure CLI

Info masuk Azure CLI mengautentikasi dalam lingkungan pengembangan dengan pengguna atau perwakilan layanan yang diaktifkan di Azure CLI. Ini menggunakan Azure CLI yang diberikan pengguna yang sudah masuk ke dalamnya, dan menggunakan CLI untuk mengautentikasi aplikasi terhadap ID Microsoft Entra.

Masuk ke Azure CLI untuk AzureCliCredential

Masuk sebagai pengguna dengan perintah Azure CLI berikut:

az login

Masuk sebagai perwakilan layanan menggunakan perintah berikut:

az login \
    --service-principal \
    --username <client-ID> \
    --password <client-secret> \
    --tenant <tenant-ID>

Jika akun atau perwakilan layanan memiliki akses ke beberapa penyewa, pastikan penyewa atau langganan yang diinginkan dalam keadaan "Diaktifkan" pada output perintah berikut:

az account list

Sebelum Anda menggunakan AzureCliCredential dalam kode, jalankan perintah berikut untuk memverifikasi bahwa akun telah berhasil dikonfigurasi.

az account get-access-token

Anda mungkin perlu mengulangi proses ini setelah jangka waktu tertentu, tergantung pada validitas token refresh di organisasi Anda. Umumnya, masa berlaku token refresh adalah beberapa minggu hingga beberapa bulan. AzureCliCredential meminta Anda untuk masuk lagi.

Mengautentikasi akun pengguna dengan Azure CLI

Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan AzureCliCredential pada stasiun kerja dengan Azure CLI yang diinstal dan yang masuk.

AzureCliCredential cliCredential = new AzureCliCredentialBuilder().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(cliCredential)
  .buildClient();

Info masuk IntelliJ

Info masuk IntelliJ mengautentikasi dalam lingkungan pengembangan dengan akun di Azure Toolkit untuk IntelliJ. Ini menggunakan informasi pengguna yang masuk pada IntelliJ IDE dan menggunakannya untuk mengautentikasi aplikasi terhadap ID Microsoft Entra.

Masuk ke Azure Toolkit untuk IntelliJ untuk IntelliJCredential

Gunakan langkah-langkah berikut untuk masuk:

  1. Di jendela IntelliJ Anda, buka File > Pengaturan > Plugins.
  2. Cari "Azure Toolkit for IntelliJ" di marketplace. Instal dan hidupkan ulang IDE.
  3. Temukan item menu baru Alat > Azure > Azure Sign In
  4. Masuk Perangkat membantu Anda masuk sebagai akun pengguna. Ikuti instruksi untuk masuk di login.microsoftonline.com situs web dengan kode perangkat. IntelliJ meminta Anda untuk memilih langganan Anda. Pilih langganan dengan sumber daya yang ingin Anda akses.

Di Windows, Anda juga memerlukan jalur database KeePass untuk membaca kredensial IntelliJ. Anda dapat menemukan jalur di pengaturan IntelliJ di bawah Tampilan File > Pengaturan > & Kata Sandi Pengaturan > Sistem Perilaku>. Catat lokasi jalur KeePassDatabase.

Mengautentikasi akun pengguna dengan IntelliJ IDEA

Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan IntelliJCredential pada stasiun kerja tempat IntelliJ IDEA diinstal, dan pengguna telah masuk dengan akun Azure.

IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
  // KeePass configuration isrequired only for Windows. No configuration needed for Linux / Mac.
  .keePassDatabasePath("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\IdeaIC2020.1\\c.kdbx")
  .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(intelliJCredential)
  .buildClient();

Info masuk Visual Studio Code

Info masuk Visual Studio Code memungkinkan autentikasi di lingkungan pengembangan tempat VS Code diinstal dengan ekstensi Akun Azure VS Code. Ini menggunakan informasi pengguna yang masuk di VS Code IDE dan menggunakannya untuk mengautentikasi aplikasi terhadap ID Microsoft Entra.

Masuk Visual Studio Code Ekstensi Akun Azure untuk VisualStudioCodeCredential

Integrasi Nn dengan ekstensi Akun Azure menangani autentikasi Visual Studio Code. Untuk menggunakan bentuk autentikasi ini, instal ekstensi Akun Azure, lalu gunakan Tampilkan Palet Perintah > untuk menjalankan perintah Azure: Masuk. Perintah ini membuka jendela browser dan menampilkan halaman yang memungkinkan Anda masuk ke Azure. Setelah menyelesaikan proses masuk, Anda dapat menutup browser seperti yang diarahkan. Menjalankan aplikasi Anda (baik di debugger atau di mana saja di komputer pengembangan) menggunakan kredensial dari rincian masuk Anda.

Mengautentikasi akun pengguna dengan Visual Studio Code

Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan VisualStudioCodeCredential pada stasiun kerja tempat Visual Studio Code diinstal, dan pengguna telah masuk dengan akun Azure.

VisualStudioCodeCredential visualStudioCodeCredential = new VisualStudioCodeCredentialBuilder().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(visualStudioCodeCredential)
  .buildClient();

Langkah berikutnya

Artikel ini mencakup autentikasi selama pengembangan menggunakan info masuk yang tersedia di komputer Anda. Bentuk autentikasi ini adalah salah satu dari beberapa cara yang dapat Anda gunakan untuk melakukan autentikasi di Azure SDK for Java. Artikel berikut menjelaskan cara yang lain:

Jika Anda mengalami masalah terkait autentikasi lingkungan pengembangan, lihat Memecahkan masalah autentikasi lingkungan pengembangan.

Setelah Anda menguasai autentikasi, lihat Mengonfigurasi pengelogan di Azure SDK for Java untuk informasi tentang fungsi pencatatan yang disediakan oleh SDK.