Saya mengalami kesulitan memilih strategi otentikasi yang layak / aman untuk arsitektur layanan mikro. Satu-satunya posting SO yang saya temukan pada topik adalah yang ini: Single Sign-On dalam Arsitektur Microsoft
Gagasan saya di sini adalah untuk memiliki di setiap layanan (mis. Otentikasi, pengiriman pesan, pemberitahuan, profil, dll.) Referensi unik untuk setiap pengguna (cukup logis dari miliknya user_id) dan kemungkinan untuk mendapatkan pengguna saat iniid jika login.
Dari penelitian saya, saya melihat ada dua strategi yang mungkin:
1. Arsitektur bersama

Dalam strategi ini, aplikasi otentikasi adalah salah satu layanan di antara yang lainnya. Tetapi setiap layanan harus dapat membuat konversi session_id=> user_idsehingga harus mati sederhana. Itu sebabnya saya memikirkan Redis, yang akan menyimpan kuncinya: nilaisession_id:user_id .
2. Arsitektur firewall

Dalam strategi ini, penyimpanan sesi tidak terlalu penting, karena hanya ditangani oleh aplikasi otentikasi. Kemudian user_iddapat diteruskan ke layanan lain. Saya memikirkan Rails + Devise (+ Redis atau mem-cache, atau penyimpanan cookie, dll.) Tetapi ada banyak kemungkinan. Satu-satunya hal yang penting adalah bahwa Layanan X tidak akan pernah perlu untuk mengotentikasi pengguna.
Bagaimana kedua solusi tersebut dibandingkan dalam hal:
- keamanan
- kekokohan
- skalabilitas
- kemudahan penggunaan
Atau mungkin Anda akan menyarankan solusi lain yang belum saya sebutkan di sini?
Saya suka solusi # 1 lebih baik tetapi belum menemukan banyak implementasi standar yang akan mengamankan saya pada kenyataan bahwa saya akan ke arah yang benar.
Saya harap pertanyaan saya tidak ditutup. Saya tidak tahu harus bertanya ke mana lagi.
Terima kasih sebelumnya


