Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Penyewa tenaga kerja
Penyewa eksternal
(pelajari selengkapnya)
Dalam tutorial ini, Anda memanggil Microsoft Graph API dari aplikasi web Python Flask. Dalam tutorial sebelumnya, Anda menambahkan pengalaman masuk dan keluar ke aplikasi. Setelah pengguna masuk, aplikasi memperoleh token akses untuk memanggil Microsoft Graph API.
Dalam tutorial ini, Anda:
- Memperbarui aplikasi web Python Flask yang ada untuk memperoleh token akses
- Gunakan token akses untuk memanggil Microsoft Graph API.
Prasyarat
Selesaikan langkah-langkah dalam Tutorial : Tambahkan masuk ke aplikasi web Python Flask dengan menggunakan platform identitas Microsoft.
Menentukan cakupan dan titik akhir API
Dalam contoh ini, kami memanggil Microsoft Graph API untuk mendapatkan informasi profil pengguna yang masuk. Jika aplikasi Anda berada di tenan tenaga kerja, saat masuk, pengguna memberikan persetujuan terhadap cakupan yang diperlukan oleh aplikasi untuk mengakses Microsoft Graph API. Jika aplikasi Anda berada di tenant eksternal, pastikan Anda memberikan persetujuan admin atas nama pengguna di tenant Anda. Aplikasi kemudian menggunakan token akses untuk memanggil API dan menampilkan hasilnya.
Dalam file .env Anda, tambahkan titik akhir yang akan kita gunakan, serta cakupan yang diperlukan untuk memanggil Microsoft Graph API.
SCOPE=User.Read
ENDPOINT=https://graph.microsoft.com/v1.0/me
Baca konfigurasi baru di aplikasi Anda dengan memperbarui file app_config.py.
# other configs go here
SCOPE = os.getenv("SCOPE")
ENDPOINT = os.getenv("ENDPOINT")
Memanggil API yang dilindungi
Teruskan titik akhir API ke halaman depan. Ini memungkinkan Anda untuk memanggil titik akhir Anda. Perbarui rute
/agar terlihat seperti yang diperlihatkan dalam cuplikan kode berikut:@app.route("/") @auth.login_required def index(*, context): return render_template( 'index.html', user=context['user'], title="Flask Web App Sample", api_endpoint=os.getenv("ENDPOINT") # added this line )Panggil Microsoft Graph API yang dilindungi seperti yang ditunjukkan dalam cuplikan kode berikut. Kami meneruskan daftar cakupan yang perlu digunakan aplikasi kami. Jika ada cakupan, konteksnya berisi token akses. Token akses digunakan untuk memanggil API hilir. Tambahkan kode ini ke file app.py:
@app.route("/call_api") @auth.login_required(scopes=os.getenv("SCOPE", "").split()) def call_downstream_api(*, context): api_result = requests.get( # Use access token to call a web api os.getenv("ENDPOINT"), headers={'Authorization': 'Bearer ' + context['access_token']}, timeout=30, ).json() if context.get('access_token') else "Did you forget to set the SCOPE environment variable?" return render_template('display.html', title="API Response", result=api_result)Jika aplikasi berhasil mendapatkan token akses, aplikasi membuat permintaan HTTP ke API hilir menggunakan metode
requests.get(...). Dalam permintaan, URL API hilir kami ditentukan dalamapp_config.ENDPOINTdan token akses diberikan di bidangAuthorizationdari header permintaan.Permintaan yang berhasil ke API hilir (Microsoft Graph API) mengembalikan respons JSON yang disimpan dalam variabel
api_resultdan diteruskan ke templatdisplay.htmluntuk penyajian.
Menampilkan hasil API
Buat file yang disebut display.html di folder templat. Halaman ini menampilkan hasil panggilan ke titik akhir Microsoft Graph. Tambahkan kode berikut ke file display.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Microsoft Identity Python Web App: API</title>
</head>
<body>
<a href="javascript:window.history.go(-1)">Back</a> <!-- Displayed on top of a potentially large JSON response, so it will remain visible -->
<h1>{{title}}</h1>
<pre>{{ result |tojson(indent=4) }}</pre> <!-- Just a generic json viewer -->
</body>
</html>
Menjalankan dan menguji sampel aplikasi web
Di terminal Anda, jalankan perintah berikut:
python3 -m flask run --debug --host=localhost --port=3000Anda dapat menggunakan port pilihan Anda. Port ini harus mirip dengan port URI pengalihan yang Anda daftarkan sebelumnya.
Buka browser Anda, lalu buka
http://localhost:3000. Anda melihat halaman masuk.Masuk dengan akun Microsoft Anda dengan mengikuti langkah-langkahnya. Anda diminta untuk memberikan alamat email dan kata sandi untuk masuk.
Jika ada cakupan yang dibutuhkan oleh aplikasi, akan muncul layar persetujuan. Aplikasi meminta izin untuk mempertahankan akses ke data yang Anda izinkan aksesnya dan untuk masuk. Pilih Terima. Layar ini tidak muncul jika tidak ada cakupan yang ditentukan.
API Panggilan
Pilih tautan Panggil API di beranda. Aplikasi ini memanggil Microsoft Graph API untuk mendapatkan informasi profil pengguna yang masuk. Aplikasi menampilkan hasil panggilan ke API.
Pilih Keluar untuk keluar dari aplikasi. Anda diminta untuk memilih akun yang akan keluar dari. Pilih akun yang Anda gunakan untuk masuk.
Materi referensi
ms_identity_python menyederhanakan detail perpustakaan MSAL. Untuk informasi selengkapnya, lihat dokumentasi MSAL Python. Materi referensi ini membantu Anda memahami bagaimana Anda menginisialisasi aplikasi dan memperoleh token menggunakan MSAL Python.