Autentikasi Azure dengan kredensial pengguna

Artikel ini melihat bagaimana pustaka Azure Identity mendukung autentikasi token Microsoft Entra dengan kredensial yang disediakan pengguna. Dukungan ini dimungkinkan melalui serangkaian implementasi TokenCredential yang dibahas dalam artikel ini.

Artikel ini membahas subjek berikut:

Untuk memecahkan masalah autentikasi kredensial pengguna, lihat Memecahkan masalah autentikasi kredensial pengguna.

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 bawah Tipe Klien Default, pilih yes untuk Treat application as a public client.

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 dan sumber daya yang ingin Anda akses, seperti Key Vault.

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 untuk Java Azure Key Vault Secret menggunakan DeviceCodeCredential pada perangkat IoT.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about 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 melihat 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.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .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();

Kredensial kata sandi nama pengguna

UsernamePasswordCredential membantu mengautentikasi aplikasi klien publik menggunakan kredensial pengguna yang tidak memerlukan autentikasi multifaktor. Contoh berikut menunjukkan cara mengautentikasi SecretClient dari pustaka klien azure-security-keyvault-secrets menggunakan UsernamePasswordCredential. Pengguna tidak boleh mengaktifkan autentikasi multifaktor.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .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(usernamePasswordCredential)
    .buildClient();

Untuk informasi selengkapnya, lihat Platform identitas Microsoft dan Kredensial Kata Sandi Pemilik Sumber Daya OAuth 2.0.

Langkah berikutnya

Artikel ini membahas autentikasi dengan kredensial pengguna. 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 kredensial pengguna, lihat Memecahkan masalah autentikasi kredensial pengguna.

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