Duende IdentityServer ve Kullandığı Teknolojiler Nedir?

Bu gönderide bir asp.net frameworkü olan IdentityServer ve arkasındaki OAuth 2.0 ve OpenId Connect gibi yapıları inceleyeceğiz. Güvenli uygulamalar oluşturabilme için bilmemiz gereken Authentication, Authorize, Token gibi temel kavramlara da bakacağız.

Authentication

Kullanıcının bir sisteme giriş yapabilmesi/erişebilmesidir. Kullanıcı adı ve şifreyi yazdıktan sonra bilgilerimiz doğru ise sisteme authenticate olmuş oluıruz. Kısaca sisteme başarıyla giriş yapabilme olarak tanımlayabiliriz.

Authorize

Yetkilendirme olarak çevirebiliriz. Bir kaynağa erişebilme iznidir. Örneğin product/getall adlı bir apimiz olsun ve buna sadece admin rolündekiler erişebilsin. Bu adrese ilk istek yaptığımızda sistem önce login olup olmadığımızı (authentication) kontrol eder, eğer başarıyla login olmuşsak kullanıcının rollerine bakar eğer kullanıcının admin rolü var ise sayfaya erişime izin verir yoksa 401 http kodu ile hata döner.
Ayrıca bkz : Asp.Net Core Rol Bazlı Kimlik Doğrulama

Token

Sisteme başarıyla giriş yapıldıktan sonra sunucu tarafından verilir ve kaynaklara erişirken bize verilen bu tokeni kullanırız. En bilineni JSON Web Tokendir (JWT) Daha detaylı bakmak için şu linke bakabilirsiniz Json Web Token (JWT) Nedir? .Net Core (5.0) Ortamında Nasıl Kullanılır?

IdentityServer Nedir? Ne İşe yarar?

Duende şirketi tarafından geliştirilen OpenId Connect ve OAuth 2.0 protokolünü kullanarak erişim ve kimlik yönetimi sağlayan bir asp.net frameworküdür. IdentityServer, en son IdentityServer4 olarak çıktıktan sonra bir şirkete dönüştü ve frameworkün ismi Duende IdentityServer oldu. IdentityServer4’ün desteği 2022 bitimiyle son bulacak. v5 versiyonu Ocak 2021’de v6 versiyonu ise Ocak 2022’de yayınlandı, en son çıkan v6 versiyonunu kullanmak daha mantıklı.

IdentityServer merkezi login (SSO) sistemlerini güvenli bir şekilde yönetebilmeye imkan sağlar. OpenId Connect ve OAuth terimlerinden de bahsedelim

OAuth 2.0 ve Single Sign On (SSO)

Açık standartlı bir authorization protokolüdür. Şifrenizi paylaşmadan 3. parti uygulamalara erişmenizi sağlar. Örneğin trendyol.com a giriş için facebook ile giriş yapmayı tercih ettiniz bu durumda facebook.comr/oauth?redirect_uri=https://www.trendyol.com&client_id=”” …. gibi bilgilerle bir yönlendirme yapacak. Facebook hesabınıza giriş yapmış iseniz yetkilendirme için size soru soracaktır sizde kabul ederseniz başarılı bir şekilde trendyol.coma yönlendirilmiş olacaksınız böylece trendyolun çökmesi/ hacklenmesi durumunda şifreniz açığa çıkmayacaktır. Bu sadece google, facebook gibi için değil kendi merkezi sisteminizi de bunun üstüne inşa edebilirsiniz. Örneğin birden çok ürününüz olsun. Bir e ticaret siteniz ve bir de oto kiralama servisiniz, bu durumda kullanıcıları tek bir yerden yönetmek isteriz kullanıcıların şifresini ve temel bilgilerini tutacağımız bir user service ile diğer ürünlerimiz buradan login olabilir yeni bir ürün eklediğimizde de basitçe entagrasyonunu yapmış oluruz.

OpenId Connect

OAuth 2.0 üzerine inşa edilmiş bir authentacion katmanıdır. Oauth 2.0 sadece yetkilendirme yapar OpenId ile de giriş yapması ya da kayıt olması sağlanır. Yukarıdaki örnekte Oauth 2.0 ile facebooktan ad, soyad, profil resmi gibi bazı yetkiler istedik. Login olma işlemini ise OpenId Connect sağlar. OpenId Connect zaten OAuth için çıkmış olan bir protokoldür birbirleriyle uyumlu çalışırlar.

Sonuç

IdentityServer birden çok clientlarınızı tek bir yerden güvenli bir şekilde ortaya çıkmıştır. Basit bir uygulamanız var ve sadece tek bir clientınız var ise identityserver bu nokta da gereksiz olur.
Birden çok uygulamalarınızın güvenliği için ideal bir frameworkdür.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Turkish