Latihan - Mengotorisasi akses ke Microsoft Graph API dengan MSAL
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.
Pada layar Pendaftaran aplikasi, pilih Izin API untuk menambahkan akses ke API yang dibutuhkan aplikasi Anda.
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.
Jalankan aplikasi
Anda dapat mencoba panggilan Graph API pada aplikasi yang telah Anda jalankan dari latihan sebelumnya.
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.
Pilih Call Graph untuk melakukan panggilan ke titik akhir Microsoft Graph
/medan 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.
Dalam file ./src/main/resources/authentication.properties, nilai
aad.scopesdiatur 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_tokenyang dikembalikan dalam respons autentikasi.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/meMicrosoft 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 cakupanUser.Read.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();