Bagikan melalui


Tutorial: Memanggil API yang dilindungi dan menampilkan hasilnya

Dalam tutorial sebelumnya, Anda menambahkan pengalaman masuk dan keluar ke aplikasi. Anda sekarang dapat membangun fungsionalitas ini untuk memungkinkan pengguna yang masuk memanggil API web yang dilindungi. Untuk tujuan tutorial ini, Anda memanggil Microsoft Graph API dan menampilkan informasi profil pengguna yang masuk.

Dalam tutorial ini:

  • Menambahkan kode untuk memanggil API hilir yang dilindungi
  • Menjalankan dan menguji aplikasi

Panggil API dan tampilkan hasilnya

Untuk memanggil API yang dilindungi, Anda harus terlebih dahulu memperoleh token akses untuk pengguna saat ini dengan memanggil auth.get_token_for_user sebagai berikut:

@app.route("/call_downstream_api")
def call_downstream_api():
    token = auth.get_token_for_user(app_config.SCOPE)
    if "error" in token:
        return redirect(url_for("login"))
    # Use access token to call downstream api
    api_result = requests.get(
        app_config.ENDPOINT,
        headers={'Authorization': 'Bearer ' + token['access_token']},
        timeout=30,
    ).json()
    return render_template('display.html', result=api_result)

Saat pengguna menavigasi ke /call_downstream_api rute URL, Flask memanggil call_downstream_api() fungsi yang pertama kali mencoba mendapatkan token akses menggunakan auth.get_token_for_user(app_config.SCOPE). Jika ada masalah autentikasi atau kesalahan apa pun dalam token, alihkan pengguna ke halaman masuk untuk autentikasi ulang.

Jika aplikasi berhasil mendapatkan token akses, aplikasi membuat permintaan HTTP ke API hilir menggunakan metode .requests.get(...) Dalam permintaan, URL API hilir kami ditentukan dalam app_config.ENDPOINT. Anda juga meneruskan token akses di Authorization bidang header permintaan.

Permintaan yang berhasil ke API hilir (Microsoft Graph API) mengembalikan respons JSON yang api_result disimpan dalam variabel dan diteruskan ke display.html templat untuk penyajian.

Menambahkan kode untuk menjalankan aplikasi

Untuk menjalankan aplikasi Anda, tambahkan cuplikan kode berikut di akhir file app.py Anda.

if __name__ == "__main__":
    app.run()

Menguji aplikasi

Ikuti langkah-langkah ini untuk menguji pengalaman masuk, memanggil API, dan keluar di aplikasi web Anda:

  1. Jika Anda belum melakukannya, ganti nilai tempat penampung dalam file .env.sample dengan detail pendaftaran aplikasi Microsoft Entra Anda (ID klien, rahasia klien, dan URL otoritas)

  2. Buat lingkungan virtual untuk aplikasi:

    py -m venv .venv
    .venv\scripts\activate
    
  3. Instal persyaratan menggunakan pip:

    pip install -r requirements.txt
    
  4. Jalankan aplikasi dari baris perintah. Pastikan aplikasi Anda berjalan pada port yang sama dengan URI pengalihan yang Anda konfigurasi sebelumnya.

    flask run --host=localhost --port=5000
    
  5. Salin URL https yang muncul di terminal, misalnya, https://localhost:5000, dan tempelkan ke browser. Sebaiknya gunakan sesi browser privat atau penyamaran.

  6. Setelah jendela masuk muncul, berikan akun untuk masuk dan pilih Berikutnya:

    Cuplikan layar memperlihatkan layar masuk.

  7. Browser Anda akan mengalihkan Anda untuk memberikan kata sandi untuk akun Anda. Masukkan kata sandi dan pilih Masuk.

    Pada titik ini, alur masuk mungkin bervariasi tergantung pada informasi keamanan yang diperlukan organisasi Anda, misalnya, autentikasi multifaktor menggunakan aplikasi pengautentikasi.

  8. Untuk Tetap masuk, Anda dapat memilih Tidak atau Ya.

  9. Aplikasi meminta izin untuk mempertahankan akses ke data yang telah Anda akses, masuk, dan membaca profil Anda. Pilih Terima untuk menyetujui izin ini.

  10. Cuplikan layar berikut muncul, menunjukkan bahwa Anda masuk ke aplikasi:

    Cuplikan layar memperlihatkan pengguna yang masuk.

  11. Untuk memanggil API yang dilindungi dan menampilkan hasilnya, pilih Panggil API hilir. Panggilan yang berhasil ke Microsoft Graph API mengembalikan informasi tentang pengguna yang masuk, seperti yang ditunjukkan:

    Cuplikan layar memperlihatkan hasil panggilan API yang berhasil.

Keluar dari aplikasi

  1. Pilih Keluar untuk keluar dari aplikasi.
  2. Anda diminta untuk memilih akun untuk keluar. Pilih akun yang Anda gunakan untuk masuk.
  3. Pesan muncul yang menunjukkan bahwa Anda keluar. Anda sekarang dapat menutup jendela browser.

Lihat juga

Aplikasi yang Anda buat menggunakan pustaka identitas, yang mengabstraksi sebagian besar detail Microsoft Authentication Library (MSAL) untuk Python. Untuk informasi selengkapnya tentang cara menggunakan MSAL Python untuk skenario yang berbeda, lihat dokumentasi MSAL Python.