Duende IdentityServer, OAuth and OpenId

We will examine IdentityServer that is asp.net framework and will look OAuth 2.0 and OpenId Connect. We'll also look Authentication, Authorize and Token that we need to known for create secure app.

Authentication

Authentication is the process of verifying identity. If the user's username and password are correct, Server permission access to the resource.

Authorization

Authorization is access permission to spesific resource. Such as we have a api and this api have endpoint named product/getall and only users with admin role can access. When we send request this address, firstly server check authetication state, redirect login page if no user logged in. if user logged in, server check user's roles, got access page if it has admin role. Otherwise return 401 unauthorized.
see : 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 What is Json Web Token (JWT)? How to use in .Net Core (5.0)

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...

Leave a Reply

Your email address will not be published.

English