Mulai cepat: Menambahkan masuk dengan Microsoft ke aplikasi web Java

Di mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi web Java dapat masuk pengguna dan memanggil Microsoft Graph API. Pengguna dari organisasi Azure Active Directory (Azure AD) mana pun dapat masuk ke aplikasi.

Untuk gambaran umum, lihat diagram cara kerja sampel.

Prasyarat

Untuk menjalankan sampel ini, Anda perlu:

Mendaftar dan mengunduh aplikasi mulai cepat Anda

Ada dua cara untuk memulai aplikasi mulai cepat Anda: express (opsi 1) dan manual (opsi 2).

Opsi 1: Mendaftarkan dan mengonfigurasikan aplikasi Anda secara otomatis, lalu mengunduh contoh kode

  1. Buka pengalaman mulai cepat portal Microsoft Azure - Pendaftaran aplikasi.
  2. Masukkan nama untuk aplikasi Anda, lalu pilih Daftarkan.
  3. Ikuti instruksi dalam pengalaman mulai cepat portal untuk mengunduh kode aplikasi yang dikonfigurasi secara otomatis.

Opsi 2: Mendaftar dan mengonfigurasi sampel aplikasi dan kode secara manual

Langkah 1: Daftarkan aplikasi

Untuk mendaftarkan aplikasi Anda dan menambahkan informasi pendaftaran aplikasi secara manual ke aplikasi tersebut, ikuti langkah-langkah berikut:

  1. Masuk ke portal Microsoft Azure.
  2. Jika Anda memiliki akses ke beberapa penyewa, gunakan filter Direktori + langganan di menu atas untuk beralih penyewa aplikasinya ingin Anda daftarkan.
  3. Cari dan pilih Microsoft Azure Active Directory.
  4. Di bawah Kelola, pilih Pendaftaran aplikasi.
  5. Pilih Pendaftaran baru.
  6. Masukkan Nama untuk aplikasi Anda, misalnya java-webapp. Pengguna aplikasi Anda mungkin melihat nama ini. Anda bisa mengubahnya nanti.
  7. Pilih Daftarkan.
  8. Di halaman Gambaran Umum, perhatikan ID Aplikasi (klien) dan ID Direktori (penyewa) . Anda akan membutuhkan nilai-nilai ini nanti.
  9. Di bagian Kelola, pilih Autentikasi.
  10. Pilih Tambahkan platformWeb.
  11. Di bagian URI Pengalihan, masukkan .
  12. Pilih Konfigurasikan.
  13. Di bagian Web, di bawah URI Pengalihan, masukkan sebagai URI pengalihan kedua.
  14. Di bawah Kelola, pilih Sertifikat rahasia. Di bagian Rahasia klien, pilih Rahasia klien baru.
  15. Masukkan deskripsi kunci (misalnya, rahasia aplikasi), biarkan kedaluwarsa default, dan pilih Tambahkan.
  16. Perhatikan Nilai rahasia klien. Anda akan membutuhkannya nanti.

Langkah 1: Konfigurasikan aplikasi di portal Microsoft Azure

Untuk menggunakan sampel kode dalam mulai cepat ini:

  1. Tambahkan URL balasan https://localhost:8443/msal4jsample/secure/aad dan https://localhost:8443/msal4jsample/graph/me.
  2. Buat rahasia klien.

Already configured Aplikasi Anda dikonfigurasi dengan atribut ini.

Langkah 2: Unduh sampel kode

Unduh proyek dan ekstrak file .zip ke folder di dekat akar drive Anda. Misalnya, C:\Azure-Samples.

Untuk menggunakan HTTPS dengan localhost, sediakan server.ssl.key properti. Untuk menghasilkan sertifikat yang ditandatangani sendiri, gunakan utilitas keytool (termasuk dalam JRE).

Berikut contohnya:

 keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

 server.ssl.key-store-type=PKCS12
 server.ssl.key-store=classpath:keystore.p12
 server.ssl.key-store-password=password
 server.ssl.key-alias=testCert

Masukkan file keystore yang dihasilkan ke dalam folder sumber daya.

Catatan

Enter_the_Supported_Account_Info_Here

Langkah 3: Konfigurasikan sampel kode

  1. Ekstrak file zip ke folder lokal.

  2. Opsional. Jika Anda menggunakan lingkungan pengembangan terintegrasi, buka sampel di lingkungan tersebut.

  3. Buka file application.properties. Anda dapat menemukannya di folder src/main/resources/ . Ganti nilai di bidang aad.clientId, aad.authority, dan aad.secretKey dengan ID aplikasi, ID penyewa, dan nilai rahasia klien. Berikut adalah apa yang harus terlihat seperti:

    aad.clientId=Enter_the_Application_Id_here
    aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/
    aad.secretKey=Enter_the_Client_Secret_Here
    aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad
    aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me
    aad.msGraphEndpointHost="https://graph.microsoft.com/"
    

    Dalam kode sebelumnya:

    • Enter_the_Application_Id_here adalah ID aplikasi untuk aplikasi yang Anda daftarkan.
    • Enter_the_Client_Secret_Here adalah Enter_the_Client_Secret_Here yang dibuat di Sertifikat rahasia untuk aplikasi yang Anda daftarkan.
    • Enter_the_Tenant_Info_Here adalah nilai Enter_the_Tenant_Info_Here dari aplikasi yang Anda daftarkan.
  4. Untuk menggunakan HTTPS dengan localhost, sediakan server.ssl.key properti. Untuk menghasilkan sertifikat yang ditandatangani sendiri, gunakan utilitas keytool (termasuk dalam JRE).

    Berikut contohnya:

     keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password
    
     server.ssl.key-store-type=PKCS12
     server.ssl.key-store=classpath:keystore.p12
     server.ssl.key-store-password=password
     server.ssl.key-alias=testCert
    
  5. Masukkan file keystore yang dihasilkan ke dalam folder sumber daya.

Langkah 3: Jalankan sampel kode

Langkah 4: Jalankan sampel kode

Untuk menjalankan proyek, lakukan salah satu langkah berikut:

  • Jalankan langsung dari IDE Anda dengan menggunakan server Spring Boot yang disematkan.
  • Kemas ke file WAR dengan menggunakan Maven, dan kemudian sebarkan ke solusi kontainer J2EE seperti Apache Tomcat.
Menjalankan proyek dari IDE

Untuk menjalankan aplikasi web dari IDE, pilih jalankan, lalu buka halaman beranda proyek. Untuk sampel ini, URL beranda standar adalah https://localhost:8443.

  1. Pada halaman depan, pilih tombol Masuk untuk mengalihkan pengguna ke Azure Active Directory dan meminta kredensial kepada mereka.

  2. Setelah pengguna diautentikasi, mereka dialihkan ke https://localhost:8443/msal4jsample/secure/aad. Mereka sekarang masuk, dan halaman akan menampilkan informasi tentang akun pengguna. Contoh UI memiliki tombol-tombol ini:

    • Keluar: Mengeluarkan pengguna saat ini dari aplikasi dan mengalihkan pengguna tersebut ke halaman beranda.
    • Tampilkan Info Pengguna: Memperoleh token untuk Microsoft Graph dan memanggil Microsoft Graph dengan permintaan yang berisi token, yang mengembalikan informasi dasar tentang pengguna yang masuk.
Menjalankan proyek dari Tomcat

Jika Anda ingin menyebarkan sampel web ke Tomcat, buat beberapa perubahan pada kode sumber.

  1. Buka ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Hapus semua kode sumber dan ganti dengan kode ini:

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. Port HTTP default Tomcat adalah 8080, tetapi Anda memerlukan koneksi HTTPS melalui port 8443. Untuk mengonfigurasi pengaturan ini:

    • Buka tomcat/conf/server.xml.

    • Cari <connector> tag, dan ganti konektor yang ada dengan konektor ini:

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. Buka jendela Prompt Perintah. Masuk ke folder akar sampel ini (di mana pom.xml file berada), dan jalankan mvn package untuk membuat proyek.

    • Perintah ini akan menghasilkan file msal-web-sample-0.1.0.war di direktori /targets Anda.
    • Ganti nama file ini menjadi msal4jsample.war.
    • Terapkan file WAR dengan menggunakan Tomcat atau solusi kontainer J2EE lainnya.
      • Untuk menyebarkan file msal4jsample.war, salin ke direktori /webapps/ di instalasi Tomcat Anda, lalu mulai server Tomcat.
  4. Setelah file digunakan, buka https://localhost:8443/msal4jsample dengan menggunakan browser.

Penting

Aplikasi mulai cepat ini menggunakan rahasia klien untuk mengidentifikasi dirinya sebagai klien rahasia. Karena rahasia klien ditambahkan sebagai teks biasa ke file proyek Anda, untuk alasan keamanan, kami sarankan Anda menggunakan sertifikat alih-alih rahasia klien sebelum menggunakan aplikasi di lingkungan produksi. Untuk informasi selengkapnya tentang cara menggunakan sertifikat, lihat Kredensial sertifikat untuk autentikasi aplikasi.

Informasi selengkapnya

Cara kerja sampel

Diagram that shows how the sample app generated by this quickstart works.

Mendapatkan MSAL

MSAL for Java (MSAL4J) adalah pustaka Java yang digunakan untuk masuk pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft.

Tambahkan MSAL4J ke aplikasi Anda dengan menggunakan Maven atau Gradle untuk mengelola dependensi Anda dengan membuat perubahan berikut ke file pom.xml (Maven) atau build.gradle (Gradle) aplikasi.

Dalam pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

Dalam build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Menginisialisasi MSAL

Tambahkan referensi ke MSAL untuk Java dengan menambahkan kode berikut di awal file tempat Anda akan menggunakan MSAL4J:

import com.microsoft.aad.msal4j.*;

Bantuan dan dukungan

Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.

Langkah berikutnya

Untuk diskusi yang lebih mendalam tentang membangun aplikasi web yang masuk pengguna di platform identitas Microsoft, lihat seri skenario multipihak: