Latihan - Mengotorisasi akses ke Microsoft Graph API dengan MSAL

Selesai

Dalam latihan ini, Anda mengonfigurasi aplikasi dengan izin dan menggunakan MSAL untuk mengakses informasi profil pengguna dari API Microsoft Graph (MS Graph).

Menambahkan izin Microsoft Graph ke Pendaftaran aplikasi

Layanan web yang diamankan oleh ID Microsoft Entra menentukan sekumpulan izin yang menyediakan akses ke fungsionalitas API dan data yang diekspos oleh layanan tersebut. Sebelum aplikasi dapat mengakses data atau bertindak atas nama pengguna, aplikasi harus meminta izin ini untuk disetujui oleh pengguna. Anda dapat menetapkan izin API ini ke pendaftaran aplikasi Anda dari portal Azure. Berikut adalah langkah-langkah untuk menetapkan izin Microsoft Graph API ke aplikasi Anda.

  1. Pada layar Pendaftaran aplikasi, pilih Izin API untuk menambahkan akses ke API yang dibutuhkan aplikasi Anda.

    Cuplikan layar yang memperlihatkan menu panel izin API aplikasi yang terdaftar dengan ID Microsoft Entra di portal Azure.

    • Pilih Tambahkan izin.

    • Pastikan bahwa tab API Microsoft dipilih.

    • Di bagian Api Microsoft yang umum digunakan, pilih Microsoft Graph, lalu pilih Izin yang didelegasikan.

    • Di bagian Izin yang didelegasikan, gulir ke bawah dan pilih User.Read dalam daftar. Izin khusus ini adalah untuk mengakses informasi pengguna yang masuk dari titik akhir https://graph.microsoft.com/v1.0/me.

    • Pilih Tambahkan izin.

      Cuplikan layar yang memperlihatkan panel izin API aplikasi yang terdaftar dengan ID Microsoft Entra di portal Azure.

Jalankan aplikasi

Anda dapat mencoba panggilan Graph API pada aplikasi yang telah Anda jalankan dari latihan sebelumnya.

  1. Buka browser Anda dan buka http://localhost:8080/msal4j-servlet-graph/. Jika Anda belum masuk, Anda dialihkan untuk masuk dengan ID Microsoft Entra. Saat berhasil masuk, Anda akan melihat halaman seperti yang ditunjukkan pada gambar berikut.

    Cuplikan layar yang memperlihatkan tombol untuk memanggil grafik yang ditampilkan di halaman setelah berhasil masuk ke aplikasi sampel.

  2. Pilih Call Graph untuk melakukan panggilan ke titik akhir Microsoft Graph /me dan lihat detail pengguna yang ditampilkan.

Gambaran umum kode untuk akses Microsoft Graph

Anda dapat menemukan kode untuk mengakses Microsoft Graph API di kelas CallGraphServlet.java servlet di bawah direktori msal4j/callgraphwebapp/ proyek sampel. Ini mendefinisikan /call_graph titik akhir dalam aplikasi, yang melakukan panggilan resmi ke titik akhir Microsoft Graph API https://graph.microsoft.com/v1.0/me untuk mengambil informasi profil pengguna yang masuk. Berikut adalah detail selengkapnya kode akses Graph.

  1. Dalam file ./src/main/resources/authentication.properties, nilai aad.scopes diatur ke lingkup User.Read.

    Cakupan memberi tahu Microsoft Entra ID tingkat akses yang diminta aplikasi dan memetakan ke izin dalam pendaftaran aplikasi. Berdasarkan cakupan yang diminta, MICROSOFT Entra ID menyajikan dialog persetujuan kepada pengguna saat masuk. Jika pengguna menyetujui satu atau beberapa cakupan, mereka dikodekan ke dalam hasil access_token yang dikembalikan dalam respons autentikasi.

  2. Saat pengguna menavigasi ke /call_graph, aplikasi membuat instans IGraphServiceClient (Microsoft Graph SDK Java), melewati token akses pengguna yang masuk. Klien Graph dari sini menempatkan token akses di header Otorisasi permintaannya. Kemudian, aplikasi meminta Klien Graph memanggil titik akhir /me Microsoft Graph untuk menghasilkan detail bagi pengguna yang saat ini masuk.

    Kode berikut adalah semua yang diperlukan bagi pengembang aplikasi untuk menulis untuk mengakses titik akhir /me, asalkan sudah memiliki token akses yang valid untuk Layanan Graph dengan cakupan User.Read.

    //CallGraphServlet.java
    User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();