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