มหาวิทยาลัยอุบลราชธานี
Ubon Ratchathani University
  www.ubu.ac.th   |   UBU Blog
สมัครเข้าใช้งาน    |   เข้าสู่ระบบ    
OAuth 2.0 คืออะไร 
โพสโดย สุทธิชัย แตะต้อง     วันที่ 9 เมษายน 2560 , 11:20:37 น.
หมวด : IT , เทคโนโลยี , มีผู้อ่านแล้ว 510 ครั้ง
  

OAuth 2.0 คืออะไร

OAuth [อ่านว่า โอ-อ๊อท] ย่อมาจาก Open Authentication เป็นมาตรฐานการยืนยันสิทธ์ (Authentication) และการตรวจสอบสิทธ์ (Authorization) ซึ่งเป็นมาตรฐานแบบเปิด ปัจจุบันเป็นเวอร์ชั่น 2 หรือ OAuth 2.0
 
OAuth เป็นมาตรฐาน ที่ใช้สำหรับการกำหนดสิทธิ์ให้ application หนึ่งสามารถร้องขอทรัพยากรของผู้ใช้จาก application หนึ่งได้โดยที่ application นั้นไม่จำเป็นต้องทราบรหัสผ่านของผู้ใช้ แต่จะยืนยันว่าตัวเองมีสิทธ์หรือได้รับอนุญาตให้ใช้งานโดยใช้ access token [แอคเซส โทคเค่น] แทนรหัสผ่านของผู้ใช้ ซึ่ง access token จะมีอายุการใช้งานเพียงช่วงเวลาหนึ่งเท่านั้น
 
OAuth 2.0 มีการทำงาน 4 แบบ เรียกว่า grant_type โดยที่เราจะใช้แบบใดแบบนึงหรือใช้ร่วมกันหลายๆแบบก็ได้ ขึ้นอยู่กับว่าเราจะเอาไปทำ service แบบไหน
 
1.Authorization Code มักจะเอาไว้ใช้กับ web server เช่นถ้าเราทำ web application แล้วต้องการให้ผู้ใช้ Login ด้วย Gmail หรือ Facebook (ในกรณีองค์กรอาจจะ Login ด้วยอีเมลองค์กร) โดยโค้ดที่เป็น back-end จะใช้ grant_type นี้
โดยการทำงานของมันคือ
1.1 เมื่อผู้ใช้กดปุ่ม Login จะถูกพาไปยังหน้าของผู้ให้บริการ OAuth นั้นๆ เช่น Login ด้วย Google Account ผู้ใช้ก็จะจะถูกพาไปยังหน้า Login ของ Google
1.2 ถ้าผู้ใช้ Login และกดยอมรับการขออนุญาต ผู้ให้บริการจะส่งผู้ใช้กลับมายังหน้าเว็บเราพร้อมกับ Authorization Code 
1.3 เมื่อเว็บเราได้รับ Authorization Code แล้วก็จะต้องทำการติดต่อไปยังผู้ให้บริการด้วย HTTP POST ระบุ client_id, client_secret (ซึ่งกำหนดโดยผูให้บริการ Identity provider) และบอก grant_type ว่าเป็นแบบ authorization_code 
1.4 ผู้ให้บริการจะตอบกลับมาว่า Account ที่ Login นี้มีสิทธิ์ทำอะไรได้บ้าง พร้อมด้วย access token เพื่อใช้แทน Username & Password ของผู้ใช้ในครั้งถัดไป
 
2.Implicit มักจะเอาไว้ใช้กับ client ที่ไม่มี component ของ server เช่น ใช้งานบน mobile application หรือ web application ที่ทำงานในลักษณะ stateless โดยในการติดต่อกับกับ server นั้น client จะไม่ต้องเก็บข้อมูลลับ (secret key)
2.1 เมื่อผู้ใช้ต้องการ Login ด้วย id provider เช่น Google, Facebook หรือ OAuth service ที่เราสร้างขึ้น
2.2 เมื่อผู้ใช้กดปุ่ม Login หน้าเว็บจะ redirect ไปหน้าขอสิทธิ์ของผู้ให้บริการนั้นๆ
2.3 เมื่อผู้ใช้กดยอมรับผู้ให้บริการจะทำการ redirect กลับมาที่เว็บของเราพร้อมด้วย access token
 
3.Password Credentials สำหรับ mobile application หรือ web application ที่เป็นทางการของเราเอง (ในกรณีที่เราเป็นผู้ให้บริการ OAuth service เอง) เนื่องจากวิธีนี้เราสามารถจัดการสิทธิ์ต่างๆของผู้ใช้งานได้เพียงแค่ถาม username และ password โดยที่ไม่ต้อง redirect ไปมา
3.1 เมื่อผู้ใช้ต้องการ Login จะต้อง Login ด้วย username และ password (ซึ่งเก็บภายไต้ OAuth service ที่เราทำไว้)
3.2 ถ้าผู้ใช้ Login ผ่านก็จะได้ access token เพื่อไปใช้งานต่อได้เลย
 
4.Client Credentials เหมาะสำหรับทำบางอย่างใน application โดยที่ไม่มีส่วนเกียวข้องกับผู้ใช้งาน เช่น ต้องการแก้ไขชื่อของ application ที่ถูก register ไว้ หรือแก้ไขข้อมูล metadata อื่นๆใน application ที่ไม่เกี่ยวข้องใดๆกับผู้ใช้เลย
4.1 client application เรียกใช้ API ไปยังผู้ให้บริการ โดยส่ง client_id และ client_secret ไปด้วย
4.2 ผู้ให้บริการตอบ access token กลับมาเพื่อให้ client นำไปใช้งานต่อ
แสดงความคิดเห็น
      เข้าสู่ระบบ
  - ต้องทำการกรอก username และ password ก่อน จึงจะทำการแสดงความคิดเห็นได้
- username และ password เป็นอันเดียวกับที่ใช้ในการ login internet ของมหาวิทยาลัยอุบลราชธานี
 

ค้นหา
 
  About Me
 
ชื่อ :  นายสุทธิชัย แตะต้อง
ตำแหน่ง :  นักวิชาการคอมพิวเตอร์
หน่วยงาน : 
คณะ/สำนัก :  สำนักคอมพิวเตอร์
และเครือข่าย
จำนวนเรื่อง :  2
จำนวนผู้ชม :  1422
Blog :  suttichai
  เรื่องย้อนหลัง
OAuth 2.0 คืออะไร
แนวคิดของเทคโนโลยี “ซอฟต์แวร์คอนเทนเนอร์” (Software Containe...
 
 
 
พัฒนาโดย สำนักคอมพิวเตอร์และเครือข่าย มหาวิทยาลัยอุบลราชธานี
© Copyright 2010 - 2015 UBON RATCHATHANI UNIVERSITY
สงวนลิขสิทธิ์ 2553 - 2558 มหาวิทยาลัยอุบลราชธานี