Menambahkan rincian masuk dengan akun Microsoft Entra ke aplikasi web Spring

Artikel ini memperlihatkan kepada Anda cara mengembangkan aplikasi web Spring yang mendukung masuk oleh akun Microsoft Entra. Setelah menyelesaikan semua langkah dalam artikel ini, aplikasi web akan dialihkan ke halaman masuk Microsoft Entra saat diakses secara anonim. Cuplikan layar berikut menunjukkan halaman masuk Microsoft Entra:

Screenshot of application 'Sign in' dialog.

Prasyarat

Prasyarat berikut diperlukan untuk menyelesaikan langkah-langkah dalam artikel ini:

Penting

Spring Boot versi 2.5 atau yang lebih tinggi diperlukan untuk menyelesaikan langkah-langkah dalam artikel ini.

Membuat aplikasi menggunakan Spring Initializr

  1. Telusuri https://start.spring.io/.

  2. Tentukan bahwa Anda ingin membuat proyek Maven dengan Java, masukkan nama Grup dan Artefak untuk aplikasi Anda.

  3. Tambahkan Dependensi untuk Spring Web, ID Microsoft Entra, dan Klien OAuth2.

  4. Di bagian bawah halaman, pilih tombol GENERATE.

    Screenshot of Spring Initializr with basic options.

  5. Ketika diminta, unduh proyek ke sebuah jalur pada komputer lokal Anda.

Membuat instans Microsoft Entra

Membuat instans Active Directory

Jika merupakan administrator instans yang sudah ada, Anda dapat melewatkan proses ini.

  1. Masuk ke https://portal.azure.com.

  2. Pilih Semua layanan, lalu Identitas, lalu ID Microsoft Entra.

  3. Masukkan Nama organisasi dan Nama domain awal Anda. Salin URL lengkap direktori Anda. Anda akan menggunakan URL untuk menambahkan akun pengguna nanti di tutorial ini. (Misalnya: azuresampledirectory.onmicrosoft.com.)

    Salin URL lengkap direktori Anda. Anda akan menggunakan URL untuk menambahkan akun pengguna nanti di tutorial ini. (Misalnya, azuresampledirectory.onmicrosoft.com.).

    Setelah selesai, pilih Buat. Proses ini mungkin membutuhkan beberapa menit untuk membuat sumber daya baru.

    Screenshot of the Configuration section of the Microsoft Entra ID 'Create a tenant' screen.

  4. Setelah selesai, pilih tautan yang ditampilkan untuk mengakses direktori baru.

    Screenshot of 'Create a tenant' success message.

  5. Salin ID Penyewa. Anda akan menggunakan nilai ID untuk mengonfigurasi file application.properties nanti di tutorial ini.

    Screenshot of Microsoft Entra tenant screen with 'Tenant ID' highlighted.

Menambahkan pendaftaran aplikasi untuk aplikasi Spring Boot Anda

  1. Dari menu portal, pilih Pendaftaran aplikasi, lalu pilih Daftarkan aplikasi.

  2. Masukkan nama untuk aplikasi, lalu pilih Daftarkan.

  3. Saat halaman untuk pendaftaran aplikasi Anda muncul, salin ID Aplikasi (klien) dan ID Direktori (penyewa). Anda akan menggunakan nilai ID untuk mengonfigurasi file application.properties nanti di tutorial ini.

    Screenshot of application with 'Application (client) ID' and 'Directory (tenant) ID' highlighted.

  4. Pilih Sertifikat & rahasia di panel navigasi kiri. Kemudian pilih Rahasia klien baru.

    Screenshot of application 'Certificates & secrets' screen with 'New client secret' highlighted.

  5. Tambahkan Deskripsi dan pilih durasi dalam daftar Kedaluwarsa. Pilih Tambahkan. Nilai untuk kunci akan otomatis terisi.

  6. Salin dan simpan nilai rahasia klien untuk mengonfigurasi file application.properties nanti dalam tutorial ini. (Anda tidak akan dapat mengambil nilai ini nanti.)

    Screenshot of application with new client secret highlighted.

  7. Dari halaman utama untuk pendaftaran aplikasi, pilih Autentikasi, dan pilih Tambahkan platform. Kemudian pilih Aplikasi web.

    Screenshot of application Authentication screen with 'Configure platforms' section showing and Web platform highlighted.

  8. Masukkan http://localhost:8080/login/oauth2/code/ sebagai Redirect URI baru, lalu pilih Konfigurasikan.

    Screenshot of application Authentication screen with 'Configure Web' section showing and 'Redirect URIs' highlighted.

  9. Jika Anda telah memodifikasi file pom.xml untuk menggunakan versi pemula Microsoft Entra yang lebih lama dari 3.0.0: di bawah Pemberian implisit dan alur hibrid, pilih token ID (digunakan untuk alur implisit dan hibrid), lalu pilih Simpan.

    Screenshot of application Authentication screen with 'ID tokens' selected.

Menambahkan akun pengguna ke direktori Anda, dan menambahkan akun tersebut ke appRole

  1. Dari halaman Gambaran Umum Active Directory, pilih Pengguna, lalu pilih Pengguna baru.

  2. Saat panel Pengguna ditampilkan, masukkan Nama pengguna dan Nama. Lalu pilih Buat.

    Screenshot of 'New user' dialog.

    Catatan

    Anda perlu menentukan URL direktori dari sebelumnya dalam tutorial ini ketika memasukkan nama pengguna. Contohnya:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Dari halaman utama untuk pendaftaran aplikasi, pilih Peran aplikasi, lalu pilih Buat peran aplikasi. Berikan nilai untuk bidang formulir, pilih Apakah Anda ingin mengaktifkan peran aplikasi ini?, lalu pilih Terapkan.

    Screenshot of application 'App roles' screen with 'Create app role' pane showing.

  4. Dari halaman Gambaran Umum direktori Microsoft Entra Anda, pilih Aplikasi perusahaan.

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

  5. Pilih Semua aplikasi, lalu pilih aplikasi tempat Anda menambahkan peran aplikasi di langkah sebelumnya.

    Screenshot of 'Enterprise applications' screen with 'All applications' list showing.

  6. Pilih Pengguna dan grup, lalu pilih Tambahkan pengguna/grup.

  7. Di bawah Pengguna, pilih Didak Ada yang Dipilih. Pilih pengguna yang Anda buat sebelumnya, pilih Pilih, lalu pilih Tetapkan. Jika Anda membuat lebih dari satu peran aplikasi sebelumnya, pilih peran.

    Screenshot of application 'Add Assignment' screen with Users pane showing.

  8. Kembali ke panel Pengguna, pilih pengguna uji, dan pilih Reset kata sandi, dan salin kata sandi. Anda akan menggunakan kata sandi saat masuk ke aplikasi nanti dalam tutorial ini.

    Screenshot of user with 'Temporary password' field highlighted.

Mengonfigurasi dan mengompilasi aplikasi Anda

  1. Ekstrak file dari arsip proyek yang Anda buat dan unduh sebelumnya dalam tutorial ini ke dalam direktori.

  2. Navigasikan ke folder src/main/resources di proyek, lalu buka file application.properties di editor teks.

  3. Tentukan pengaturan untuk pendaftaran aplikasi menggunakan nilai yang Anda buat sebelumnya. Contohnya:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    Mana:

    Parameter Deskripsi
    spring.cloud.azure.active-directory.enabled Mengaktifkan fitur yang disediakan oleh spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Berisi ID Direktori Active Directory dari sebelumnya.
    spring.cloud.azure.active-directory.credential.client-id Berisi ID Aplikasi dari pendaftaran aplikasi yang Anda selesaikan sebelumnya.
    spring.cloud.azure.active-directory.credential.client-secret Berisi Nilai dari kunci pendaftaran aplikasi yang Anda selesaikan sebelumnya.
  4. Simpan dan tutup file application.properties .

  5. Buat folder bernama pengontrol di folder sumber Java untuk aplikasi Anda. Misalnya: src/main/java/com/wingtiptoys/security/controller.

  6. Buat file Java baru bernama HelloController.java di folder pengontrol dan buka di editor teks.

  7. Masukkan kode berikut, lalu simpan dan tutup file:

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Membuat dan menguji aplikasi Anda

  1. Buka perintah dan ubah direktori ke folder tempat file pom.xml aplikasi Anda berada.

  2. Bangun aplikasi Spring Boot Anda dengan Maven dan jalankan. Contohnya:

    mvn clean package
    mvn spring-boot:run
    

    Screenshot of Maven build output.

  3. Setelah aplikasi dibangun dan dimulai oleh Maven, buka http://localhost:8080/Admin di browser web. Anda akan dimintai nama pengguna dan kata sandi.

    Screenshot of application 'Sign in' dialog.

    Catatan

    Anda mungkin diminta untuk mengubah kata sandi jika ini adalah proses masuk pertama untuk akun pengguna baru.

    Screenshot of application 'Update your password' dialog.

  4. Setelah berhasil masuk, Anda akan melihat contoh teks "Pesan admin" dari pengontrol.

    Screenshot of application admin message.

Ringkasan

Dalam tutorial ini, Anda membuat aplikasi web Java baru menggunakan pemula Microsoft Entra, mengonfigurasi penyewa Microsoft Entra baru, mendaftarkan aplikasi baru di penyewa, lalu mengonfigurasi aplikasi Anda untuk menggunakan anotasi dan kelas Spring untuk melindungi aplikasi web.

Lihat juga

Langkah berikutnya

Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring di Azure.