ฉันมีผลิตภัณฑ์ที่มี REST API ตรงไปตรงมาเพื่อให้ผู้ใช้ผลิตภัณฑ์สามารถรวมเข้ากับคุณสมบัติของผลิตภัณฑ์ได้โดยตรงโดยไม่ต้องใช้ส่วนต่อประสานผู้ใช้บนเว็บของฉัน
เมื่อเร็ว ๆ นี้ฉันได้รับความสนใจจากบุคคลที่สามที่หลากหลายเกี่ยวกับการรวมไคลเอ็นต์เดสก์ท็อปเข้ากับ API เพื่อให้ผู้ใช้ผลิตภัณฑ์ของฉันเข้าถึงข้อมูลโดยใช้แอปพลิเคชันบุคคลที่สามนั้น
ฉันเห็นว่าแอปพลิเคชันที่ต้องการใช้ Twitter รับรองความถูกต้องโดยใช้หน้าเข้าสู่ระบบซึ่งโฮสต์โดย Twitter ซึ่งให้สิทธิ์แอปพลิเคชันเฉพาะในการเข้าถึงข้อมูลของผู้ใช้นั้น คุณคลิกปุ่ม "อนุญาต" หรือ "ปฏิเสธ" และกระบวนการรับรองความถูกต้องเสร็จสมบูรณ์ Facebook ใช้กลไกเดียวกับที่ฉันบอกได้ดีที่สุด
จากการวิจัยเพิ่มเติมดูเหมือนว่านี่จะเป็น OAuth ในการดำเนินการและเนื่องจาก API ของฉันเป็นแบบ. Net ฉันคิดว่าฉันควรใช้ DotNetOpenAuth และให้กลไกที่คล้ายกัน น่าเสียดายที่ตัวอย่างมีการจัดทำเป็นเอกสารอย่างกระจัดกระจาย (ถ้าเป็นอย่างนั้น) และแบบฝึกหัดเดียวที่ฉันสามารถค้นหาทางออนไลน์ดูเหมือนจะเพ่งความสนใจไปที่การให้คุณมีกลไกการเข้าสู่ระบบสำหรับผู้ใช้ของคุณเพื่อให้พวกเขาสามารถเข้าสู่เว็บไซต์
สิ่งที่ฉันอยากทำจริงๆคือให้ REST API ของฉันจัดการกับการรับรองความถูกต้องหลักและตรรกะทางธุรกิจทั้งหมดสำหรับเว็บแอปพลิเคชันของฉันและมีแอปพลิเคชันบนเว็บของฉันเป็นแอพพลิเคชันอื่นที่ใช้ API ผ่าน OAuth ผู้ใช้จะรับรองความถูกต้องบนเว็บไซต์โดยใช้ชื่อผู้ใช้และรหัสผ่านโดยตรงหรือผ่านทางผู้ให้บริการบุคคลที่สามเช่น MyOpenID หรือ Facebook จากนั้นเว็บไซต์จะใช้โทเค็นที่ส่งคืนเพื่อรับรองความถูกต้องกับ REST API
ดูเหมือนว่าฉันต้องการ API ของฉันเพื่อโฮสต์บริการ OAuth แต่ก็มีผู้ใช้ที่ใช้บริการ OAuth บุคคลที่สามด้วย ฉันอดไม่ได้ที่จะคิดว่าฉันมีความเข้าใจใน OAuth ไม่มากพอที่จะตัดสินใจได้ว่าฉันกำลังทำอะไรมากเกินไปหรือสิ่งที่ฉันพยายามทำอยู่นั้นเป็นวิธีที่ดีหรือไม่ดีในการทำสิ่งต่าง ๆ
ใครช่วยให้ฉันอย่างน้อยภาพรวมกว้าง ๆ ของขั้นตอนที่ฉันต้องทำหรือสิ่งที่ฉันควรมองเพื่อให้เกิดขึ้น? หรือชี้ฉันที่บทเรียนบางอย่าง? หรือระเบิดข้อเสนอของฉันและบอกฉันฉันจะเกี่ยวกับเรื่องนี้ (สถาปัตยกรรม) ผิดทั้งหมดหรือไม่