JSON Web Token (JWT) Nedir ve Nasıl Çalışır?

Selim KURT
2 min readJun 3, 2024

--

JSON Web Token (JWT), iki taraf arasında güvenli bir şekilde bilgi alışverişi yapmak için kullanılan standart bir yöntemdir. JWT’nin ne olduğunu, nasıl çalıştığını ve güvenlik açısından nasıl kullanıldığını detaylı bir şekilde aşağıda anlatmaya çalıştım.

JWT Nedir?

JWT, iki anlamda kullanılabilir. Birincisi, iki taraf arasında URL güvenli bir şekilde bilgi aktarma kurallarını belirleyen standart veya kurallar bütünü anlamına gelir. Bu bilgi, bir anahtar-değer çifti şeklinde claims olarak iletilir. İkincisi, JWT terimi, claims bilgilerini içeren oluşturulmuş bir dizeyi ifade eder.

JWT’nin Yapısı

JWT, üç ana bölümden oluşur:

Header (Başlık): JWT’nin başlık kısmı, Base64 kodlu bir JSON nesnesidir. Bu JSON nesnesi, JWT’nin türünü ve kullanılan imzalama algoritmasını belirtir.

{
"alg": "HS256",
"typ": "JWT"
}

Payload (Yük): JWT’nin yük kısmı, claimsleri içerir. Bu claimsler, JWT standardına göre özel anlamlar taşıyan önceden tanımlanmış claims (registered claims) ve kullanıcının belirleyebileceği özel claimsler (private claims) olabilir.

Örnek bir Payload:

{
"sub": "1234567890",
"name": "Selim KURT",
"admin": true
}

Signature (İmza): İmza kısmı, JWT’nin güvenliğini sağlayan bölümdür. İmza, başlık ve yük kısımlarının birleştirilip bir hash fonksiyonundan geçirilmesiyle oluşturulur. Ayrıca, bir gizli anahtar kullanılarak bu imza daha da güvenli hale getirilir.

JWT’deki Registered Claimsler

JWT’nin yük kısmındaki bazı claimsler, belirli anlamlar taşır:

  • iss (issuer): JWT’yi oluşturan ve yayınlayan kişi veya kuruluş.
  • sub (subject): JWT’nin konusu olan kişi veya varlık.
  • aud (audience): JWT’nin hedeflendiği alıcılar.
  • exp (expiration): JWT’nin geçerlilik süresinin bitiş zamanı.
  • nbf (not before): JWT’nin geçerlilik süresinin başlangıç zamanı.
  • iat (issued at): JWT’nin oluşturulma zamanı.
  • jti (JWT ID): JWT’nin benzersiz kimliği.

JWT’nin Güvenliği

JWT’nin temel amacı, bilgilerin güvenli bir şekilde iletilmesini sağlamaktır. Ancak, JWT içindeki bilgilerin gizli olmadığını unutmamak önemlidir. JWT, Base64 kodlama kullanılarak oluşturulur ve bu kodlama, bilgileri gizlemez. Bilgilerin gizli tutulması gerekiyorsa, ek şifreleme yöntemleri kullanılmalıdır.

JWT Nasıl Doğrulanır?

Bir sunucu, JWT’nin geçerliliğini doğrulamak için imza kısmını kullanır. İmza, JWT’nin başlık ve yük kısımlarının hash fonksiyonundan geçirilmesiyle oluşturulduğundan, sunucu bu işlemi tekrarlayarak gönderilen imzayla karşılaştırır. Eğer imzalar uyuşmazsa, JWT’nin geçersiz veya değiştirilmiş olduğu anlaşılır.

JSON Web Token (JWT), iki taraf arasında güvenli bir şekilde bilgi alışverişi yapmayı sağlayan güçlü bir araçtır. JWT, bilgilerin güvenliğini sağlamak için imza kullanır ve bu sayede bilgilerin değiştirilip değiştirilmediği kontrol edilebilir. Ancak, JWT içindeki bilgilerin gizli olmadığını ve gerekirse ek şifreleme yöntemlerinin kullanılması gerektiğini unutmamak önemlidir. JWT’yi doğru bir şekilde kullanarak, web uygulamalarınızda güvenli bilgi alışverişini sağlayabilirsiniz.

Okuduğunuz için teşekkürler

Her zaman gelişmek için yer olduğunu anlıyorum. Lütfen düşüncelerinizi paylaşmaktan çekinmeyin.

--

--

Selim KURT

Software Developer - Mobile & Web Developer #react #reactnative #nextjs #frontend #digitaltransformation #javascript