OAuth (Open Authorization)

   อัปเดตล่าสุด March 4, 2024

หลายคนน่าจะเคยเข้าสู่ระบบของเว็บหรือแอปพลิเคชันผ่านบัญชีโซเชียล เช่น Facebook, Google, GitHub, ฯลฯ สิ่งเหล่านี้คือระบบ OAuth (Open Authorization) โดยสามารถช่วยให้เราเข้าสู่ระบบเหล่านั้นได้อย่างสะดวก ปลอดภัย และไม่ต้องแชร์รหัสผ่าน บทเรียนนี้จะมาทำความเข้าใจแนวคิดของ OAuth กันครับ


OAuth คืออะไร?

OAuth คือ โปรโตคอลการอนุญาตแบบเปิด (Open Authorization Protocol) ที่ช่วยให้ผู้ใช้สามารถอนุญาตให้แอปพลิเคชันอื่น ๆ ในการเข้าถึงข้อมูลบางส่วนบนบัญชีของผู้ใช้โดยไม่ต้องใช้รหัสผ่านจริงในการ authenticate โดยปัจจุบันเวอร์ชันล่าสุดคือ OAuth 2.0

 


OAuth Overview (Image source: moodle.org)


ตัวอย่างการทำงานของ OAuth

  • 1.  User ต้องการเข้าสู่แอปพลิเคชัน A จากนั้นแอป A จะขอให้ผู้ใช้เลือกช่องทางที่ต้องการใช้สำหรับ sign-in เข้าสู่ระบบ (เช่น Facebook, Google เป็นต้น)
  • 2. ผู้ใช้เลือกบริการ (เช่น Facebook) แอป A จะนำผู้ใช้ไปยังหน้าเข้าสู่ระบบของ Facebook
  • 3. ผู้ใช้กรอกข้อมูลเข้าสู่ระบบ Facebook จากนั้น Facebook จะถามผู้ใช้ว่า อนุญาตให้ แอป A เข้าถึงข้อมูลอะไรบ้าง (เช่น ชื่อ โปรไฟล์ อีเมล)
  • 4. ผู้ใช้ อนุญาต Facebook จะส่งโทเค็น (Access Token) กลับไปยัง แอป A
  • 5. แอป A ได้รับโทเค็น แอป A จะใช้ token นี้เพื่อติดต่อกับ Facebook เพื่อขอสิทธิเข้าถึงข้อมูลที่ผู้ใช้อนุญาต (authorization)


ข้อดีของ OAuth

  • ปลอดภัย: ผู้ใช้ไม่ต้องแชร์รหัสผ่านจริงกับแอปพลิเคชันอื่นๆ
  • สะดวกสบาย: ผู้ใช้เข้าสู่ระบบได้ง่าย ไม่ต้องจำรหัสผ่านหลายอัน
  • ควบคุมข้อมูล: ผู้ใช้เลือกได้ว่าจะอนุญาตให้แอปพลิเคชันเข้าถึงข้อมูลอะไรบ้าง


ตัวอย่างการใช้งาน OAuth

  • เข้าสู่ระบบในเว็บไซต์หรือแอปพลิเคชันต่างๆ ด้วย Facebook, Google, หรือบริการอื่น ๆ เป็นต้น
  • เชื่อมต่อบัญชีโซเชียลมีเดียกับแอปพลิเคชัน แชร์ข้อมูลได้สะดวก
  • เชื่อมต่อแอปพลิเคชันต่างๆ เพื่อดึงข้อมูล เช่น แอปพลิเคชันจดบันการออกกำลังกายดึงข้อมูลจากแอปพลิเคชันสุขภาพ