OpenID vs OAuth
OAuth (Authorization)
- ออกแบบสำหรับ Authorization (การอนุมัติ)
- ให้ third-party เข้าถึงทรัพยากรโดยไม่ต้องให้ password
- ใช้ Access Token ผ่าน API
- HTTP-based
- ไม่ initiate user session
OpenID (Authentication)
- ออกแบบสำหรับ Authentication (การยืนยันตัวตน)
- Third-party authenticate ผู้ใช้แทน (Single Sign-On)
- ใช้ account ที่มีอยู่แล้ว (Google, Facebook, etc.)
- Initiate user session
ตารางเปรียบเทียบ
| Key | OAuth | OpenID |
|---|---|---|
| วัตถุประสงค์ | Authorization (อนุมัติการเข้าถึง) | Authentication (ยืนยันตัวตน) |
| Session | ไม่ initiate session | Initiate user session |
| Mechanism | Access Token | Third-party authentication |
สรุป
- OAuth = "อนุญาตให้ app นี้เข้าถึงข้อมูลของฉันได้" (Authorization)
- OpenID = "ยืนยันว่า ฉันคือใคร" (Authentication)
- ปัจจุบันมักใช้ร่วมกัน: OpenID Connect = OAuth 2.0 + Identity layer