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.
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.
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.
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.
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.
Animasi berikutnya menunjukkan API Asli yang menyediakan token yang diterima API Asli dari Aplikasi Klien dan kredensial klien API Asli.
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.
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.
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.
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.
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
- platform identitas Microsoft alur autentikasi & skenario aplikasi menjelaskan alur autentikasi dan skenario aplikasi tempat alur autentikasi digunakan.
- API Protection menjelaskan praktik terbaik untuk melindungi API Anda melalui pendaftaran, menentukan izin dan persetujuan, dan menegakkan akses untuk mencapai tujuan Zero Trust Anda.
- Contoh API yang dilindungi oleh kerangka kerja persetujuan identitas Microsoft membantu Anda merancang strategi izin aplikasi hak istimewa paling sedikit untuk pengalaman pengguna terbaik.
- Kustomisasi token menjelaskan informasi yang dapat Anda terima di token Microsoft Entra. Ini menjelaskan cara menyesuaikan token untuk meningkatkan fleksibilitas dan kontrol sambil meningkatkan keamanan kepercayaan nol aplikasi dengan hak istimewa paling sedikit.
- Modul Mengamankan API kustom dengan Microsoft Identity Learn menjelaskan cara mengamankan API web dengan identitas Microsoft dan cara memanggilnya dari aplikasi lain.
- Praktik terbaik keamanan untuk properti aplikasi menjelaskan URI pengalihan, token akses (digunakan untuk alur implisit), sertifikat dan rahasia, URI ID aplikasi, dan kepemilikan aplikasi.
- platform identitas Microsoft pustaka autentikasi menjelaskan dukungan Microsoft Authentication Library untuk berbagai jenis aplikasi.