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:
- Buka ID Microsoft Entra di portal Azure dan temukan pendaftaran aplikasi Anda.
- Navigasikan ke bagian Autentikasi.
- Di bawah URI Pengalihan yang Disarankan, periksa URI yang diakhiri dengan
/common/oauth2/nativeclient
. - 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:
- Di jendela IntelliJ Anda, buka File > Pengaturan > Plugins.
- Cari "Azure Toolkit for IntelliJ" di marketplace. Instal dan hidupkan ulang IDE.
- Temukan item menu baru Alat > Azure > Azure Sign In
-
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.
Mengautentikasi akun pengguna dengan IntelliJ IDEA
Contoh berikut menunjukkan autentikasi SecretClient
dari pustaka klien azure-security-keyvault-secrets menggunakan IntelliJCredential
di stasiun kerja tempat IntelliJ IDEA diinstal, dan pengguna telah masuk dengan akun Azure ke Azure Toolkit untuk IntelliJ.
IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
.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();
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:
- Autentikasi aplikasi yang dihost di Azure
- Autentikasi dengan perwakilan layanan
- Autentikasi dengan kredensial pengguna
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.