ASP.NET Core 3.1 Web API – Basic Authentication Kullanımı

netcore-3-1-web-api-basic-auth

Merhabalar bu makalede .Net Core 3.1 versiyonu ile bir Web API örnek projede Basic kimlik doğrulama yapısını inceleyeceğim. Bir önceki ASP.NET Core 3.1 Web API – JWT Authentication Kullanımı makalesini inceleyebilirsiniz. Uygulama dosyalarını aspnetcore-3-1-web-api-basic Github adresinde bulabilirsiniz.

ASP.NET Core Web API – User Entity

Kullanıcı bilgilerini taşıdığımız user sınıfını oluşturuyorum. Entity yapıları uygulamanın farklı bölümlerinde veri iletimi için kullanılır. Ayrıca controller yardımıyla http yanıtlarını döndürmek içinde kullanılabilmektedir. Bu sınıfı veritabanındaki User tablosu olarak düşünebilirsiniz. Entities sınfıları Entityframework ile Code First yaklaşımında veritabanı tablolarını oluşturmak için kullandığımız sınıflarıdır. Not: Entities yapılarında kısıtlı veri döndürmek istendiğinde Models klasöründe ihtiyaca yönelik sınıflar kullanılmalıdır.

ASP.NET Core Web API – Item Entity

Ürün bilgilerini tuttuğumuz Item sınıfını veritabanında Item tablosu olarak düşünebilirsiniz.

ASP.NET Core Web API – AuthModel

AuthModel token bilgisi almak için istemcinin göndermiş olduğu istekte User sınıfının sadece username ve password bilgisini parametre olarak göndermesi için kısıtlı bir sınıftır.

ASP.NET Core Web API – Startup

Startup ​​sınıfı, uygulamanın tüm isteklerin nasıl işleneceğini yapılandırdığımız sınıftır.

ASP.NET Core Web API – UserService

UserService sınıfında IUserService interface dosyasından implement ettikten sonra statik olarak bir User listesi dolduruyorum. Bu User verisi ile Authenticate metodunda UserName ve Password kontrolü ile user nesnesi geriye döndürüyorum.

ASP.NET Core Web API – ItemService

ItemService sınıfınıd IItemService interface dosyasından implemente ediyorum. Bu sınıfta ürünler listesini geri döndüreceğimiz metodu yazalım.

ASP.NET Core Web API – ItemController

ItemController sınıfı [Authorize] attribute ile yetkilendirildiği için UserName ve Password gönderilerek işlem yapılabilir.

ASP.NET Core Web API – UserController

Not: Tüm controller sınıfının [Authorize] attribute ile yetkilendirilmesi yanlızca [AllowAnonymous] attribute içeren metotları kapsamamaktadır. Çünkü [AllowAnonymous] attribute içeren metotlar [Authorize] attribute yapısını ezmektedir.

ASP.NET Core Web API – BasicAuthHandler

Oluşturmuş olduğumuz BasicAuthHandler sınıfı ile AuthenticationSchemeOptions özelliğini kullanarak HandleAuthenticate yapısı ile kimlik doğrulama işlemlerini yapacağız. Aşağıdaki kod bloğunda görebileceğiniz üzere Request.Headers içerisinde Authorization keyini yakalamaya çalışıp değerini AuthenticationHeaderValue.Parse metodu ile parametre değerine ulaşıyorum. Kullanıcı adı ve şifreyi “:” karakteri ile birleştirdiğim için örn:(murat:1234) split ile ayrıştırp kullanıcı adı ve şifreyi alıyorum. Kullanıcı bilgileri ile bir claim oluşturup AuthenticationTicket ile yeni bir Ticket oluşturuyorum ve AuthenticateResult.Success(ticket) ile döndürüyorum.

Kaynakça :

Sosyal medyada paylaşabilirsiniz..

Murat Süzen Hakkında

Tüm yazılarını gör

Bir cevap yazın

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