ฉันใช้โทเค็น JWT ในส่วนหัว HTTP เพื่อตรวจสอบสิทธิ์คำขอไปยังเซิร์ฟเวอร์ทรัพยากร เซิร์ฟเวอร์ทรัพยากรและเซิร์ฟเวอร์รับรองความถูกต้องมีบทบาทผู้ปฏิบัติงานแยกกันสองบทบาทบน Azure
ฉันไม่สามารถตัดสินใจได้ว่าควรจัดเก็บการเคลมในโทเค็นหรือแนบไปกับคำขอ / ตอบกลับด้วยวิธีอื่น รายการการอ้างสิทธิ์ส่งผลกระทบต่อการแสดงผลองค์ประกอบ UI ฝั่งไคลเอ็นต์รวมถึงการเข้าถึงข้อมูลบนเซิร์ฟเวอร์ ด้วยเหตุนี้ฉันต้องการตรวจสอบให้แน่ใจว่าการเรียกร้องที่ได้รับจากเซิร์ฟเวอร์นั้นเป็นของแท้และผ่านการตรวจสอบก่อนที่จะดำเนินการตามคำขอ
ตัวอย่างของการอ้างสิทธิ์คือ: CanEditProductList, CanEditShopDescription, CanReadUserDetails
เหตุผลที่ฉันต้องการใช้โทเค็น JWT สำหรับพวกเขาคือ:
- การป้องกันที่ดีขึ้นต่อการแก้ไขการเคลมสินค้าด้านลูกค้า
- ไม่จำเป็นต้องค้นหาการอ้างสิทธิ์ในทุกคำขอ
เหตุผลที่ฉันไม่ต้องการใช้โทเค็น JWT:
- เซิร์ฟเวอร์รับรองความถูกต้องจะต้องทราบรายการการเรียกร้องเป็นศูนย์กลางของแอพ
- โทเค็นกลายเป็นจุดเดียวของการแฮ็ค
- ฉันได้อ่านบางสิ่งที่บอกว่าโทเค็น JWT ไม่ได้มีไว้สำหรับข้อมูลระดับแอป
สำหรับฉันแล้วดูเหมือนว่าทั้งคู่มีข้อเสีย แต่ฉันโน้มตัวไปยังการรวมการอ้างสิทธิ์เหล่านี้ลงในโทเค็นและเพียงแค่ต้องการเรียกใช้สิ่งนี้โดยผู้ที่เคยจัดการกับเรื่องนี้มาก่อน
หมายเหตุ: ฉันจะใช้ HTTPS สำหรับคำขอ API ทั้งหมดดังนั้นดูเหมือนว่าโทเค็นจะปลอดภัยพอ ฉันใช้ AngularJS, C #, Web API 2 และ MVC5