2015-05-02 33 views
6

JWT'nin istemcinin iddiası hakkında imzalanmış bilgileri depolayan ve Yetkilendirme HTTP üstbilgisi aracılığıyla bir sunucuya aktarılan durum bilgisi olmayan belirteçler olduğunu anlıyorum.İstemci oturumlarımız olduğunda neden JWT'ye ihtiyacımız var?

Sorum şu ki, zaten istemci oturumlarımız olduğunda (https://github.com/mozilla/node-client-sessions) JWT'ye neden ihtiyacımız var? Müşteri oturumları kavramsal olarak aynıdır. Doğrulandığında, çerezin temperleme yapılmadığı anlamına gelen imzalı bilgileri içeren çerezlerdir. Ayrıca, istemci oturumları bir çerezde saklanır ve Cookie HTTP üstbilgisi üzerinden geçirilir. Sadece farklı kelimeler kullanarak aynı şey. Yanlış mıyım?

Peki, neden JWT bile buralarda? Belki de buradaki nokta, kimlik doğrulama jetonlarının çalışma şeklini standartlaştırmak olduğunu anlayabiliyordu, ancak oturum kimliği temelli bir standart olmaksızın para cezası aldık (her bir uygulama, kendi yöntemlerini gerçekleştirdi). Ayrıca, JWT neden bir transfer aracı olarak çerezleri kullanmazdı? Çerezlerle, her istek için (Ajax isteklerini basitleştirerek) doğru üstbilgiyi açıkça göndermeniz gerekmez.

Bir şey mi eksik?

cevap

6

JWT jetonları, bir kullanıcı (veya herhangi bir müdür) hakkında hak iddia eden JSON formatlı belgelerdir. Belirtecin yayınlayıcısına güvenirseniz, belirteçteki hak taleplerine güvenirsiniz ve buna bağlı olarak yetkilendirme kararları verebilirsiniz. Harici Web API'lerini çağırmak için genellikle JWT jetonları kullanılmaktadır. Bu API'lar mutlaka web sitenizle aynı alanda bulunmaz ve bu nedenle sitenizle aynı çerezleri kullanamaz. JWT simgeleri, sunucuda depolanan herhangi bir oturum bilgisine ihtiyaç duymadıklarından REST hizmetlerinde kullanılır. JWT jetonlarını kullanmak da CSRF saldırılarına karşı uygun değildir.

+0

Not: Burada Stormpath adamlarına göre (https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/) - JWT jetonları CSRF saldırılarına karşı savunmasızdır Çerezlerde saklanırsa –

+0

Elbette, JWT'yi bir çerezde saklar ve API'nizi doğrulamak için kullanırsanız, örtülü kimlik doğrulamasıyla geri dönersiniz. JWT jetonları genellikle çerezlerde saklanmaz, ancak 'Yetkilendirme' HTTP başlığında taşıyıcı jetonları olarak gönderilir. Ayrıca şu makaleye bakın: http://leastprivilege.com/2015/04/01/implicit-vs-explicit-authentication-in-browser-based-applications/ – MvdD

İlgili konular