Rehber

JWT tokeni nasıl çözülür ve imzası nasıl doğrulanır?

Üç parçalı JWT metnini çözümleyerek header, payload ve signature verilerini inceleyebilirsiniz. İmza doğrulaması isteğe bağlıdır ve secret sağlandığında ayrıca yapılır.

Araç JWT Çözücü

JWT tokenini incelemeye başlamadan önce

JWT benzeri bir tokenin yapısını incelemek istediğinizde, metni bu araçla üç temel parçaya ayırabilirsiniz: header, payload ve signature. İlk iki parça okunabilir JSON verisine dönüştürülür; üçüncü parça imza verisi olarak ele alınır. Böylece token içindeki bilgileri incelemek ile imzanın doğrulanmasını birbirinden ayırarak çalışabilirsiniz.

Bu işlem, tokenin yapısını kontrol etmek veya header ve payload içindeki seçili alanları görmek için uygundur. Ancak verinin çözümlenmesi tek başına tokenin gerçekliğini, bütünlüğünü ya da güvenliğini kanıtlamaz. İmza doğrulaması ayrıca ve isteğe bağlı olarak yapılır.

JWT çözümleme ve imza doğrulaması adımları

  1. Token metnini giriş alanına yapıştırın. Yalnızca boşluklardan oluşan ya da tamamen boş bir giriş başarısız sonuç verir; bu nedenle metnin gerçekten token içermesine dikkat edin.

  2. Tokenin nokta işaretleriyle ayrılmış üç parçadan oluştuğunu kontrol edin. Desteklenen yapı tam olarak header, payload ve signature parçalarından oluşur. Farklı sayıda parçaya sahip metinler işlenemez.

  3. Çözümleme işlemini başlatın. İlk iki parça base64url biçiminden çözülür, UTF-8 olarak yorumlanır ve JSON şeklinde okunarak header ile payload olarak sunulur. Üçüncü parça da base64url biçiminden çözülerek imza verisine dönüştürülür; parçanın özgün metni de korunabilir.

  4. Header ve payload alanlarını inceleyin. Bu değerler nesne biçimindeyse araç algoritma, token türü, issuer, subject, audience ve standart zamanla ilgili talepler gibi seçili bilgileri gösterebilir.

  5. İmza kontrolü gerekiyorsa doğrulama seçeneğini etkinleştirin ve ilgili secret değerini sağlayın. Secret olmadan doğrulama istendiğinde işlem atlanır ve bir sorun kaydedilir. Secret sağlandığında araç, çözümlenen header içinde belirtilen algoritmayı kullanarak imza doğrulamasını dener ve sonucu geçerli ya da geçersiz imza gibi bir durumla bildirir.

  6. Sonucu, çözümlenen içerik ile doğrulama durumunu ayrı ayrı değerlendirerek okuyun. İnceleme bittiğinde secret değerini token metniyle birlikte saklamayın.

Sonuçları nasıl yorumlamalı?

Başarılı bir çözümleme, ilk iki parçanın base64url, UTF-8 ve JSON aşamalarından geçtiğini gösterir. Bu sonuç, payload içindeki bilgilerin okunabildiği anlamına gelir; tokenin kim tarafından üretildiğini veya değiştirilmediğini tek başına göstermez. Bu tür bir değerlendirme için secret ile isteğe bağlı imza doğrulamasının sonucuna bakın.

İlk iki parçada base64url, UTF-8 ya da JSON sorunu varsa sorunlar toplanır ve genel sonuç başarısız olur. Üçüncü parça boş değilse ve çözümlenemiyorsa bu da sorun olarak raporlanır. Boş üçüncü parça ise bu uygulamada ayrıca imza sorunu olarak eklenmez; yine de böyle bir durumda doğrulanmış bir imza sonucu varsaymayın.

Doğrulama kapalıysa sonuçta imza doğrulamasının yapıldığı anlamı çıkarılmamalıdır. Doğrulama açık, fakat secret verilmemişse işlem atlanır ve sorun kaydedilir. Secret verilmişse bildirilen geçerli veya geçersiz imza durumu, çözümleme bilgilerinden ayrı okunmalıdır.

Uygulamalı örnek

Bir geliştirici, test ortamından aldığı üç parçalı JWT metninin payload alanlarını incelemek ve ardından imzasını kontrol etmek ister.

Üç parçalı JWT metnini girişe yapıştırın, çözümlemeyi başlatın ve ardından doğrulama seçeneğini açarak ilgili secret değerini sağlayın.

Sonuçta header ve payload için çözümlenmiş JSON nesneleri, signature için çözümlenmiş imza verisi ve özgün metin bulunması beklenir. Doğrulama açılıp secret sağlanırsa ayrıca geçerli veya geçersiz imza durumu raporlanır.

Sınırlamalar

  • Üçten farklı parçaya sahip veya çözümlenemeyen segmentler desteklenen yapı sınırının dışındadır ve başarısız sonuca yol açabilir.
  • Çözümleme, tokenin gerçekliğini ya da bütünlüğünü tek başına kanıtlamaz; imza doğrulaması ayrı bir işlemdir ve varsayılan olarak kapalıdır.

Sık yapılan hatalar

  • Neden: Giriş boş, yalnızca boşluk içeriyor veya noktalarla ayrılmış üç parça yerine başka bir yapıya sahip. Düzeltme: Boşlukları temizleyip header, payload ve signature bölümlerini tek bir metinde iki nokta işaretiyle değil, iki nokta arasındaki değil, nokta karakterleriyle ayrılmış tam üç segment olarak gönderin.
  • Neden: Doğrulama seçildiği hâlde secret sağlanmadı. Düzeltme: Doğrulama gerekmiyorsa seçeneği kapalı bırakın; gerekiyorsa uygun secret değerini doğrulama alanına girin.

Sık sorulan sorular

Boş bir JWT girişi kabul edilir mi?

Boş veya yalnızca boşluklardan oluşan giriş başarısız sonuç verir. Token metninin içeriği olan, nokta işaretleriyle ayrılmış üç parçalı bir yapı taşıdığından emin olun.

JWT metninin kaç parçası olmalı?

Yalnızca ilk iki parça çözümlenir ve JSON olarak yorumlanır; üçüncü parça imza verisi olarak ele alınır. Parça sayısı üç değilse sonuç başarısız olur.

İmza doğrulaması için secret gerekli mi?

Doğrulama varsayılan olarak kapalıdır. Doğrulama istendiğinde secret verilmezse işlem atlanır ve bir sorun kaydedilir; secret verilirse headerda belirtilen algoritmayla kontrol denenir.

Araç

JWT Çözücü