Gökmen Tuksavul

Blog Yazısı

2026-05-04

Spring Security ve JWT Tabanlı Güvenlik Mimarisi

Spring Security 6 ve JWT kullanarak REST API güvenliği nasıl sağlanır? Stateless kimlik doğrulama ve yetkilendirme mimarisini detaylıca inceliyoruz.

SecurityJWTSpring Security

Sponsorlu

JWT tabanlı güvenlik, REST APIlerde yaygın bir yaklaşımdır; fakat JWT kullanmak tek başına güvenli sistem anlamına gelmez. Token süresi, imzalama algoritması, refresh stratejisi, rol modeli, iptal mekanizması ve Spring Security filtre zinciri birlikte tasarlanmalıdır.

Stateless model

Client login sonrası access token alır ve isteklerde Authorization Bearer başlığıyla gönderir. API token imzasını ve claim değerlerini doğrular. Bu model yatay ölçekleme için avantajlıdır; ancak token iptali ve cihaz yönetimi ayrıca çözülmelidir.

Token ömrü

Access token kısa ömürlü olmalıdır. Çalınan bir token süresi dolana kadar kullanılabilir. Bu nedenle refresh token daha uzun ömürlü ama server tarafında izlenebilir ve iptal edilebilir şekilde tasarlanmalıdır.

Spring Security

Spring Security 6 ile endpoint izinleri açıkça tanımlanmalı ve varsayılan davranış güvenli tarafta kalmalıdır. JWT doğrulama filtresi token geçerliyse SecurityContexti doldurur; geçersiz tokenlarda istek reddedilmelidir.

RBAC

Token içine gereğinden fazla bilgi koymak doğru değildir. Kullanıcı id, rol ve gerekli yetki kapsamı yeterlidir. Değişebilen profil bilgilerini tokena gömmek güncellik sorunları doğurabilir.

Sonuç

JWT güçlü bir araçtır ama kısa ömürlü access token, izlenebilir refresh token, net RBAC modeli ve test edilmiş security zinciri birlikte kurulmadığında güvenlik açığına dönüşebilir.

Pratik uygulama notu

JWT mimarisinde en çok atlanan konu token iptalidir. Kullanıcı şifresini değiştirdiğinde, cihazını kaybettiğinde veya yetkisi düşürüldüğünde mevcut tokenların davranışı tanımlı olmalıdır. Kısa access token süresi, refresh token rotasyonu ve server tarafında izlenebilir oturum kaydı bu riski azaltır.