Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
3 yazı bulundu #jwt
JWT Derinlemesine: JWS ve JWE, Algoritma Seçimi, kid, JWKS ve Signing Key Rotation
Güvenlik SERİ 08

JWT Derinlemesine: JWS ve JWE, Algoritma Seçimi, kid, JWKS ve Signing Key Rotation

Kesintisiz signing key rotation üç adımdır: yeni key'i JWKS'te yayınla, API'lerin cache'i yenilenene kadar bekle (varsayılan 12 saat), sonra onunla imzala ve eski key'i token ömrü dolunca kaldır. JWS ve JWE farkını, ES256 seçimini, alg none ve algorithm confusion denemelerini, at+jwt ile typ doğrulamayı, kid ve JWKS'i, 8725bis taslağının uyarılarını ve claim şişmesini gerçek çıktılarla gösteriyoruz.

8 Kas 2026 11 dk 4
Refresh Token'lar: Rotation, Reuse Detection, Revocation ve Sunucu Tarafında Güvenli Saklama
Güvenlik SERİ 09

Refresh Token'lar: Rotation, Reuse Detection, Revocation ve Sunucu Tarafında Güvenli Saklama

Refresh token her kullanımda yenilenmeli ve tüketilmiş bir token tekrar gelirse o girişin bütün token family'si iptal edilmeli; RFC 9700 public client'lar için bunu ya da sender-constrained token'ı zorunlu tutuyor. EF Core ve SQLite ile SHA-256 hash'li saklamayı, ExecuteUpdate ile atomik tüketimi, reuse detection'ı, iki sekme yarışını, sliding ve absolute ömrü ve tüm cihazlardan çıkışı gerçek çıktılarla kuruyoruz.

8 Kas 2026 10 dk 3
API'yi Korumak: Access Token Doğrulama, Audience, Scope Policy'leri, Client Credentials ve DPoP
Güvenlik SERİ 13

API'yi Korumak: Access Token Doğrulama, Audience, Scope Policy'leri, Client Credentials ve DPoP

API, imzası geçerli her token'ı değil, yalnız kendi audience'ı için verilmiş ve gereken scope'u taşıyan token'ı kabul etmelidir. AddJwtBearer'ı Keycloak'a bağlıyor, scope'tan policy'ye eşliyor, çıkış yapan kullanıcının JWT'sinin neden hâlâ geçtiğini introspection ile gösteriyor, client credentials token'ını cache'leyen bir DelegatingHandler yazıyor ve DPoP ile çalınan token'ın işe yaramadığını beş senaryoda doğruluyoruz.

8 Kas 2026 13 dk 3
Blog Haritası