Bagikan melalui


Memanggil API dari API lain

Bagaimana Anda, sebagai pengembang, memastikan Zero Trust saat Anda memiliki satu API yang perlu memanggil API lain? Dalam artikel ini, Anda mempelajari cara mengembangkan aplikasi dengan aman saat bekerja atas nama pengguna.

Saat pengguna mendorong UI aplikasi, aplikasi mungkin menggunakan izin yang didelegasikan sehingga API mengetahui pengguna mana yang atas nama aplikasinya berfungsi. Ini akan memeriksa klaim subjek (sub) atau klaim ID objek (oid) dan ID penyewa (tid) dalam token akses yang disediakan aplikasi saat memanggil API. API tidak akan mengandalkan aplikasi yang tidak tepercaya, yang hanya merupakan panggilan yang berasal dari suatu tempat di jaringan. Sebagai gantinya, ini akan memvalidasi token untuk memastikan bahwa API hanya berfungsi atas nama pengguna aplikasi yang diverifikasi ID Microsoft Entra.

Ketika satu API (kami menyebutnya sebagai API Asli) memanggil yang lain, sangat penting bahwa API yang kami panggil (kami menyebutnya sebagai API Hilir) mengikuti proses validasi yang dijelaskan di atas. API Hilir tidak dapat mengandalkan sumber jaringan yang tidak tepercaya. Ini harus mendapatkan identitas pengguna dari token akses yang divalidasi dengan benar.

Jika API Hilir tidak mengikuti proses validasi yang tepat, API Hilir harus mengandalkan API Asli untuk memberikan identitas pengguna dengan cara lain. API Hilir mungkin salah menggunakan izin aplikasi untuk melakukan operasi. Kemudian API Asli akan menjadi satu-satunya otoritas di mana pengguna dapat mencapai hasil mana terhadap API Hilir. API Asli sengaja dapat (atau tidak sengaja) memungkinkan pengguna untuk menyelesaikan tugas yang tidak dapat dicapai pengguna. Misalnya, satu pengguna dapat mengubah detail pengguna lain atau membaca dan memperbarui dokumen yang tidak dapat diakses pengguna. Validasi yang tidak tepat dapat menyebabkan masalah keamanan yang serius.

Untuk keamanan yang lebih baik, API Asli memperoleh token akses izin yang didelegasikan untuk disediakan ke API Hilir saat API Asli melakukan panggilan. Mari kita telusuri cara kerjanya.

Aplikasi Klien memperoleh token akses untuk memanggil API Asli

Diagram berikut menunjukkan Aplikasi Klien dan API Asli.

Diagram menunjukkan Aplikasi Klien dengan ID dan token akses dan API Asli yang memerlukan otorisasi.

Aplikasi Klien memperoleh token akses izin yang didelegasikan (ditunjukkan oleh bentuk segi lima dengan label "A"), ke API Asli. Token akses izin yang didelegasikan memungkinkannya bekerja atas nama pengguna untuk memanggil API Asli yang memerlukan otorisasi.

Aplikasi Klien memberikan token akses ke API Asli

Animasi berikut menunjukkan Aplikasi Klien yang memberikan token akses ke API Asli. API Asli sepenuhnya memvalidasi dan memeriksa token akses untuk menentukan identitas pengguna Aplikasi Klien.

Diagram animasi menunjukkan Aplikasi Klien memberikan token akses ke API Asli yang memerlukan otorisasi.

API asli melakukan validasi dan penerapan token

Animasi berikutnya menunjukkan bahwa, setelah Aplikasi Klien memberikan token akses ke API Asli, API Asli melakukan validasi dan penerapan token. Jika semuanya baik, API melanjutkan dan melayani permintaan untuk Aplikasi Klien.

Diagram animasi menunjukkan Aplikasi Klien dengan token ID di sebelah kiri memberikan token akses ke API Asli di sebelah kanan.

API asli tidak dapat menggunakan token akses untuk memanggil API Hilir

Animasi berikut menunjukkan bahwa API Asli sekarang ingin memanggil API Hilir. Namun, API Asli tidak dapat menggunakan token akses untuk memanggil API Hilir.

Diagram animasi menunjukkan Aplikasi Klien memberikan token akses ke API Asli. Otorisasi Diperlukan mencegah API Asli memberikan token ke API Hilir.

API asli kembali ke ID Microsoft Entra

Dalam animasi berikut, API Asli harus kembali ke ID Microsoft Entra. Ini memerlukan token akses untuk memanggil API Hilir atas nama pengguna.

Diagram animasi menunjukkan Aplikasi Klien memberikan token akses ke API Asli yang memerlukan validasi dari ID Microsoft Entra untuk memanggil API Hilir.

Animasi berikutnya menunjukkan API Asli yang menyediakan token yang diterima API Asli dari Aplikasi Klien dan kredensial klien API Asli.

Diagram animasi menunjukkan Aplikasi Klien memberikan token akses ke API Asli yang menerima validasi dari ID Microsoft Entra untuk memanggil API Hilir.

ID Microsoft Entra memeriksa hal-hal seperti persetujuan atau penegakan akses bersyar. Anda mungkin harus kembali ke klien panggilan Anda dan memberikan alasan untuk tidak bisa mendapatkan token. Anda biasanya akan menggunakan proses tantangan klaim untuk kembali ke aplikasi panggilan dengan informasi mengenai persetujuan yang tidak diterima (seperti terkait dengan kebijakan akses bersyarkat).

MICROSOFT Entra ID melakukan pemeriksaan

Dalam animasi berikut, MICROSOFT Entra ID melakukan pemeriksaannya. Jika semuanya baik-baik saja, ID Microsoft Entra mengeluarkan token akses ke API Asli untuk memanggil API Hilir atas nama pengguna.

Diagram animasi menunjukkan API Asli memberikan token akses ke API Hilir setelah memvalidasi dengan ID Microsoft Entra.

API asli memiliki konteks pengguna dengan alur Atas Nama

Animasi berikut mengilustrasikan proses On-Behalf-Of flow (OBO) yang memungkinkan API untuk terus memiliki konteks pengguna saat memanggil API Hilir.

Diagram animasi menunjukkan API Asli memberikan token akses ke API Hilir.

API asli memanggil API Hilir

Di animasi berikutnya, kita memanggil API Hilir. Token yang diterima API Hilir memiliki klaim audiens (aud) yang tepat yang menunjukkan API Hilir.

Diagram animasi menunjukkan API Hilir memvalidasi token akses dari API Asli.

Token mencakup cakupan untuk persetujuan yang diberikan dan identitas pengguna aplikasi asli. API Hilir dapat menerapkan izin yang efektif dengan benar untuk memastikan bahwa pengguna yang diidentifikasi memiliki izin untuk menyelesaikan tugas yang diminta. Anda ingin menggunakan atas nama alur untuk memperoleh token api untuk memanggil API lain untuk memastikan bahwa konteks pengguna diteruskan ke semua API Hilir.

Opsi terbaik: API Asli melakukan alur Atas Nama

Animasi terakhir ini menunjukkan bahwa opsi terbaik adalah api asli untuk melakukan On-Behalf-Of flow (OBO). Jika API Hilir menerima token yang benar, API dapat merespons dengan benar.

Diagram animasi menunjukkan API Hilir menerima token akses dari API Asli.

Ketika API bertindak atas nama pengguna dan perlu memanggil API lain, API harus menggunakan OBO untuk memperoleh token akses izin yang didelegasikan untuk memanggil API Hilir atas nama pengguna. API tidak boleh menggunakan izin aplikasi untuk memanggil API Hilir saat API bertindak atas nama pengguna.

Langkah berikutnya