JWT Nedir?

İngilizce: JWT (JSON Web Token)

JWT, API'ler ve istemciler arasında doğrulanabilir bilgileri taşımak için kullanılan imzalanmış ve kodlanmış JSON tabanlı token standardıdır.

JWT Nedir?

JWT (JSON Web Token), bir kullanıcının veya sistemin kimliğine dair doğrulanabilir bilgileri kompakt bir token içinde taşır. En yaygın kullanım alanı, giriş yapan kullanıcının sonraki API isteklerinde kimliğini tekrar parola göndermeden kanıtlamasıdır.

JWT üç bölümden oluşur: header.payload.signature. Header kullanılan algoritmayı, payload kullanıcı veya yetki bilgilerini, signature ise token’ın değiştirilmediğini doğrulayan imzayı içerir. Bu bölümler Base64URL ile kodlanır; yani payload okunabilir durumdadır, şifrelenmiş kabul edilmemelidir.

Nelere Dikkat Edilir?

  • Kısa süreli token: exp claim’i ile erişim token’larının ömrü sınırlanmalıdır.
  • Refresh token ayrımı: Uzun ömürlü yenileme token’ları daha sıkı saklama kurallarıyla yönetilmelidir.
  • İmza doğrulama: Algoritma, issuer ve audience kontrolleri sunucuda yapılmalıdır.
  • Hassas veri: T.C. kimlik numarası, kart verisi veya gizli bilgi payload içine konulmamalıdır.
  • HTTPS: Token taşıyan tüm istekler şifreli kanal üzerinden gitmelidir.

İş Dünyasında Kullanımı

JWT; mobil uygulama oturumları, tek sayfa uygulamalar, API erişimi, servisler arası kimlik aktarımı ve geçici davet bağlantıları için kullanılır. Stateless yapısı sayesinde her istekte veritabanından oturum okumak gerekmez; ancak token iptali ve yetki değişikliği stratejisi baştan tasarlanmalıdır.

OAuth 2.0 akışlarında JWT access token olarak kullanılabilir, fakat OAuth 2.0 ile JWT aynı şey değildir. OAuth 2.0 yetkilendirme çerçevesidir; JWT ise veri taşıyan token formatıdır. API tabanlı sistemlerde bu ayrım API güvenliği açısından önemlidir.