Study
ASP.NET Core

Authentication & Authorization Dasar

Penjelasan

ASP.NET Core punya sistem Authentication (siapa user-nya) dan Authorization (apa yang boleh dia lakukan) bawaan — endpoint dilindungi cukup lewat atribut [Authorize] di atas Controller/method, dan skema autentikasi sungguhan (JWT Bearer token, cookie, dst) dikonfigurasi terpisah di Program.cs. [AllowAnonymous] dipakai untuk mengecualikan endpoint tertentu dari proteksi Controller-nya.

Contoh Konsep

[ApiController]
[Route("api/[controller]")]
[Authorize] // SEMUA endpoint di controller ini butuh autentikasi
public class DashboardController : ControllerBase
{
    [HttpGet]
    public IActionResult Index() => Ok("Selamat datang di dashboard");

    [HttpGet("publik")]
    [AllowAnonymous] // kecualikan endpoint ini dari proteksi
    public IActionResult Publik() => Ok("Endpoint ini bisa diakses tanpa login");
}

// Program.cs (konsep, konfigurasi skema JWT lebih detail):
// builder.Services.AddAuthentication().AddJwtBearer();
// app.UseAuthentication();
// app.UseAuthorization();

Praktikum

Tambahkan [Authorize] di atas ArtikelController supaya semua endpoint-nya butuh autentikasi. Kecualikan method FindAll() dari proteksi itu lewat [AllowAnonymous], supaya daftar artikel tetap bisa dilihat publik tanpa login.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

[Authorize] TANPA skema autentikasi yang benar-benar dikonfigurasi di Program.cs (mis. AddJwtBearer()) TIDAK akan berfungsi sebagaimana mestinya — atributnya cuma "penanda", implementasi sesungguhnya (cara memvalidasi token/cookie) tetap harus disiapkan terpisah sesuai kebutuhan project.