Mengonfigurasi Autentikasi JWT Bearer
Hubungkan validasi token ke dalam alur.
Mengonfigurasi Autentikasi JWT Bearer adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Handler JWT Bearer
ASP.NET Core memvalidasi JWT yang masuk menggunakan handler autentikasi JWT Bearer dari paket Microsoft.AspNetCore.Authentication.JwtBearer.
Handler ini membaca token dari header Authorization: Bearer ..., memvalidasinya, lalu membangun ClaimsPrincipal.
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearerAddAuthentication
Pendaftaran dimulai dengan AddAuthentication. Anda menetapkan skema bawaan agar kerangka kerja mengetahui handler mana yang harus digunakan ketika tidak ada skema yang ditentukan.
JwtBearerDefaults.AuthenticationScheme adalah string "Bearer".
builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer();Opsi AddJwtBearer
Overload AddJwtBearer menerima delegasi opsi tempat Anda mengonfigurasi cara token divalidasi.
Properti yang paling penting adalah TokenValidationParameters.
builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
// configured below
};
});Memvalidasi Penerbit dan Audiens
Tetapkan ValidateIssuer dan ValidateAudience untuk memastikan token berasal dari otoritas tepercaya Anda dan ditujukan untuk API Anda.
ValidIssuer dan ValidAudience harus cocok dengan klaim iss dan aud dalam token.
var tvp = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidateAudience = true,
ValidAudience = builder.Configuration["Jwt:Audience"]
};Memvalidasi Kunci Penandatanganan
Pemeriksaan yang paling penting bagi keamanan: ValidateIssuerSigningKey dengan IssuerSigningKey. Ini memastikan tanda tangan dibuat menggunakan rahasia Anda.
Untuk penandatanganan simetris (HS256), Anda membuat SymmetricSecurityKey dari byte rahasia tersebut.
var key = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]!));
tvp.ValidateIssuerSigningKey = true;
tvp.IssuerSigningKey = key;Memvalidasi Masa Berlaku
ValidateLifetime = true menolak token yang kedaluwarsa dengan memeriksa klaim exp dan nbf.
ClockSkew menambahkan toleransi terhadap perbedaan waktu antarserver. Nilai bawaannya adalah 5 menit; perkecil nilai ini untuk token berumur pendek.
tvp.ValidateLifetime = true;
tvp.ClockSkew = TimeSpan.FromSeconds(30);Menyatukan Semuanya
Konfigurasi lengkap bergaya produksi menggabungkan semua parameter validasi di satu tempat.
builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidateAudience = true,
ValidAudience = builder.Configuration["Jwt:Audience"],
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]!)),
ValidateLifetime = true,
ClockSkew = TimeSpan.FromSeconds(30)
};
});Urutan Middleware
Konfigurasi saja tidak cukup. Anda harus menambahkan middleware autentikasi dan otorisasi ke pipeline, dan urutannya penting.
UseAuthentication harus ditempatkan sebelum UseAuthorization.
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();Melindungi Titik Akhir
Setelah dikonfigurasi, tandai titik akhir dengan [Authorize] (pengendali) atau .RequireAuthorization() (API minimal) untuk mewajibkan token yang valid.
app.MapGet("/me", (ClaimsPrincipal user) =>
new { id = user.FindFirstValue(ClaimTypes.NameIdentifier) })
.RequireAuthorization();Menggunakan Otoritas Tepercaya
Jika token Anda berasal dari penyedia identitas eksternal (misalnya Microsoft Entra ID atau Auth0), tetapkan Authority sebagai pengganti kunci statis.
Handler kemudian mengunduh kunci penandatanganan dari dokumen penemuan penyedia secara otomatis.
.AddJwtBearer(options =>
{
options.Authority = "https://login.myidp.com/";
options.Audience = "my-api";
// Keys are fetched from the OpenID configuration endpoint
});Membaca Kegagalan Validasi
JWT Bearer memunculkan peristiwa yang dapat Anda kaitkan dengan logging atau respons khusus, seperti OnAuthenticationFailed dan OnChallenge.
options.Events = new JwtBearerEvents
{
OnAuthenticationFailed = ctx =>
{
logger.LogWarning(ctx.Exception, "JWT validation failed");
return Task.CompletedTask;
}
};Pemeriksaan Cepat
Periksa pemahaman Anda tentang konfigurasi pipeline.
Ringkasan
Anda telah mengonfigurasi autentikasi JWT Bearer:
AddAuthentication(...).AddJwtBearer(...)mendaftarkan handler.TokenValidationParametersmengatur pemeriksaan penerbit, audiens, kunci penandatanganan, dan masa berlaku.UseAuthentication()harus dijalankan sebelumUseAuthorization().- Gunakan
Authorityuntuk penyedia identitas eksternal.
Selanjutnya: cara menerbitkan token Anda sendiri.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengonfigurasi Autentikasi JWT Bearer” gratis?
Ya — teks lengkap “Mengonfigurasi Autentikasi JWT Bearer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengonfigurasi Autentikasi JWT Bearer”?
Hubungkan validasi token ke dalam alur. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Mengonfigurasi Autentikasi JWT Bearer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Struktur dan Klaim JWT
- Mengonfigurasi Autentikasi JWT Bearer
- Menerbitkan Token
- Token Refresh dan Kedaluwarsa