IdentityServer4 Yazı Serisi #2 – IdentityServer4 Hangi Problemlere Çözüm Getiriyor?

Merhaba,

IdentityServer4 Yazı Serisinin bu ikinci makalesinde IdentityServer4 kütüphanesinin problem senaryolarını şematik görselleştirmeye çalışacak ve bunlara nasıl çözüm getirdiğini inceleyeceğiz.

1. Problem Senaryosu

Birden fazla uygulama arasında merkezi bir yetkilendiriciye ihtiyaç hissedildiği durumlarda IdentityServer4 kullanılabilir.
IdentityServer4 Yazı Serisi #2 - IdentityServer4 Hangi Problemlere Çözüm Getiriyor

Böylece her bir client authorization işlemleri için ayrı ayrı geliştirme zorunluluğundan arınacak ve tüm client’lar için yetkilendirme sorumluluğu merkezi tek bir yer tarafından(Auth Server) üstlenileceği için maliyet sıfırlanmış olacaktır.

Ayrıca burada geliştirilen Auth Server, tıpkı sosyal medyalar gibi farklı client’lara authorization hizmeti sunabilecek kabiliyette evrilebilecektir.

 

 

2. Problem Senaryosu

Birden fazla resource server’ın olduğu ve client tarafından yapılacak istekler için JWT üretimin her bir kaynakta yapıldığı durumlarda IdentityServer4 kullanılarak kullanıcı yetkilendirmesi tek elden gerçekleştirilebilir.
IdentityServer4 Yazı Serisi #2 - IdentityServer4 Hangi Problemlere Çözüm GetiriyorGörselde görüldüğü üzere her bir API JWT üretim sorumluluğunu üstlenmektedir. Bu durum kod israfı açısından oldukça yüksek maliyetlidir. Hele hele ilgili API’lara hangi client(lar)dan talep gelebileceğini ayarlamak ve böylece kötü niyetli client’ları ayıklayabilmek için yapılması gerekecek olan çalışmalarda mevcut olacaktır. Geliştirmenin maliyeti bu şekilde haddinden fazla artacak ve süreçte kaynak sayısı arttıkça yönetilebilirlik imkansıza gidercesine düşecektir.

Tasarımı IdentityServer4 kullanarak yandaki gibi geliştirirsek eğer client, API’lara istekte bulunabilmek için access token değerini Auth Server’dan elde edecek ve bunu tüm API’lara istek yaparken kullanabilecektir. Böylece her bir API’da bir JWT çalışması yapılmaksızın tek elden üretim gerçekleştirilecek ve kod maliyeti minimize edilmiş olacaktır.

Tabi burada API’lara istek yapabilecek client’ların hangileri olduğu ve bu client’ların hangi API’lere istek yapabileceği Auth Server’a tanıtılması gerekmektedir. Böylece client(lar)’ın besleneceği API sayısı artarsa bunun için Auth Server uygulamasını bilgilendirmek için yeterli olacaktır.

3. Problem Senaryosu

Birden fazla client’ın veritabanı bağlantısı durumunda ayrı ayrı connection yapmak yerine merkezi bir bağlantı üzerinden tek bir connection için IdentityServer4 kullanılabilir.

IdentityServer4 Yazı Serisi #2 - IdentityServer4 Hangi Problemlere Çözüm GetiriyorTüm client’ların; misal, giriş işlemi için SQL veritabanına bağlanması gerekmektedir. Bu durum sistemdeki tüm client’lar için bir kodlama maliyeti ortaya koymaktadır.

 

 

 

IdentityServer4 Yazı Serisi #2 - IdentityServer4 Hangi Problemlere Çözüm GetiriyorHalbuki yandaki gibi bir tasarım client’lar da ki SQL connection maliyetini oldukça düşürmektedir.

Tabi burada bir önceki senaryoda olduğu gibi yetkilendirmenin sağlanabilmesi ve isteklerin başarıyla gerçekleşebilmesi için tüm client’lar ve API’lar Auth Server’a tanıtılması gerekmektedir.

 

 

4. Problem Senaryosu

Facebook Login, Google Login gibi OAuth 2.0 ve OpenID Connect protokollerinin kullanıldığı teknikleri ortak paydadan dolayı IdentityServer4 ile hızlıca uygulayabilir ve uygulamanıza entegre edebilirsiniz.

Sonuç
IdentityServer4, yukarıda ele aldığımız problem senaryoları ve benzerlerine çözümler getirmekte kullanılan en efektif framework’tür. Tabi ki de bunlar ve bunlara benzer problemleri çözebilmek için ilgili framework bir zorunluluktan öte bir tercih meselesidir. Başka framework’ler yahut kütüphanelerle çözümler bulunabileceği gibi hususi geliştirmeler ile uzun ince yol alınabilir. Amma velakin genellikle IdentityServer4 framework’ü tercih edilmektedir.

Sonraki yazılarımda görüşmek üzere…
İlgilenenlerin faydalanması dileğiyle…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 19 Ekim 2020

    […] IdentityServer4 Yazı Serisi #2 – IdentityServer4 Hangi Problemlere Çözüm Getiriyor? […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*