มหาวิทยาลัยอุบลราชธานี
Ubon Ratchathani University
  www.ubu.ac.th   |   UBU Blog
สมัครเข้าใช้งาน    |   เข้าสู่ระบบ    
รู้จักกับ OAuth 2.0 Protocol 
โพสโดย ทัศนีย์ หนองกก     วันที่ 3 ตุลาคม 2560 , 16:51:44 น.
หมวด : IT , เทคโนโลยี , มีผู้อ่านแล้ว 114 ครั้ง
  

     OAuth (อ่านว่า โอ-อ๊อท) ย่อมาจาก Open Authentication ปัจจุบันเป็นเวอร์ชั่น 2 หรือ OAuth 2.0 เป็นมาตรฐานที่ใช้สำหรับการกำหนดสิทธิ์ให้แอพพลิเคชั่นหนึ่งสามารถร้องขอทรัพยากรของผู้ใช้จาก แอพพลิเคชั่นหนึ่งได้ โดยที่แอพพลิเคชั่นนั้นไม่จำเป็นต้องทราบรหัสผ่านของผู้ใช้ แต่จะยืนยันว่าตัวเองมีสิทธ์หรือได้รับอนุญาตให้ใช้งานโดยใช้แอคเซสโทคเค่น (access token) แทนรหัสผ่านของผู้ใช้ ซึ่งแอคเซสโทคเค่นจะมีอายุการใช้งานเพียงช่วงเวลาหนึ่งเท่านั้น โดยแสดงภาพคร่าว ๆ เป็น Protocol Flow ดังรูป[1]


     OAuth 2.0 มีการทำงาน 4แบบ เรียกว่า Grant_type ขึ้นอยู่กับว่าเราจะเอาไปทำ service แบบไหน อาจจะใช้แต่ละแบบร่วมกันก็ได้ ขึ้นอยู่กับบริบทของการให้บริการ (service) โดยแต่ละแบบมีรายละเอียด ดังนี้

1. Authorization Code มักจะเอาไว้ใช้กับเว็บเซิฟเวอร์ ที่ใช้ Code ด้านหลังในการเชื่อมต่อกับ OAuth Server โดยไม่ได้เปิดเผยให้สาธารณะเห็น เช่น การทำเว็บแอพพลิเคชั่น แล้วต้องการให้ผู้ใช้ล๊อกอินด้วย Gmail หรือ Facebook (ในกรณีองค์กรอาจใช้ล๊อกอินด้วยอีเมล์องค์กร) โดยโค้ดที่เป็น back-end จะใช้ grant_type
 
2. Implicit มักเอาไว้ใช้กับฝั่ง client ที่ไม่มี component ของ server ซึ่งไม่จำเป็นต้องมี Web Server เป็นเหมือนการคุยระหว่าง Web Browser Client กับ OAuth Server ตรง ๆ เช่น ใช้งานบน mobile application หรือ web application ที่ทำงานในลักษณะ stateless โดยในการติดต่อกับกับ server นั้น client จะไม่ต้องเก็บข้อมูลลับ (secret key) หรือเราสามารถให้ผู้ใช้ ใช้งาน web application ของเราได้โดยที่ไม่จำเป็นต้องรู้ว่า client_secret คืออะไร
 
3. Password Credentials ใช้สำหรับ Application ที่เป็นทางการของผู้ให้บริการเอง (ในกรณีที่เป็นผู้ให้บริการ OAuth service เอง) มีการจัดการสิทธิเอง แต่ต้องการยืนยันตัวตนเท่านั้น ซึ่งวิธีนี้ไม่ต้อง Redirect ไปที่ผู้ให้บริการอื่น วิธีนี้เหมาะกับการใช้งานที่เป็นบริการของตัวเอง เพราะ username password จะปรากฏในเครื่องที่ส่งขอ token ถ้าไปรันวิธีนี้บน Server อื่นที่ไม่ได้เป็นเจ้าของ แสดงว่า อาจจะมีการดักจับเอา username และ password ไปใช้ก็ได้
 
4. Client Credentials เหมาะสำหรับทำบางอย่างในแอพพลิเคชั่นโดยที่ไม่มีส่วนเกี่ยวข้องกับผู้ใช้งาน ใช้ใน code ฝั่ง clientเช่น ต้องการแก้ไขชื่อของแอพพลิเคชั่นที่ถูกลงทะเบียนไว้ หรือแก้ไขข้อมูล metadata อื่น ๆ ในแอพพลิเคชั่นที่ไม่เกี่ยวข้องใด ๆ กับผู้ใช้เลย

     ทั้งนี้ในเรื่องความปลอดภัยของ OAuth 2.0 นั้น อยู่ที่การใช้งาน ว่าปลอดภัยหรือไม่ ถ้ารันบน http ธรรมดา ยังไงก็ไม่ปลอดภัย ถ้าใช้ php 4 หรือ windows 2003 ยังไงก็ไม่ปลอดภัย และด้วยเป็นเทคโนโลยีเปิด ในช่วงเวลาหนึ่งก็ต้องมีช่องโหว่ที่เกิดความไม่ปลอดภัยขึ้น ขึ้นอยู่กับการนำไปพิจารณาและประยุกต์ใช้ให้เกิดกับงาน
 
อ้างอิง :  
WUNCA 34 [1]การพัฒนาระบบ Authorization services provider ตามแบบวิธี OAuth 2.0 Protocol สำหรับให้บริการพิสูจน์ตัวตนเพื่อเข้าใช้งานแอพพลิเคชั่น
 
แสดงความคิดเห็น
      เข้าสู่ระบบ
  - ต้องทำการกรอก username และ password ก่อน จึงจะทำการแสดงความคิดเห็นได้
- username และ password เป็นอันเดียวกับที่ใช้ในการ login internet ของมหาวิทยาลัยอุบลราชธานี
 

ค้นหา
 
  About Me
 
ชื่อ :  ทัศนีย์ หนองกก
ตำแหน่ง :  นักวิชาการคอมพิวเตอร์
หน่วยงาน : 
คณะ/สำนัก :  สำนักคอมพิวเตอร์
และเครือข่าย
จำนวนเรื่อง :  7
จำนวนผู้ชม :  4755
Blog :  tassanee
  เรื่องย้อนหลัง
รู้จักกับ OAuth 2.0 Protocol
ระบบสอบออนไลน์ น่ารู้!
Workshop : Real-time Web Application with Node.js
Google for Education/ Google Apps
import exel แบบ CSV ไม่ได้ ขึ้นแจ้งว่า Invalid field count i...
ง่ายนิดเดียว ไม่ให้ FaceBook ส่ง Group E-mail Notification ร...
15 ปุ่มลัดบนคีย์บอร์ด เพิ่มความไวในการใช้คอมพิวเตอร์
 
 
 
พัฒนาโดย สำนักคอมพิวเตอร์และเครือข่าย มหาวิทยาลัยอุบลราชธานี
© Copyright 2010 - 2015 UBON RATCHATHANI UNIVERSITY
สงวนลิขสิทธิ์ 2553 - 2558 มหาวิทยาลัยอุบลราชธานี