Oauth 2.0 101

สารบัญ:

Anonim

รถยนต์หรูหราหลายคันมาพร้อมกับกุญแจรถ มันเป็นรหัสพิเศษที่คุณให้ผู้ดูแลที่จอดรถและไม่เหมือนกับกุญแจปกติของคุณจะอนุญาตให้รถขับในระยะทางสั้น ๆ ในขณะที่ปิดกั้นการเข้าถึงลำต้นและโทรศัพท์มือถือออนบอร์ด ความคิดนั้นฉลาดมาก คุณให้สิทธิ์การเข้าถึงกุญแจรถพิเศษแก่ใครบางคนในขณะที่ใช้กุญแจอื่นเพื่อปลดล็อกทุกอย่าง - คู่มืออย่างเป็นทางการของ OAuth 1.0


นั่นเป็นวิธีที่แนวทางข้อกำหนดชุมชนอ้างอิงถึงวิธี OAuth ย้อนกลับไปในปี 2550 และในขณะที่ OAuth 2.0 เป็นโปรโตคอลใหม่อย่างสมบูรณ์คำอธิบายเดียวกันยังคงใช้อยู่ - OAuth ยังคงเป็นวิธีสำหรับผู้ใช้ในการให้สิทธิ์การเข้าถึงบุคคลที่สาม ทรัพยากรโดยไม่ต้องเปิดเผยรหัสผ่าน


หากคุณใช้อินเทอร์เน็ตเป็นประจำคุณมีโอกาสที่จะพบเว็บไซต์ที่ใช้ OAuth ท้ายที่สุดเว็บไซต์ที่ใหญ่ที่สุดในโลกเช่น Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote และ Vimeo ใช้มาตรฐานการรับรองความถูกต้องนี้ อ่านต่อเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับมาตรฐานนี้และสาเหตุที่รุ่นต่อไปของ OAuth 2.0 ยังคงถูกใช้งานบนพื้นฐานการทดลองที่ค่อนข้าง

OAuth 2.0 คืออะไร

ก่อนอื่นคุณต้องรู้ว่า OAuth เป็นโปรโตคอลทำอะไร: อนุญาตให้มีการอนุญาตการตั้งโปรแกรมอินเทอร์เฟซการเขียนโปรแกรมระหว่างแอปพลิเคชันเว็บหรือเดสก์ท็อป เป็นผลให้เว็บไซต์สามารถแบ่งปันทรัพยากรที่มีการป้องกันกับเว็บไซต์และบริการอื่น ๆ


ตัวอย่างเช่นหากคุณเล่น Scramble กับเพื่อน ๆ บน iPad ของคุณคุณสามารถป้อนข้อมูลประจำตัว Facebook ของคุณเพื่อให้เกมดูรายชื่อเพื่อนของคุณเพื่อดูว่าใครกำลังเล่นเกม - และเชิญผู้อื่นให้เข้าร่วม หรือคุณสามารถเชื่อมต่อกับเพื่อน ๆ ใน Google+ โดยพิจารณาจากผู้ที่ติดตามคุณใน Twitter แอปพลิเคชันประเภทนี้มีประโยชน์สำหรับผู้ใช้ แต่พวกเขาเกี่ยวข้องกับการให้เว็บไซต์หนึ่งหรือโปรแกรมเข้าถึงข้อมูลเกี่ยวกับคุณในเว็บไซต์อื่น


OAuth 2.0 ทำงานเหมือนกับการจุติครั้งแรกของ OAuth แต่เป็นมาตรฐานใหม่โดยสิ้นเชิง ซึ่งหมายความว่าไม่เข้ากันได้กับ OAuth 1.0 ย้อนหลัง เวอร์ชัน 2.0 ช่วยแก้ปัญหาหลายอย่างด้วย OAuth ดั้งเดิมและทำการปรับปรุง


ในขณะที่ยังคงรักษาสถาปัตยกรรมของเวอร์ชันแรกไว้โดยทั่วไป 2.0 จะได้รับการปรับปรุงเมื่อ:

  • การรับรองความถูกต้องและลายเซ็นต์ OAuth 2.0 ทำให้บางคนในฝั่งไคลเอ็นต์สามารถใช้โปรโตคอลได้ง่ายขึ้น
  • ประสบการณ์ของผู้ใช้และวิธีอื่นในการออกโทเค็น
  • ประสิทธิภาพโดยเฉพาะเว็บไซต์และบริการที่มีขนาดใหญ่ขึ้น
คำอธิบายที่ครอบคลุมมากขึ้นเกี่ยวกับสิ่งใหม่ ๆ ของ OAuth 2.0 จัดทำโดย Eran Hammer ซึ่งเคยเป็นส่วนหนึ่งของคณะทำงาน OAuth คุณสามารถเข้าถึงได้ที่นี่ อย่างไรก็ตามโปรดทราบว่า Hammer ออกจากคณะทำงานในเดือนกรกฎาคมปี 2012 โดยอ้างถึงปัญหาด้านความปลอดภัยเมื่อใช้มาตรฐาน เป็นผลให้ถึงแม้ว่า OAuth ควรจะได้ข้อสรุปภายในสิ้นปี 2010 แต่ก็ยังคงเป็นมาตรฐานที่เสนอ (ณ เวลาที่เขียน) แม้ว่าจะเป็นส่วนหนึ่งของกราฟ API ของ Facebook Google และ Microsoft กำลังทดลองใช้การสนับสนุน OAuth 2.0 ใน API ของตน

ประโยชน์ของการใช้ OAuth 2.0

หนึ่งในเหตุผลที่ดีที่สุดในการใช้ OAuth คือทำให้การแบ่งปันง่ายขึ้นมาก เราคุ้นเคยกับการอัปโหลดรูปภาพไปยัง Instagram และให้โพสต์โดยอัตโนมัติไปที่ Twitter และ Facebook ในความเป็นจริงมันเป็นเรื่องง่ายในการใช้และครอสโอเวอร์ที่ยังคงทำให้โซเชียลมีเดียดึงดูดใจ


แต่นั่นไม่ใช่ทั้งหมด สำหรับผู้ใช้ปลายทาง OAuth หมายความว่าคุณไม่จำเป็นต้องสร้างโปรไฟล์อื่น ตัวอย่างเช่นหากคุณต้องการแสดงความคิดเห็นในบทความคุณสามารถใช้ข้อมูลประจำตัวของ Facebook หรือ Twitter เพื่อทำแทนการลงทะเบียนบัญชีบนเว็บไซต์ที่กำหนด สิ่งนี้เหมาะสำหรับไซต์ที่คุณไม่ได้เปิดใช้งานปกติหรือคุณอาจไม่ไว้ใจ นอกจากนี้ยังสามารถเป็นประโยชน์ต่อไซต์ด้วยการทำให้มั่นใจว่าผู้ใช้มีข้อมูลประจำตัวบน Facebook ทำให้มีความคิดเห็นสแปมน้อยลง


OAuth ยังหมายถึงการจำรหัสผ่านน้อยลง เป็นวิธีปฏิบัติที่ดีที่สุดในการมีรหัสผ่านที่แตกต่างกันสำหรับบริการเว็บไซต์ต่างๆ ดังนั้นแทนที่จะจำรหัสผ่านอื่นสำหรับคุณจะต้องใช้รหัสผ่าน Facebook ของคุณเพื่อเข้าถึงบริการ อย่างไรก็ตามจะไม่เห็นรหัสผ่านของคุณ


คุณสามารถ จำกัด ทรัพยากรที่เข้าถึงได้ผ่าน OAuth ของคุณ ตัวอย่างเช่นเมื่อเล่นเกมบน Facebook คุณสามารถระบุได้ว่าคุณต้องการให้เกมโพสต์บนวอลล์ในนามของคุณหรือไม่


สำหรับนักพัฒนา OAuth 2.0 มีรหัสที่พัฒนาแล้วสำหรับการรับรองความถูกต้องการแสดงผลการโต้ตอบทางสังคมและการแสดงโปรไฟล์ผู้ใช้ ซึ่งหมายความว่ามีข้อบกพร่องน้อยลงสำหรับนักพัฒนาในการต่อสู้และมีความเสี่ยงต่ำกว่าเนื่องจาก API ได้รับการดีบั๊กทดสอบและพิสูจน์แล้ว สุดท้ายคุณยังได้รับประโยชน์จากการมีข้อมูลน้อยลงเพื่อเก็บไว้ในเซิร์ฟเวอร์ของคุณเอง

OAuth 2.0 มาเป็นอย่างไร

เป็นที่ชัดเจนว่า OAuth คือการตอบสนองต่อการโทรเพื่อการคำนวณที่ปลอดภัยและใช้งานง่ายสำหรับบริการเว็บต่างๆ ในทางกลับกัน OAuth 2.0 เกิดขึ้นจากความต้องการที่จะทำให้ OAuth ซับซ้อนน้อยลง แต่ความคิดทั้งหมดสำหรับทั้งสองมาจาก OpenID


OpenID เป็นบริการที่อนุญาตให้ผู้ใช้เข้าสู่บริการต่าง ๆ โดยใช้ข้อมูลการเข้าสู่ระบบจากเว็บไซต์อื่น แต่ OpenID นั้นมีข้อ จำกัด มากดังนั้นกลุ่มคนที่ทำงานกับโพรโทคอลการอนุญาตที่แตกต่างกันสำหรับเว็บไซต์ของพวกเขามารวมกัน การใช้งาน OAuth ครั้งแรกเสร็จสิ้นในปี 2550 และการแก้ไขครั้งแรกเกิดขึ้นในอีกสองปีต่อมา


OAuth 2.0 มาถึงที่เกิดเหตุในปี 2010 ความตั้งใจของมันคือการมุ่งเน้นไปที่ความเรียบง่ายของนักพัฒนาลูกค้าและสามารถปรับขนาดได้ง่ายขึ้นในขณะที่ยังปรับปรุงประสบการณ์ผู้ใช้

ท้าทายไปข้างหน้า?

แม้ว่า Google, Klout และชื่อใหญ่อื่น ๆ กำลังใช้งาน OAuth 2.0 แต่อาจมีถนนหินข้างหน้าโปรโตคอลนี้ มีการวิพากษ์วิจารณ์จากภายในชุมชน OAuth 2.0 รวมถึงข้อกังวลเกี่ยวกับความปลอดภัยของโปรโตคอล (หลายคนเชื่อว่ามันปลอดภัยน้อยกว่า OAuth 1.0)


ตามที่ Hammer ระบุไว้หากใช้งานโดยโปรแกรมเมอร์ที่มีความเชี่ยวชาญและมีความเชี่ยวชาญด้านความปลอดภัยของเว็บ OAuth 2.0 จะทำงานได้ น่าเสียดายที่นักพัฒนาส่วนน้อยเท่านั้นที่เหมาะสมกับการเรียกเก็บเงิน


นอกจากนี้รหัส OAuth 2.0 จะไม่สามารถใช้ซ้ำได้ ตัวอย่างเช่นโปรโตคอล OAuth 2.0 ที่ใช้โดย Facebook จะไม่สามารถใช้งานได้โดยไซต์อื่น ยิ่งกว่านั้นโปรโตคอลใหม่นั้นซับซ้อนกว่าเดิมมาก


แต่นักเตะที่แท้จริงสำหรับหลาย ๆ คนก็คือ OAuth 2.0 นั้นไม่ได้ให้ประโยชน์ที่แท้จริงหรือปรับปรุงมากกว่า 1.0 Hammer เขียนว่าหากคุณใช้งาน 1.0 ได้สำเร็จไม่มีเหตุผลที่จะอัพเกรดเป็น 2.0


อย่างไรก็ตาม OAuth 2.0 ยังมีชีวิตอยู่มาก ถ้ามันอยู่ที่การวิพากษ์วิจารณ์และปัญหาที่เกิดขึ้นก็ยังอาจพบสถานที่เป็นโปรโตคอลที่มีประสิทธิภาพมาก อย่างไรก็ตามในช่วงเวลาของการเขียนเวอร์ชัน 1.0 นั้นยังถือว่าเป็น OAuth เวอร์ชั่นที่เสถียรและผ่านการทดสอบแล้ว อย่างไรก็ตามสำหรับนักพัฒนาที่ต้องการทำงานกับชื่อใหญ่ในโลกออนไลน์การใช้โพรโทคอลนี้อย่างปลอดภัยอาจกลายเป็นทักษะที่สำคัญในอนาคตไม่ไกลเกินไป

Oauth 2.0 101