Saya memiliki produk dengan REST API langsung sehingga pengguna produk dapat langsung berintegrasi dengan fitur-fitur produk tanpa menggunakan antarmuka pengguna web saya.
Baru-baru ini saya mendapatkan minat dari berbagai pihak ketiga tentang mengintegrasikan klien desktop mereka dengan API untuk memungkinkan pengguna produk saya mengakses data mereka menggunakan aplikasi pihak ketiga itu.
Saya telah melihat bahwa aplikasi yang ingin menggunakan Twitter mengautentikasi menggunakan halaman login yang dihosting oleh Twitter yang memberikan izin aplikasi khusus untuk mengakses data pengguna tersebut. Anda mengklik tombol "Izinkan" atau "Tolak" dan proses otentikasi selesai. Facebook menggunakan mekanisme yang sama dengan yang terbaik yang bisa saya katakan.
Setelah penelitian lebih lanjut, ini tampaknya menjadi OAuth dalam tindakan, dan mengingat API saya berbasiskan. Net, saya pikir saya harus menggunakan DotNetOpenAuth dan menyediakan mekanisme serupa. Sayangnya sampel jarang didokumentasikan (jika ada) dan satu-satunya tutorial yang dapat saya temukan secara online tampaknya difokuskan untuk membantu Anda menyediakan mekanisme login untuk pengguna Anda sehingga mereka dapat masuk ke situs web Anda menggunakan penyedia pihak ketiga.
Apa yang saya akan benar-benar ingin lakukan adalah memiliki saya SISA API menangani semua otentikasi inti dan logika bisnis untuk aplikasi web saya dan memiliki, di bawah tenda, aplikasi web saya pada dasarnya menjadi aplikasi lain yang hanya menggunakan API melalui OAuth. Pengguna akan mengautentikasi di situs web baik secara langsung menggunakan nama pengguna dan kata sandi mereka, atau melalui penyedia pihak ketiga seperti MyOpenID atau Facebook dan kemudian situs web itu entah bagaimana akan menggunakan token yang dikembalikan untuk mengotentikasi terhadap REST API.
Pada dasarnya sepertinya saya perlu API saya untuk menghosting layanan OAuth, tetapi juga meminta pengguna menggunakan layanan OAuth pihak ketiga. Saya tidak dapat membantu tetapi berpikir saya tidak memiliki cukup pemahaman tentang OAuth untuk memutuskan apakah saya terlalu rumit atau jika apa yang saya coba lakukan adalah cara yang baik atau buruk untuk melakukan sesuatu.
Dapatkah seseorang memberi saya setidaknya gambaran umum luas tentang langkah-langkah yang perlu saya lakukan, atau apa yang harus saya perhatikan untuk mewujudkannya? Atau tunjukkan saya di beberapa tutorial? Atau hancurkan proposal saya dan katakan bahwa saya salah (secara arsitektur) salah?