JSON Web Token

circle-info

หลายคนคงเคยใช้งาน Session หลังจากทำการ Login ด้วย Username และ Password จะทำการสร้าง Session เพื่อใช้ในการยืนยันการ Authentication ทำให้ไม่ต้องทำการ Login ด้วย Username และ Password ทุกครั้งที่มีการเชื่อมต่อกับ Server แล้ว JSON Web Token นั้นมีดีอย่างไร ทำไมคนถึงนิยมใช้ในปัจจุบัน

Authentication

circle-check

Session

circle-check

Token

JSON Web Token

circle-check
chevron-rightPayloadhashtag

เป็นส่วนของ Data ที่เรียกกันว่า JWT Claimarrow-up-right โดยจะเป็นการอ้างสิทธิ์ของผู้ใช้งาน User ที่ร้องขอ ซึ่งจะแบ่งเป็น 3 ประเภท Registered Claim, Public Claim และ Private Claim

  • Registered Claim : เป็นส่วนที่ใช้บอกรายละเอียด เช่น Issuer ( iss ), Subject ( sub ), Audience ( aud ), Expire Time ( exp ) และอื่น ๆ

  • Public Claim : เป็นส่วนที่สามารถสร้างได้เอง แต่ควรมีการกำหนด IANA JSON Web Token Registryarrow-up-right เพื่อป้องกัน Collision Resistant การชนกัน หรือใช้ URL นำหน้าในการสร้าง Namespace

  • Private Claim : เป็นส่วนที่สามารถสร้าง เพื่อ Share ข้อมูลระหว่าง Parties ที่มีการตกลงกัน ซึ่งจะไม่ใช่ทั้ง Registered Claim และ Public Claim หมายความว่าไม่ต้องสนใจ Collision Resistant

chevron-rightSignaturehashtag

เป็นส่วนของ Digital Signature โดยจะใช้ Secret ที่ได้จากการ Generate JWT ของแต่ละ Web Service มาทำการยืนยันตัวตน

เมื่อทำการ Encode แต่ะละส่วนด้วย Base64Url แล้วรวมทั้ง 3 ส่วนเข้าด้วยกัน จะได้รหัสขึ้นมาชุดหนึ่ง

JWT Debugger

Comparison

circle-exclamation

อ่านเพิ่มเติม : https://bit.ly/20I8XQqarrow-up-right, https://bit.ly/2Zguf8Jarrow-up-right, https://bit.ly/31MyJ8Aarrow-up-right, https://bit.ly/31P0PjEarrow-up-right, https://bit.ly/31LwDWparrow-up-right

Last updated