JWT issuer doğrulaması nasıl yapılır?

0 Réponses 4 Vues
Votants
Participants
Auteur de la discussion #1
JWT issuer doğrulaması nasıl yapılır?

JWT (JSON Web Token), modern uygulamalarda kimlik doğrulama ve yetkilendirme işlemlerinde yaygın olarak kullanılır. Bu tokenların güvenliğini sağlamak için sadece içeriği değil, aynı zamanda güvenilirliğini de doğrulamak gerekir. Bunlardan biri de "issuer" (iss) alanının doğrulanmasıdır. Peki, JWT issuer doğrulaması nasıl gerçekleştirilir ve neden önemlidir?

İlk olarak, JWT'nin payload kısmındaki "iss" alanı, token'ı oluşturan servisin veya uygulamanın kimliğini belirtir. Bu alanın doğruluğu, token'ın gerçekten güvenilir bir kaynaktan geldiğini ve sahte olmadığını garantilemek adına kritiktir. Bu doğrulama, genellikle token'ı doğrulama sırasında yapılır ve birkaç adımda gerçekleştirilebilir:

  1. Token'ı Çözümleme (Decode):

JWT, üç parçadan oluşur: header, payload ve signature. Doğrulama işlemi öncesinde, ilk olarak token çözümlenir ve payload içeriği okunur. Burada "iss" alanının varlığı ve değeri kontrol edilir.

  1. İssuer Alanını Kontrol Et:

Payload'daki "iss" değerinin, uygulamanız veya API'nizin beklediği issuer değeriyle (örneğin, "https://auth.myapp.com") eşleşip eşleşmediği kontrol edilir. Bu, token’ın güvenilir bir kaynaktan geldiğini gösterir.

  1. İmza Doğrulamasıyla Birlikte Kontrol:

JWT'nin imzalanmış olduğu secret veya public key kullanılarak imza doğrulaması yapılır. Bu, token'ın değiştirilmediğini ve gerçekten belirtilen issuer tarafından oluşturulduğunu garanti eder.

  1. Kod Örneği (Node.js + jsonwebtoken):

CODE
123456789101112131415const jwt = require('jsonwebtoken');

const secretOrPublicKey = 'YOUR_SECRET_KEY'; // veya public key
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';

try {
  const decoded = jwt.verify(token, secretOrPublicKey, {
    issuer: 'https://auth.myapp.com'
  });
  // issuer doğrulandı
  console.log('Token geçerli ve issuer doğrulandı:', decoded);
} catch (err) {
  // doğrulama başarısız
  console.error('JWT doğrulama hatası:', err.message);
}


Buradaki önemli nokta, jwt.verify() fonksiyonuna "issuer" parametresini eklemek. Bu sayede, JWT'nin "iss" alanı ile parametre olarak verilen değer karşılaştırılır ve uyuşmazlık tespit edilirse doğrulama başarısız olur.

Sonuç olarak, JWT issuer doğrulaması, token’ın gerçekten güvendiğiniz kaynaktan geldiğini teyit etmek adına temel bir adımdır ve uygulamanın güvenliğini ciddi şekilde artırır. Bu doğrulama adımını her token doğrulama işleminde mutlaka uygulamak, olası sahte token kullanımını engeller.

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 1, Membres: 1, Invités: 0)
Total: 1 (membres: 1, invités: 0)
0 citations sélectionnées