OAuth 2.0 คือมาตรฐานอุตสาหกรรมสำหรับการอนุญาตสิทธิ์ ที่ช่วยให้แอปพลิเคชันบุคคลที่สาม เข้าถึงข้อมูลของผู้ใช้บนบริการอื่น ได้อย่างปลอดภัยโดยไม่ต้องรู้รหัสผ่าน โดยใช้ “Access Token” จำกัดขอบเขตสิทธิ์ ปลอดภัยกว่า และนิยมใช้สำหรับเว็บ, โมบายแอป, และ API
สรุปประเด็นสำคัญของ OAuth 2.0
- หลักการทำงาน: แทนที่จะให้รหัสผ่าน แอปพลิเคชันจะเปลี่ยนเส้นทางผู้ใช้ไปที่ผู้ให้บริการ (Authorization Server) เพื่อขอความยินยอม เมื่อยินยอมแล้ว แอปจะได้รับ Access Token แทน
- ประโยชน์
- ความปลอดภัยสูง: รหัสผ่านจริงไม่ถูกเปิดเผยหรือจัดเก็บในแอปที่สาม
- จำกัดสิทธิ์ : ผู้ใช้สามารถเลือกว่าจะอนุญาตให้เข้าถึงข้อมูลอะไรได้บ้าง
- เพิกถอนได้: ผู้ใช้สามารถยกเลิกสิทธิ์การเข้าถึงของแอปนั้น ๆ ได้ตลอดเวลา
- องค์ประกอบหลัก:
- Resource Owner: ผู้ใช้เจ้าของข้อมูล
- Client: แอปพลิเคชันที่ต้องการเข้าถึงข้อมูล
- Authorization Server: เซิร์ฟเวอร์ที่ตรวจสอบสิทธิ์และออกโทเค็น
- Resource Server: เซิร์ฟเวอร์ที่เก็บข้อมูลของผู้ใช้
- Grant Types : OAuth 2.0 รองรับหลายรูปแบบ เช่น Authorization Code , Implicit, Client Credentials, และ Refresh Token
- OAuth 2.1: กำลังพัฒนาเพื่อรวม OAuth 2.0 เข้ากับส่วนขยายต่าง ๆ เช่น PKCE ให้เป็นมาตรฐานเดียวกันที่ปลอดภัยยิ่งขึ้น
- Authentication, Authenticator, Authorization, Login
- Microsoft Authenticator ย้ายไม่ครบ
- ระบบ Login ควรมีอะไรบ้าง
- การใช้ OAuth 2.0 เพื่อเข้าถึง Google API
- OAuth 2.0
- OAuth 2.0 authentication vulnerabilities
อ่านเพิ่มเติม
- jQuery: 4.0.0 เกิดใหม่ แต่เหมือนแจ้งตาย
- Java 16 (2021): Records (คลาสข้อมูลแบบ Immutable ที่ประกาศกระชับ ไม่ต้องเขียน Getter/Setter เอง) และ Pattern Matching สำหรับ instanceof
- Java 15 (2020): Sealed Classes (การจำกัดสิทธิ์ว่าคลาสใดสามารถสืบทอดได้บ้าง) และ Hidden Classes
- MacOs: จัดการจอในจอนอกด้วย BetterDisplay
- Testing: ส่งเมล์ผ่าน command