İçeriğe geç

JWT İmza Doğrulayıcı

Bir JWT token'ın gizli anahtara göre geçerli olup olmadığını doğrular.

RFC 7519

İsteğe bağlı. Girilirse issuer ve audience da denetlenir.

Araç hakkında

Hangi denetimler yapılır?

  1. Token’ın üç bölümlü olduğu ve header’daki alg değerinin HS256 olduğu denetlenir. none, HS384/HS512 veya RS256 gibi beklenmeyen algoritmalar reddedilir; bu, “algoritma karıştırma” saldırılarını önler.
  2. crit alanı veya b64: false içeren header’lar desteklenmediği için reddedilir.
  3. İmza, girilen anahtarla yeniden hesaplanıp tüm baytlarıyla karşılaştırılır. 32 bayttan kısa anahtarlar kabul edilmez.
  4. Claim’ler ayrıca denetlenir: exp geçmişse veya nbf gelecekteyse hata verilir; beklenen iss / aud girildiyse eşleşmeleri aranır (aud dizi olabilir).

İmza ve claim sonuçları ayrı gösterilir: imzası geçerli ama süresi dolmuş bir token, imzası geçersiz bir token’dan farklı bir sorundur.

Sunucu tarafında unutulmaması gerekenler

  • Algoritmayı token’dan değil, yapılandırmadan alın.
  • Saat farkları için birkaç saniyelik tolerans tanımlayın; bu araç tolerans uygulamaz.
  • aud denetimini atlamayın; aksi hâlde başka bir servis için verilmiş token sizin servisinizde de geçerli olur.
  • Kısa ömürlü erişim token’ları ve iptal edilebilir yenileme token’ları kullanın.

Sık sorulan sorular

Beklenen iss / aud alanına ne yazmalıyım?

JSON nesnesi olarak, örneğin {"iss":"https://auth.example.com","aud":"api"}. Alan boş bırakılırsa bu iki claim denetlenmez.

Kaynaklar