ID Token vs Access Token

circle-info

หากพูดถึง Token ที่ใช้กันในปัจจุบัน หลายคนคงเคยใช้ JSON Web Token (JWT) กับ OAuth Token แต่เชื่อว่าคงมีหลายคนที่เคยสงสัยเหมือนกับผมว่า แล้วมันต่างกันยังไง ใช้กับกรณีใดบ้าง ก่อนอื่นต้องมาทำความรู้จักกับประเภทของ Token กันก่อน

Type Token

chevron-rightAuthentication Tokenhashtag

เป็น Token ที่ใช้ในการพิสูจน์ตัวตนของผู้ใช้ในระบบ เช่น JSON Web Token ( JWT )arrow-up-right ที่เป็นไปตามข้อกำหนด OpenID Connect

chevron-rightAccess Tokenhashtag

เป็น Token ที่ใช้สำหรับ Application ที่ต้องการเข้าถึงข้อมูลทรัพยากรต่าง ๆ บน Server เช่น OAuth 2.0

chevron-rightSession Tokenhashtag

เป็น Token ที่ใช้ในการเก็บข้อมูล Session ของผู้ใช้ที่ Login เข้าสู่ระบบ และทำให้ระบบรู้ว่าผู้ใช้คือใครและต้องการเข้าถึงบริการหรือข้อมูลใด

chevron-rightCommunication Tokenhashtag

เป็น Token ที่ใช้ในการเข้าถึงบริการหรือเครือข่าย เช่น CSRF Token ที่ใช้ในการป้องกันการโจมตีแบบ Cross-Site Request Forgery ( CSRF )

ID Token

circle-info

ใข้ในการระบุตัวตนของผู้ใช้ในระบบเท่านั้น ซึ่งก็คือ Authentication Token นั่นแหละ โดยหลังจากที่เราทำการกรอก Username และ Password ระบบจะทำการ Authentication แล้วส่ง Token กลับมา เพื่อให้ Client สามารถทำการดึงข้อมูล User Profile

triangle-exclamation

JWT Token ( Encode )

JWT Token ( Decode )

Access Token

circle-info

ใช้ในการเข้าถึงข้อมูลทรัพยากรต่าง ๆ บนเครื่อง Server ซึ่งก็คือ Authorization Token นั่นแหละ มักถูกส่งมาพร้อมกับ ID Token เพื่อ Allow Resource เหมาะกับการนำไปใช้กับการเข้าถึงพวก API หรือระหว่าง Service กับ Service คุยกัน

triangle-exclamation

Last updated 9 months ago

Last updated