JSON Web Token
Last updated
Was this helpful?
Last updated
Was this helpful?
โดยปกติเวลาผู้ใชงาน User จะเข้าใช้งานระบบ Login จะมีการรักษาความปลอดภัย ว่าผู้ใช้งานนั้นมีสิทธิ์ในการเข้าถึงระบบจริง ซึ่งจะใช้การ Authentication จะอาศัย Parameter แบบ Post 2 ตัว ซึ่งก็คือ Username และ Password หรือจะใช้ Email กับ Password ก็ได้ เมื่อ Client ส่งค่า Parameter ไป ทาง Server ก็จะตอบ Response กลับมา
หลังจากที่เราทำการ Authentication ครั้งแรก จะมีการสร้าง Session ของแต่ละ User ขึ้นมา เพื่อให้ผู้ใช้งานไม่ต้องทำการ Authentication อีก โดย Session จะเก็บอยู่บน Memory ของ Server ส่วน Cookie จะเก็บอยู่บน Browser ของ Client จนกว่าผู้ใช้งานจะทำการ Logout จึงจะทำลาย Session นั้นทิ้งไป หรือจนกว่า Session Expire ตามระยะเวลาที่ได้กำหนด
JWT เป็นมาตรฐานในการส่งข้อมูลระหว่าง Parties ต่าง ๆ โดยจะมีขนาดกะทัดรัด Compact และก็บข้อมูลในตัว Self-Contained ซึ่งจะใช้ HMAC Algotithm ในการเข้ารหัส หรือจะใช้ Key Pair อย่าง RSA หรือ ECDSA ที่เป็น Public Key / Private Key ก็ได้ โดยจะประกอบไปด้วย 3 ส่วน คือ
เมื่อทำการ Encode แต่ะละส่วนด้วย Base64Url แล้วรวมทั้ง 3 ส่วนเข้าด้วยกัน จะได้รหัสขึ้นมาชุดหนึ่ง
นอกจากการใช้ JWT แล้ว ยังมี Service ที่คล้ายกันได้แก่ Simple web Token ( SWT ) และ Security Assertion Markup Language Tokens ( SAML )
เป็นส่วนของ Data ที่เรียกกันว่า โดยจะเป็นการอ้างสิทธิ์ของผู้ใช้งาน User ที่ร้องขอ ซึ่งจะแบ่งเป็น 3 ประเภท Registered Claim, Public Claim และ Private Claim
Public Claim : เป็นส่วนที่สามารถสร้างได้เอง แต่ควรมีการกำหนด เพื่อป้องกัน Collision Resistant การชนกัน หรือใช้ URL นำหน้าในการสร้าง Namespace
เราสามารถใช้ ในการ Encode หรือ Decode ข้อมูล Header กับ Payload ได้ และยังสามารถใช้ในการตรวจสอบ Signature Verified ได้อีกด้วย
อ่านเพิ่มเติม : , , , ,