Bir mikro hizmet mimarisi için iyi / güvenli bir kimlik doğrulama stratejisi seçmekte zorlanıyorum. Bu konuda bulduğum tek SO yazı şudur: Mikro Hizmet Mimarisinde Tek Oturum Açma
Buradaki fikrim, her hizmette (örn. Kimlik doğrulama, mesajlaşma, bildirim, profil vb.) Her kullanıcı için benzersiz bir referans (oldukça mantıklı bir şekilde onun user_id
) ve id
oturum açmışsa geçerli kullanıcının alınabilmesi.
Araştırmalarımdan, iki olası strateji olduğunu görüyorum:
1. Paylaşılan mimari
Bu stratejide, kimlik doğrulama uygulaması diğerlerinin yanı sıra bir hizmettir. Ancak her hizmet, dönüşümü session_id
=> yapabilmelidir, user_id
böylece basit olmalıdır. Bu yüzden Redis'i düşündüm, bu anahtar: değeri saklardı session_id:user_id
.
2. Güvenlik duvarı mimarisi
Bu stratejide, yalnızca kimlik doğrulama uygulaması tarafından işlendiği için oturum depolaması gerçekten önemli değildir. Sonra user_id
diğer hizmetlere iletilebilir. Rails + Devise (+ Redis veya mem-cached veya çerez depolama, vb.) Düşündüm ama tonlarca olasılık var. Önemli olan tek şey Service X'in kullanıcının kimliğini doğrulaması gerekmeyeceğidir.
Bu iki çözüm aşağıdakiler açısından nasıl karşılaştırılır:
- güvenlik
- sağlamlık
- ölçeklenebilirlik
- kullanım kolaylığı
Ya da belki burada bahsetmediğim başka bir çözüm önerirsiniz?
1 numaralı çözümü daha çok seviyorum ama doğru yönde gittiğimde beni güvence altına alacak çok fazla varsayılan uygulama bulamadım.
Umarım sorum kapanmaz. Başka nereden soracağımı gerçekten bilmiyorum.
Şimdiden teşekkürler