Bagikan melalui


Mengautentikasi aplikasi Java ke layanan Azure selama pengembangan lokal dengan menggunakan perwakilan layanan

Selama pengembangan lokal, aplikasi perlu mengautentikasi ke Azure untuk mengakses berbagai layanan Azure. Anda dapat mengautentikasi secara lokal dengan menggunakan salah satu pendekatan berikut:

Artikel ini menjelaskan cara menggunakan identitas utama layanan aplikasi. Untuk informasi selengkapnya tentang perwakilan layanan, lihat Aplikasi dan objek perwakilan layanan di Microsoft Entra ID. Dalam artikel ini, Anda belajar tentang:

  • Cara mendaftarkan aplikasi dengan Microsoft Entra untuk membuat perwakilan layanan.
  • Cara menggunakan grup Microsoft Entra untuk mengelola izin secara efisien.
  • Cara menetapkan peran untuk izin cakupan.
  • Cara mengautentikasi dengan menggunakan prinsipal layanan dari kode aplikasi Anda.

Menggunakan perwakilan layanan aplikasi khusus memungkinkan Anda untuk mengikuti prinsip hak istimewa paling sedikit saat mengakses sumber daya Azure. Anda dapat membatasi izin ke persyaratan khusus aplikasi selama pengembangan untuk mencegah akses yang tidak disengaja ke sumber daya Azure yang ditujukan untuk aplikasi atau layanan lain. Pendekatan ini juga membantu Anda menghindari masalah saat memindahkan aplikasi ke produksi dengan memastikannya tidak terlalu istimewa di lingkungan pengembangan.

diagram yang menunjukkan bagaimana aplikasi Java lokal menggunakan prinsipal layanan untuk menyambungkan ke sumber daya Azure.

Saat Anda mendaftarkan aplikasi di Azure, prinsipal layanan aplikasi dibuat. Untuk pengembangan lokal, Anda harus:

  • Buat pendaftaran aplikasi terpisah untuk setiap pengembang yang bekerja di aplikasi sehingga setiap pengembang memiliki perwakilan layanan aplikasi mereka sendiri dan tidak perlu berbagi kredensial.
  • Buat pendaftaran aplikasi terpisah untuk setiap aplikasi untuk membatasi izin aplikasi hanya untuk apa yang diperlukan.

Selama pengembangan lokal, atur variabel lingkungan dengan identitas perwakilan layanan aplikasi. Pustaka identitas Azure membaca variabel lingkungan ini untuk mengautentikasi aplikasi ke sumber daya Azure yang diperlukan.

Mendaftarkan aplikasi di Azure

Objek prinsip layanan aplikasi dibuat melalui pendaftaran aplikasi di platform Azure menggunakan portal Azure atau Azure CLI.

  1. Di portal Azure, gunakan bilah pencarian untuk menavigasi ke halaman App registrations.

  2. Pada halaman App registrations, pilih + Pendaftaran baru.

  3. Pada halaman Daftarkan aplikasi:

    • Untuk bidang Nama, masukkan nilai deskriptif yang menyertakan nama aplikasi dan lingkungan target.
    • Untuk Jenis akun yang didukung, pilih Akun di direktori organisasi ini saja (Hanya Microsoft Customer Led - Penyewa tunggal), atau opsi mana yang paling sesuai dengan kebutuhan Anda.
  4. Pilih Daftarkan untuk mendaftarkan aplikasi Anda dan buat perwakilan layanan.

    cuplikan layar A memperlihatkan cara membuat pendaftaran aplikasi di portal Azure.

  5. Pada halaman Pendaftaran aplikasi untuk aplikasi Anda, salin ID Aplikasi (klien) dan ID Direktori (penyewa) dan tempelkan di lokasi sementara untuk digunakan nanti dalam konfigurasi kode aplikasi Anda.

  6. Pilih Tambahkan sertifikat atau rahasia untuk menyiapkan kredensial untuk aplikasi Anda.

  7. Pada halaman Sertifikat & rahasia, pilih + Rahasia klien baru.

  8. Pada panel pop-up Tambahkan rahasia klien yang terbuka:

    • Untuk Deskripsi, masukkan nilai Saat Ini.
    • Untuk nilai Kedaluwarsa , biarkan nilai yang direkomendasikan secara default, yaitu 180 hari.
    • Pilih Tambahkan untuk menambahkan rahasia.
  9. Pada halaman Sertifikat & rahasia, salin properti Nilai rahasia klien untuk digunakan dalam langkah selanjutnya.

    Nota

    Nilai rahasia klien hanya ditampilkan sekali setelah pendaftaran aplikasi dibuat. Anda dapat menambahkan lebih banyak rahasia klien tanpa membatalkan rahasia klien ini, tetapi tidak ada cara untuk menampilkan nilai ini lagi.

Membuat grup Microsoft Entra untuk pengembangan lokal

Buat grup Microsoft Entra untuk merangkum peran (izin) yang dibutuhkan aplikasi dalam pengembangan lokal daripada menetapkan peran ke objek perwakilan layanan individual. Pendekatan ini menawarkan keuntungan berikut:

  • Setiap pengembang memiliki peran yang sama yang ditetapkan di tingkat grup.
  • Jika peran baru diperlukan untuk aplikasi, peran tersebut hanya perlu ditambahkan ke grup untuk aplikasi.
  • Jika pengembang baru bergabung dengan tim, perwakilan layanan aplikasi baru dibuat untuk pengembang dan ditambahkan ke grup, memastikan pengembang memiliki izin yang tepat untuk mengerjakan aplikasi.
  1. Navigasi ke halaman gambaran umum Microsoft Entra ID di portal Azure.

  2. Pilih Semua grup dari menu sebelah kiri.

  3. Pada halaman Grup , pilih Grup baru.

  4. Pada halaman Grup baru , isi bidang formulir berikut ini:

    • Jenis grup: Pilih Keamanan.
    • Nama grup: Masukkan nama untuk grup yang menyertakan referensi ke aplikasi atau nama lingkungan.
    • Deskripsi grup: Masukkan deskripsi yang menjelaskan tujuan grup.

    Cuplikan layar menunjukkan cara membuat grup di portal Azure.

  5. Pilih link Tidak ada anggota yang dipilih di bawah Anggota untuk menambahkan anggota ke grup.

  6. Di panel pop-up yang terbuka, cari prinsipal layanan yang Anda buat sebelumnya dan pilih dari hasil yang sudah difilter. Pilih tombol Pilih di bagian bawah panel untuk mengonfirmasi pilihan Anda.

  7. Pilih Buat di bagian bawah halaman Grup baru untuk membuat grup dan kembali ke halaman Semua grup . Jika Anda tidak melihat grup baru tercantum, tunggu sebentar dan refresh halaman.

Menetapkan peran ke grup

Selanjutnya, tentukan peran (izin) apa yang dibutuhkan aplikasi Anda pada sumber daya apa dan tetapkan peran tersebut ke grup Microsoft Entra yang Anda buat. Grup dapat diberi peranan di ruang lingkup sumber daya, grup sumber daya, atau langganan. Contoh ini menunjukkan cara menetapkan peran di cakupan grup sumber daya, karena sebagian besar aplikasi mengelompokkan semua sumber daya Azure mereka ke dalam satu grup sumber daya.

  1. Di portal Azure, navigasikan ke halaman Overview grup sumber daya yang berisi aplikasi Anda.

  2. Pilih Kontrol akses (IAM) dari navigasi kiri.

  3. Pada halaman Kontrol akses (IAM), pilih + Tambahkan lalu pilih Tambahkan penetapan peran dari menu drop-down. Halaman Tambahkan penetapan peran menyediakan beberapa tab untuk mengonfigurasi dan menetapkan peran.

  4. Pada tab Peran , gunakan kotak pencarian untuk menemukan peran yang ingin Anda tetapkan. Pilih peran, lalu pilih Berikutnya.

  5. Pada tab Anggota :

    • Untuk Menetapkan akses ke nilai, pilih Pengguna, grup, atau perwakilan layanan .
    • Untuk nilai Anggota , pilih + Pilih anggota untuk membuka panel flyout Pilih anggota .
    • Cari grup Microsoft Entra yang Anda buat sebelumnya dan pilih dari hasil yang difilter. Pilih Pilih untuk memilih grup dan menutup panel flyout.
    • Pilih Tinjau + tetapkan di bawah tab Anggota.

    Cuplikan layar yang menunjukkan cara menetapkan fungsi ke grup Microsoft Entra.

  6. Di tab Tinjau & Tetapkan, pilih Tinjau & Tetapkan di bagian bawah halaman.

Mengatur variabel lingkungan aplikasi

Selama waktu proses, kredensial tertentu dari pustaka Azure Identity , seperti , , dan , mencari informasi perwakilan layanan berdasarkan konvensi dalam variabel lingkungan. Saat bekerja dengan Java, Anda dapat mengonfigurasi variabel lingkungan dengan cara yang berbeda tergantung pada alat dan lingkungan Anda.

Terlepas dari pendekatan yang Anda pilih, konfigurasikan variabel lingkungan berikut untuk perwakilan layanan:

  • AZURE_CLIENT_ID: Digunakan untuk mengidentifikasi aplikasi terdaftar di Azure.
  • AZURE_TENANT_ID: ID penyewa Microsoft Entra.
  • AZURE_CLIENT_SECRET: Kredensial rahasia yang dihasilkan untuk aplikasi.

Tambahkan baris berikut ke ~/.bashrcfile Anda~/.zshrc. Ganti nilai tempat penampung dengan nilai aktual dari pendaftaran aplikasi Anda:

export AZURE_CLIENT_ID="<your-client-id>"
export AZURE_TENANT_ID="<your-tenant-id>"
export AZURE_CLIENT_SECRET="<your-client-secret>"

Setelah mengedit file, jalankan source ~/.bashrc atau source ~/.zshrc terapkan perubahan pada sesi Anda saat ini.

Mengautentikasi ke layanan Azure dari aplikasi Anda

Pustaka identitas Azure menyediakan berbagai credentials - implementasi TokenCredential yang mendukung skenario yang berbeda dan alur autentikasi Microsoft Entra. Langkah-langkah berikut menunjukkan kepada Anda cara menggunakan ClientSecretCredential saat Anda bekerja dengan perwakilan layanan secara lokal dan dalam produksi.

Menerapkan kode

Tambahkan azure-identity dependensi ke file pom.xml Anda:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Anda mengakses layanan Azure dengan menggunakan kelas klien khusus dari berbagai pustaka klien Azure SDK. Untuk kode Java apa pun yang membuat objek klien Azure SDK di aplikasi Anda, ikuti langkah-langkah berikut:

  1. Impor kelas ClientSecretCredentialBuilder dari paket com.azure.identity.
  2. Buat ClientSecretCredential objek dengan menggunakan ClientSecretCredentialBuilder dengan tenantId, , clientIddan clientSecret.
  3. Teruskan instans ClientSecretCredential ke metode credential penyusun objek klien Azure SDK.

Contoh pendekatan ini ditampilkan di segmen kode berikut:

import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;

String tenantId = System.getenv("AZURE_TENANT_ID");
String clientId = System.getenv("AZURE_CLIENT_ID");
String clientSecret = System.getenv("AZURE_CLIENT_SECRET");

ClientSecretCredential credential = new ClientSecretCredentialBuilder()
    .tenantId(tenantId)
    .clientId(clientId)
    .clientSecret(clientSecret)
    .build();

BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .endpoint("https://<account-name>.blob.core.windows.net")
    .credential(credential)
    .buildClient();

Langkah berikutnya

Artikel ini membahas autentikasi melalui perwakilan layanan. Bentuk autentikasi ini adalah salah satu dari banyak cara Anda dapat mengautentikasi di Azure SDK untuk Java. Artikel berikut ini menjelaskan cara lain untuk mengautentikasi:

Jika Anda mengalami masalah terkait autentikasi perwakilan layanan, lihat Memecahkan masalah autentikasi perwakilan layanan.

Setelah Anda menguasai autentikasi, lihat Konfigurasi pengelogan di Azure SDK untuk Java untuk informasi tentang fungsionalitas pengelogan yang disediakan oleh SDK.