Mikro hizmetlerle kullanıcı yetkilendirme


12

Mikro hizmetler kendi yetkilerini işlemekten sorumlu olmalı mı yoksa mikro hizmetlerin tümü veya bir alt kümesi (aynı iş alanı içinde) arasında paylaşılan ayrı bir yetkilendirme hizmetine sahip olmanın daha iyi olduğunu mu düşünüyorsunuz?

Benim için ikincisi, değişiklikleri uygulamayı, politikaları uygulamayı kolaylaştırdığı için daha mantıklı; KURU vb. Ancak, kurallarını tek bir yere döken ve aynı zamanda ağ yükü hakkında endişe duyan her türlü hizmet tarafından kolayca elden çıkabilir.

Düşüncesi olan var mı?

Yanıtlar:


7

Ben bir merkezi, birleşik kimlik doğrulama sistemi kullanmak ve her mikro hizmet için ayrı izinleri / istatistikleri var (bu yığın değişim sitesinde henüz nasıl upvote gibi bir tür ama merkezi yığın exchange kimlik doğrulama sistemi kullanırken yığın taşması olabilir). Mevcut projelerimden biri yakın gelecekte bu yaklaşımı da kapsayacaktır, ki bu hoş olacaktır; önceki geliştirme çalışmaları, ikinci bir yetkilendirme / kimlik doğrulaması gerektiren bir HIPPA uyumlu sistem oluşturulmasını içermekteydi ve papatya dizimi yetkilendirmelerini sistemin yasal olarak ayrı ancak işlevsel olarak ayrılmaz bileşenlerinden zaman alan bir sıkıntıdır. Hata ayıklama işlemi, basit bir oauth girişinden veya appid ve x-auth başlıklarına sahip bir API'den çok daha az sevinç içerir.

Hangi kullanım geliştirme yol haritasının özel gereksinimlerine bağlıdır, ancak aşırı yük ve geliştirme süresi / çabasından kaçınmak için mümkün olduğunda daha basit bir yaklaşım seçerim.


Kimlik doğrulama için OAuth2'yi kullanıyoruz ve aynı prensibi takip etmek istiyorum - yani, tek bir, iyi tanımlanmış bir sorumluluğu olan merkezi bir hizmete sahip olmak - yetkilendirme için, hizmetler arasında işlevselliği çoğaltmak ve mantığı dağıtmak yerine. Bana göre bu alan sınırının ihlalidir. Ancak bu, hizmet kurallarının izolasyonunu (ala stackoverflow, programcılar vb.) Ayırmamız gerektiği anlamına geldiğini kabul ediyorum.
morcmarc

2
Hizmete özgü izinler tarafından geçersiz kılınan, bir avuç çekirdek mikro hizmet aynı izinleri kullanıyorsa yararlı olabilecek genel izinlere sahip olabilirsiniz. Mikro hizmete özgü izinler, merkezi kimlik doğrulama hizmeti için olası performans sorunlarından kaçınmak için muhtemelen o mikro hizmetin uygulama altyapısında depolanmalıdır.
Jonathan Voss

4

Her mikro hizmetin kendi kimlik doğrulamasını yapması gerekmez, ancak kendi yetkisini alması gerekir.

Kaynak

Ve bu çok mantıklı. Merkezi kimlik doğrulama konusunda hiç şüphe yok. Ancak yetkilendirme oldukça kafa karıştırıcıdır.

Mikro hizmetlerin sayısının yüz binlercee kadar büyüyebileceği göz önüne alındığında, merkezi bir yetkilendirme hizmeti yalnızca izinleri listelemekten sorumlu olmalı, ancak bu izinleri doğrulamamalıdır. Bireysel mikro hizmet, izni doğrulamak için farklı şekilde yaklaşmak zorunda kalabilir.

Bu merkezi yetkilendirme hizmetinin farklı hizmetlerden model alması ve karar vermek için farklı yaklaşması gerekebilir, başlangıçta kolay ve güzel görünebilir. Ama daha sonra kaos olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.