OAuth คืออะไร ?
OAuth (Open Authentication) คือ เป็นมาตราฐานที่ application จะใช้ติดต่อกับเครื่อง client ในแบบการเข้าระบบผ่านตัวแทนที่ปลอดภัย ที่ใช้สำหรับการกำหนดสิทธิ์ให้ application หนึ่งสามารถร้องขอทรัพยากรของผู้ใช้จาก application หนึ่งได้โดยที่ application นั้นไม่จำเป็นต้องทราบรหัสผ่านของผู้ใช้
Application ที่ร้องขอทรัพยากรจะได้รับสิ่งที่เรียกว่า Access Token กลับมาหลังจากเข้าระบบสำเร็จ เพื่อใช้แทน Username และ Password เพื่อนำไปใช้กับบริการอื่น ๆ ทำให้มีความปลอดภัยมากขึ้น รวมถึงบอกว่าทำมีสิทธิ์ทำอะไรได้บ้างกับบริการนั้น ๆ โดยแนะนำต้องใช้คู่กับ https อีกชั้นเพื่อความปลอดภัยสูงสุด
OAuth ทำงานอย่างไร ?
- 1. ผู้ใช้งานเข้า Web Site
- 2. จะมีให้กด Login Facebook, Twitter, Google หรืออื่น ๆ
- 3. เมื่อผู้ใช้กดก็จะเด้งให้ไป Login ที่ผู้ให้บริการนั้น ๆ ถ้าเคย Login ไว้แล้วก็จะข้ามขั้นตอนนี้ไป
- 4. ถ้าผู้ให้บริการนั้น ๆ เช่น Facebook จะให้กดยอมรับข้ออนุญาต ส่วนมากจะถามเรื่องสิทธิ์ในการเข้าถึงข้อมูลส่วนตัว
- 5. เมื่อผู้ใช้กดอนุญาต ก็จะกลับมายัง Web Site โดยในเบื้องหลัง WebSite จะได้ authorization code มาเรียกร้อยแล้วจากผู้ให้บริการ
- 6. จากนั้นทาง Web Site ก็สามารถเข้าถึงข้อมูลของผู้ให้บริการนั้น ๆ ได้ตามสิทธิที่อนุญาตไว้
OAuth ปลอดภัยหรือไม่
อยู่ที่การใช้งาน ว่าปลอดภัยหรือไม่ โดยวิธีการของมันไม่ได้ปลอดภัย แต่เราจะต้องเสริมการป้องกันเข้าไปเวลาใช้งาน เช่น ถ้าระบบต้องการความปลอดภัยสูงให้ใช้ OAuth 1 แต่ต้องแลกกับกระบวนการที่ซับซ้อน เวลาสร้าง และตรวจสอบความถูกต้องของลายเซ็นต์