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:
expclaim’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.
İlgili Terimler
API key, uygulama veya geliştiriciyi tanımlayan; kota takibi, erişim sınırı ve basit sunucu-sunucu güvenliği için kullanılan anahtardır.
APIAPI, farklı yazılımların izin verilen veri ve işlemlere standart istekler üzerinden erişmesini sağlayan sözleşmeli arayüzdür.
CookieCookie, tarayıcıda saklanan küçük veri parçasıdır; oturum, tercih ve izinli takip bilgilerini alan adıyla ilişkilendirir.
CSRFCSRF, oturum cookie'si olan kullanıcıyı fark ettirmeden saldırganın seçtiği işlemi yapmaya zorlayan web saldırısıdır.
Mobil Uygulama GüvenliğiMobil uygulama güvenliği, uygulama kodunu, API trafiğini, oturumu ve cihazdaki veriyi kötüye kullanıma karşı korur.
OAuth 2.0OAuth 2.0, üçüncü taraf uygulamaların kullanıcı şifresi olmadan kaynaklara erişmesini sağlayan yetkilendirme çerçevesidir.
OturumOturum, web uygulamasında kullanıcının kimlik ve geçici durum bilgisini istekler arasında ilişkilendiren sunucu veya istemci tarafı kayıttır.
Token YenilemeToken yenileme, kısa ömürlü erişim token'ı bittiğinde güvenli refresh token ile oturumu kesmeden yeni erişim token'ı alma sürecidir.