Json Web Token (JWT) kullanıcı kimlik doğrulaması ve bilgi aktarımı için kullanılan kompakt ve güvenli bir token formatıdır. Token içerisinde barındırdığı imza ile verinin bütünlük koruması altında taşınmasını veya şifrelenmesini mümkün kılar. IETF (Internet Engineering Task Force) tarafından geliştirilen JWT; RFC 7519 standart adıyla Mayıs 2015'te yayımlanmıştır.
Kullanım Alanları
JWT teknolojisi çoğunlukla;
- Kullanıcının web veya mobil platform üzerinden sisteme giriş yapması sonrası istemciye erişim token'i vererek kimlik doğrulaması
- API (Application Programming Interface) çağrılarında yetkilendirme işlemi
- Mikroservis mimarilerde servisler arası iletişim kurulması gibi senaryolarda kullanılmaktadır.
JWT, tasarım gereği sunucunun oturum verisini kendi tarafında tutmadığından dolayı yüksek performanslı dağıtık sistemlerde cevap süresini düşürmektedir.
JWT'nin Yapısı
JWT, nokta ile ayrılmış üç parçadan oluşan bir dizedir. Bu dizeler sırasıyla;
- Algoritma ve tip bilgisini içeren Header
- JSON (JavaScript Object Notation) formatında claim'leri (token'in taşıdığı bilgi) taşıyan Payload
- Header ve Payload'ın Base64url çıktılarının birleştirilip, seçilen algoritma ile imzalanmış halini temsil eden Signature alanlarını temsil etmektedir.
Bahsi geçen bu üç yapıdan herhangi birinde oluşacak değişiklik token'i geçersiz hale getirecektir.
Tanımlama ve Test Aracı
JWT yapılarını jwt.io adresi üzerinden tarayıcı içerisinde çalışan bir JWT Debugger ile Header ve Payload'ı Base64url çözerek görebilmekte ve örnek token'ler üretilebilmektedir.