JWT Bearer Kimlik Doğrulamasını Yapılandırma
Belirteç doğrulamasını işlem hattına bağlayın.
JWT Bearer Kimlik Doğrulamasını Yapılandırma, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
JWT Bearer İşleyicisi
ASP.NET Core, gelen JWT'leri Microsoft.AspNetCore.Authentication.JwtBearer paketindeki JWT Bearer kimlik doğrulama işleyicisini kullanarak doğrular.
İşleyici token'ı Authorization: Bearer ... üst bilgisinden okur, doğrular ve bir ClaimsPrincipal oluşturur.
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearerAddAuthentication
Kayıt işlemi AddAuthentication ile başlar. Varsayılan şemayı ayarlayarak herhangi bir şema belirtilmediğinde çerçevenin hangi işleyiciyi kullanacağını belirlersiniz.
JwtBearerDefaults.AuthenticationScheme, "Bearer" dizesidir.
builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer();AddJwtBearer Seçenekleri
AddJwtBearer aşırı yüklemesi, token'ların nasıl doğrulanacağını yapılandırdığınız bir seçenek temsilcisi alır.
En önemli özellik TokenValidationParameters özelliğidir.
builder.Services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
// configured below
};
});Vereni ve Hedef Kitleyi Doğrulama
Token'ın güvenilen yetkilinizden geldiğinden ve API'niz için tasarlandığından emin olmak üzere ValidateIssuer ve ValidateAudience değerlerini ayarlayın.
ValidIssuer ve ValidAudience, token'daki iss ve aud talepleriyle eşleşmelidir.
var tvp = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidateAudience = true,
ValidAudience = builder.Configuration["Jwt:Audience"]
};İmzalama Anahtarını Doğrulama
En kritik güvenlik denetimi, IssuerSigningKey ile birlikte kullanılan ValidateIssuerSigningKey ayarıdır. Bu ayar, imzanın sizin gizli anahtarınızla oluşturulduğunu doğrular.
Simetrik (HS256) imzalama için gizli anahtarın baytlarından bir SymmetricSecurityKey oluşturursunuz.
var key = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]!));
tvp.ValidateIssuerSigningKey = true;
tvp.IssuerSigningKey = key;Geçerlilik Süresini Doğrulama
ValidateLifetime = true, exp ve nbf taleplerini denetleyerek süresi dolmuş token'ları reddeder.
ClockSkew, sunucular arasındaki saat farkları için tolerans ekler. Varsayılan değer 5 dakikadır; kısa süreli token'lar için bu değeri azaltın.
tvp.ValidateLifetime = true;
tvp.ClockSkew = TimeSpan.FromSeconds(30);Hepsini Bir Araya Getirme
Tam ve üretim ortamına uygun bir yapılandırma, tüm doğrulama parametrelerini tek bir yerde birleştirir.
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)
};
});Ara Yazılımın Sırası
Tek başına yapılandırma yeterli değildir. Kimlik doğrulama ve yetkilendirme ara yazılımlarını işlem hattına eklemelisiniz; ayrıca sıra önemlidir.
UseAuthentication, UseAuthorization'dan önce gelmelidir.
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();Uç Noktaları Koruma
Yapılandırma tamamlandıktan sonra geçerli bir token gerektirmek için uç noktalara [Authorize] (denetleyiciler) veya .RequireAuthorization() (minimal API'ler) ekleyin.
app.MapGet("/me", (ClaimsPrincipal user) =>
new { id = user.FindFirstValue(ClaimTypes.NameIdentifier) })
.RequireAuthorization();Güvenilen Bir Yetkili Kullanma
Token'larınız harici bir kimlik sağlayıcısından (ör. Microsoft Entra ID, Auth0) geliyorsa statik bir anahtar yerine Authority değerini ayarlayın.
İşleyici daha sonra imzalama anahtarlarını sağlayıcının keşif belgesinden otomatik olarak indirir.
.AddJwtBearer(options =>
{
options.Authority = "https://login.myidp.com/";
options.Audience = "my-api";
// Keys are fetched from the OpenID configuration endpoint
});Doğrulama Başarısızlıklarını Okuma
JWT Bearer, günlük kaydı veya özel yanıtlar için bağlanabileceğiniz olaylar üretir; bunlara OnAuthenticationFailed ve OnChallenge dahildir.
options.Events = new JwtBearerEvents
{
OnAuthenticationFailed = ctx =>
{
logger.LogWarning(ctx.Exception, "JWT validation failed");
return Task.CompletedTask;
}
};Hızlı Kontrol
İşlem hattı yapılandırmasını ne kadar kavradığınızı kontrol edin.
Özet
JWT Bearer kimlik doğrulamasını yapılandırdınız:
AddAuthentication(...).AddJwtBearer(...), işleyiciyi kaydeder.TokenValidationParameters, veren, hedef kitle, imzalama anahtarı ve geçerlilik süresi denetimlerini yönetir.UseAuthentication(),UseAuthorization()'dan önce çalıştırılmalıdır.- Harici kimlik sağlayıcıları için
Authoritykullanın.
Sırada kendi token'larınızı üretmeyi öğreneceksiniz.
Sıkça Sorulan Sorular
“JWT Bearer Kimlik Doğrulamasını Yapılandırma” dersi ücretsiz mi?
Evet — “JWT Bearer Kimlik Doğrulamasını Yapılandırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“JWT Bearer Kimlik Doğrulamasını Yapılandırma” dersinde ne öğreneceğim?
Belirteç doğrulamasını işlem hattına bağlayın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“JWT Bearer Kimlik Doğrulamasını Yapılandırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- JWT Yapısı ve Talepleri
- JWT Bearer Kimlik Doğrulamasını Yapılandırma
- Belirteç Verme
- Yenileme Belirteçleri ve Süre Dolumu