ASP.NET Authentication ve Authorization Temelleri


ASP.NET Authentication ve Authorization Temelleri

ASP.NET Authentication ve Authorization konuları, modern web uygulamalarında güvenlik ve erişim kontrolü sağlamanın temel taşlarıdır. Kimlik doğrulama (authentication), bir kullanıcının kimliğini doğrulama sürecini kapsarken; yetkilendirme (authorization) ise doğrulanmış kullanıcının hangi kaynaklara erişebileceğini belirler. ASP.NET teknolojisinde bu iki kavramın doğru şekilde uygulanması, uygulamanızın hem güvenliğini hem de kullanıcı deneyimini doğrudan etkiler.

ASP.NET Authentication (Kimlik Doğrulama) Nasıl Çalışır?

ASP.NET uygulamalarında authentication, bir kullanıcının sisteme giriş yaptıktan sonra kim olduğunu doğrulayan ilk kontrol katmanıdır. Farklı kimlik doğrulama yöntemleri kullanılabilir:

  • Cookie tabanlı authentication (Form authentication)
  • JWT (JSON Web Token) ile authentication
  • External provider (Google, Facebook vb.) authentication

Örneğin, cookie tabanlı kimlik doğrulamayı ASP.NET Core'da şu şekilde kullanabilirsiniz:


public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication("Cookies")
        .AddCookie("Cookies", options =>
        {
            options.LoginPath = "/Account/Login";
        });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseAuthentication();
    app.UseAuthorization();
}

Yukarıdaki örnek, ASP.NET uygulamanıza oturum açan kullanıcılar için kimlik doğrulama altyapısını hazırlar.

ASP.NET Authorization (Yetkilendirme) Nasıl Yapılır?

Authorization, kimliği doğrulanmış kullanıcıların sistemde hangi sayfa veya işlemlere erişebileceğini belirler. ASP.NET, [Authorize] attribute’u ve policy bazlı yaklaşımı destekler:


[Authorize(Roles = "Admin")]
public IActionResult AdminPanel()
{
    return View();
}

Bu örnekte, yalnızca "Admin" rolüne sahip olan kullanıcılar AdminPanel metoduna erişebilir. Policy tabanlı yetkilendirme ile daha gelişmiş kontroller kurabilirsiniz:


services.AddAuthorization(options =>
{
    options.AddPolicy("OnlyForEditors", policy =>
        policy.RequireRole("Editor"));
});

Sonuç: Güçlü Güvenlik İçin Doğru Yaklaşım

ASP.NET Authentication ve Authorization, web uygulamanızın güvenlik temellerini oluşturur. Kimlik doğrulama ve yetkilendirme süreçlerini doğru tasarlamak, verilerinizi korur ve kullanıcıların yetkisiz işlemler yapmasını engeller. Farklı authentication yöntemleri ve esnek authorization kuralları sayesinde, güvenli ve ölçeklenebilir sistemler oluşturmak mümkündür. ASP.NET ile modern uygulamalar geliştirirken, authentication ve authorization konularında bilgi sahibi olmak sizi her zaman bir adım öteye taşır.