JWT'ye Giriş: JSON Web Token (JWT), JSON nesnelerinde taraflar arasında bilgiyi güvenli ve kompakt bir şekilde aktarmanın kompakt ve kendi içinde yeter bir yolunu tanımlayan açık bir standarttır (RFC 7519). Bu bilgiler dijital imzalar aracılığıyla doğrulanabilir ve güvenilebilir. JWT'ler, sırlar kullanılarak (HMAC algoritması kullanılarak) veya RSA'nın açık/özel anahtar çiftleri kullanılarak imzalanabilir.
JSON Web Token'larının faydalı olduğu bazı senaryolar:
Kimlik Doğrulaması:Bu, JWT'lerin en yaygın kullanımı örneğidir. Kullanıcı giriş yaptıktan sonra, sonraki her istekte kullanıcının o token'ın izin verdiği rotalara, hizmetlere ve kaynaklara erişmesini sağlayan bir JWT içerir. Tek giriş, düşük yükü ve farklı alanlarda kolayca kullanılabilme yeteneği nedeniyle günümüzde yaygın olarak kullanılan bir özelliktir.
Bilgi alışverişi:JSON Web Token'ları, taraflar arasında bilgiyi güvenli bir şekilde aktarmanın harika bir yoludur. JWT'ler imzalanabildiği için - örneğin kamu/özel anahtar çiftleri kullanılarak, gönderenin iddia ettiği kişi olduğundan emin olmak mümkündür. Ayrıca, imza başlıklar ve yükler kullanılarak hesaplandığı için, içeriğin değiştirilmediğini de doğrulayabilirsiniz.
Resmi Web Sitesi:Bağlantı girişi görünür.
JWT bilgilerini çevrimiçi analiz edin:Bağlantı girişi görünür.
JWT parametrelerini çevrimiçi analiz edin Bağlantı girişi görünür.
Aşağıdaki JWT anlayışım yanlış, lütfen bana biraz tavsiye verin
Öncelikle, bu cihazın MVC web sitesinde kullanılması önerilmiyor, webapi'de kullanabilirsiniz, bu cihazın konumlandırılması API, yedek web sitesinin oturumu değil!
asp.net webAPI kullanım eğitimi:Bağlantı girişi görünür.Çarkı yeniden yapmayacağım, bu makalenin yazılışına bakmak sorun değil.
JWT'nin Bileşimi
JWT üç bölümden oluşur: Başlık, Yük ve İmza; aralarında nokta sembolleri bulunur ve xx.yy.zz formunu oluşturur.
İmzalanmış tokenlar için, bu bilgiler herhangi biri tarafından okunabilir, müdahale korumasına rağmen. JWT'nin geçerli içeriğine veya başlık öğelerine hassas bilgileri şifrelenmedikçe yerleştirmeyin.
Mesela:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [imza] Sade bir dildeyse, herkes bu tokenı şifresini çözebilir, ancak bu bilginin gerçekliği doğrulanamaz; sadece bu tokenı üreten sunucu doğrulanabilir, bu yüzden hassas bilgileri içinde saklamayın.
Burada bir sorun var, yani kullanıcı şifreyi değiştirirse veya giriş yapması yasaklanırsa, JWT tokenın geçerliliğini nasıl çözebilir?
Benim fikrim, Yük bölümüne bir yönlendirme benzeri bir dizi eklemek ve ardından önbelleğe var olmak; kullanıcının kimliğini doğrularken sadece jwt'yi doğrulamakla kalmayıp, aynı zamanda jwt'deki Payload bilgilerini de doğrulamak, önbelleği kontrol ederek geçerliliği kontrol edebiliriz.
|