Apakah Microservices di belakang API Gateway perlu memverifikasi Token Akses?


10

Saya memiliki banyak layanan microser yang hanya dapat diakses secara eksternal melalui API Gateway.

API Gateway saya diatur sebagai Sumber Daya OAuth dan memvalidasi token (Memeriksa tanda tangan dll.) Sebelum meneruskan permintaan di hilir ke satu atau beberapa layanan microser.

Sementara layanan microser saya memerlukan token untuk memverifikasi cakupan dan klaim, apakah sekarang ada kebutuhan untuk layanan ini untuk memvalidasi token?

Tampaknya agak berlebihan namun saya tidak dapat menemukan saran online tentang skenario ini.

Apakah memvalidasi token di gateway API cukup baik? Atau apakah itu praktik terbaik untuk memvalidasi lagi nanti?


1
Apakah layanan yang sama ini dapat diakses ketika melewati gateway secara internal ?
Greg Burghardt

I cannot find any advice online about this scenario.Karena itu tergantung pada beberapa faktor yang berbeda dari proyek ke proyek. Mungkin di sebagian besar perkembangan di luar sana mengklaim sebagai arsitektur MS, mereka tidak membutuhkannya. Selain itu, dalam arsitektur seperti itu, harus ada server auth yang akan melakukan ini alih-alih layanan (dan bukannya gateway tentu saja). Apakah server auth yang mengizinkan permintaan untuk lulus atau tidak.
Laiv

Jawaban:


3

Jika ada panggilan internal yang dapat melewati gateway baik memvalidasi token di setiap layanan Microsoft, atau memaksa semua panggilan - internal dan eksternal - untuk melewati gateway.

Secara pribadi saya juga tidak akan mempercayai panggilan internal. Minta mereka melewati gateway, bahkan hingga membatasi lalu lintas melalui aturan firewall. Ketahui siapa yang berbicara dengan siapa, dan mengapa. Ini membantu membatasi permukaan serangan Anda jika seseorang pernah melanggar jaringan Anda.

Ini memang memperkenalkan satu titik kegagalan, tetapi risiko ini dapat dikurangi dengan load balancing server dan memiliki server fail-over di tangan jika terjadi masalah bencana.

Di sisi lain jika setiap layanan memvalidasi token, dan segala sesuatu tentang proses validasi mengubah Anda memiliki layanan N +1 untuk memperbarui.


Saya telah mendengar argumen bahwa "Anda tidak dapat mempercayai lalu lintas internal." Tetapi mengekspos aplikasi ke (relatif) sejumlah kecil pengguna di intranet adalah jauh dari mengekspos aplikasi yang sama ke Internet publik. Ini pada dasarnya sama dengan perbedaan antara magnet speaker dan cyclotron.
Robert Harvey

2
@RobertHarvey: Saya pikir pembenaran yang pernah saya dengar untuk "tidak mempercayai lalu lintas internal" bukanlah lalu lintas yang sah karena membentur jaringan jika terjadi gangguan. Terutama jika sistem Anda menangani PII, kesehatan, informasi keuangan atau sensitif. Jika seseorang mendobrak masuk, mereka terbatas dalam hal apa lagi yang bisa mereka ajak bicara.
Greg Burghardt

Jika seseorang masuk ke sistem Anda, validasi token akan mengurangi masalah Anda. Apakah Anda harus memvalidasi token atau tidak dalam jaringan tepercaya (dan tidak dapat diakses oleh orang asing) mungkin tergantung pada jenis validasi yang kami lakukan dan jika ada lagi yang tidak melakukan validasi. Sebagai contoh, kinerja. Kembali ke alasanmu. Apakah Anda menerapkan TLS dalam jaringan pribadi? Apakah Anda akan mengenkripsi komunikasi antara dua komponen yang berjalan berdampingan? Kemungkinan jawabannya tergantung .
Laiv
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.