Apa itu OAuth Connect dan Bagaimana Cara Menggunakannya
Banyak dari kita bersentuhan dengan OAuth saat menjelajah di Web, dan kebanyakan dari kita bahkan tidak menyadari keberadaannya. OAuth (Open Authentication) adalah sistem yang memberikan akses terbatas pada situs web pihak ketiga ke akun pengguna, misalnya akun Twitter atau Facebook Anda. Ini memungkinkan pengunjung berinteraksi di dalam situs tanpa memerlukan pendaftaran akun baru atau melepaskan nama pengguna dan kata sandi Anda kepada pihak ketiga.
Dalam panduan ini saya ingin memperkenalkan konsep OAuth dan bagaimana penerapannya bagi pengembang. Ada banyak detail teknis yang terlibat dalam implementasi aplikasi OAuth Anda sendiri. Contoh saya akan ditulis dalam PHP menggunakan pembungkus perpustakaan Twitter, tetapi Anda dapat menggunakan hampir semua API pemrograman populer dari Python ke Ruby atau Objective-C.
Sekalipun konsepnya terasa samar, usahakan mencerna sebanyak mungkin. Ini masih merupakan teknologi yang sangat misterius, yang baru saja dirancang kembali pada tahun 2007. Saya tentu tidak mengerti bagaimana mengembangkan Koneksi OAuth penuh bahkan setelah beberapa tutorial pertama saya, tetapi jika Anda tetap menggunakannya, Anda akan cepat. Sekarang pertama-tama untuk memulai sesuatu, perkenalan kecil!
Masalah Apa Yang Bisa Kita Pecahkan?
Jika Anda mempertimbangkan seberapa banyak koneksi Internet yang telah terkoneksi, masuk akal bahwa pengguna ingin berbagi informasi antara banyak akun dari Facebook ke Twitter, Tumblr, Foursquare, dan sekarang bahkan ke aplikasi seluler seperti Path atau Instagram. Masalah yang kita hadapi sekarang adalah bagaimana mencapainya dengan cara yang paling aman dan sesederhana mungkin. OAuth 1.0 adalah upaya untuk memecahkan masalah ini dan banyak masalah lainnya, dibandingkan dengan standar OpenID yang lebih lama. Pengguna masih memasukkan nama pengguna / kata sandi mereka ke situs web pihak ketiga lainnya hanya untuk terhubung ke OpenID. Ini tidak membuatnya lebih aman bagi pengguna. Di bawah spesifikasi OAuth, pengguna tidak perlu menyimpan data akun pribadi apa pun ke dalam basis data pihak ketiga.
(Sumber Gambar: Martin Hassman)
Dengan OAuth, penyedia akun utama (mis. Twitter, Facebook) pertama-tama akan mengarahkan Anda (pengguna) ke halaman otorisasi. Pengguna kemudian login ke jaringan utama, dan kemudian menerima atau menolak koneksi baru ke situs web pihak ketiga. Teknologi ini sangat mudah dan Anda selalu dapat mengotorisasi koneksi dari pengaturan akun Anda kapan saja. Perhatikan bahwa kata sandi Anda tidak pernah diberikan kepada pihak ke-3 yang membuat protokol ini jauh lebih aman daripada rekannya.
Bagaimana Prosesnya Bekerja
Ada 3 pihak yang perlu dipertimbangkan dalam panggilan OAuth standar:
- Penyedia layanan - Jaringan utama tempat Anda mencoba menarik data. Mereka memberikan respons API seperti nama pengguna, gambar profil, URL situs web, dan hal-hal lain.
- Konsumen - Aplikasi pihak ke-3 yang ingin menerima data. Ini adalah situs web atau aplikasi seluler yang membuat permintaan koneksi awal, kemudian juga menangani data pengembalian setelah otorisasi.
- Pengguna - Orang yang duduk di belakang komputer berinteraksi dengan situs web yang akan menjadi Anda!
Tujuan OAuth bukan untuk menyediakan perpustakaan khusus untuk digunakan situs web. Ini sebenarnya mengatur “aturan” untuk membangun API protokol terbuka. Jadi, sementara kita semua dapat mengambil manfaat dari teknologi ini, sebenarnya pengembanglah yang akan benar-benar tertarik pada bidang ini. Jika Anda memerlukan info lebih lanjut, periksa edisi revisi v1.0 yang dirilis n April 2010.
Menghadapi Keamanan
Seluruh proses pada akhirnya membutuhkan 2 kunci berbeda bersama dengan token akses. Kunci disediakan oleh layanan root setelah Anda mendaftar aplikasi - ini dikenal sebagai Anda klien dan ID rahasia. ID klien umumnya diteruskan ke URL Otentikasi sehingga server dapat mengenali aplikasi Anda.
ID rahasia disimpan dalam kode Anda sehingga server dapat memverifikasi identitas aplikasi Anda. Demikian pula server jarak jauh akan mencocokkan ID rahasia Anda dengan milik mereka sehingga Anda tidak salah mengirim permintaan twitter ke API Facebook, atau sebaliknya. Jika pengguna mengotorisasi koneksi dan semua kunci cocok, maka mereka dikembalikan ke situs web Anda dengan kode panjang angka dan huruf acak.
Kode ini digunakan untuk menghasilkan yang baru token akses. Ini berperilaku mirip dengan variabel sesi yang dapat Anda simpan dalam cookie untuk membuat pengguna tetap masuk ke situs web Anda. Satu-satunya perbedaan adalah bahwa banyak layanan akan mengirim kembali Token Akses dan Token Akses Rahasia. Anda mungkin membutuhkan keduanya untuk menarik data dari server. Contohnya adalah meminta foto profil pengguna untuk menyimpan salinan di situs web Anda sendiri.
Contoh Perpustakaan untuk Twitter OAuth
Pengembang tidak sering memulai dari awal jadi mengapa tidak melihat ke perpustakaan yang sebelumnya dibangun? Ini akan menghemat waktu kita, dan dari sakit kepala, saat bekerja dengan PHP. Mari kita melihat contoh yang sangat sederhana di atas API Twitter.
Saya sangat merekomendasikan Twitter Async oleh Jaisen Mathai di GitHub. Ini berfungsi dengan baik dan bahkan menyediakan beberapa kode contoh yang sangat mudah yang dapat kita lihat. Anda dapat mengunduh .zip untuk saat ini, tetapi sebelum kita melihat kode kita perlu mendaftar dan mendapatkan ID aplikasi kita dari Twitter.
Mendaftarkan Aplikasi Baru
Twitter Dev Center adalah sumber yang bagus untuk mereka yang baru memulai API. Itu telah ditulis dan ditulis ulang berkali-kali selama beberapa tahun. Halaman yang kami inginkan adalah https://dev.twitter.com/apps/new. Ini akan meminta Anda untuk masuk terlebih dahulu, lalu Anda harus memasukkan beberapa kredensial untuk aplikasi baru.
Nama dan deskripsi Aplikasi ditampilkan ketika pengguna pergi untuk mengotorisasi dengan Twitter. URL Web Anda juga penting untuk membedakan alamat pihak ketiga. Akan lebih mudah untuk bekerja dengan domain langsung walaupun Anda dapat menggunakan localhost untuk pengujian, tetapi saya tidak mendukung metode ini. Sangat mudah untuk mendaftar untuk host web gratis dan menjalankan skrip Anda dari sana.
URL Panggilan Balik dinyatakan sebagai tujuan akhir setelah pengunjung Anda menerima atau menolak otorisasi. Adalah tugas Anda sebagai programmer untuk membaca respons dari Twitter dan menampilkan pesan yang sesuai. Di perpustakaan Async kami sudah memiliki beberapa kredensial di tempat, tetapi mereka tidak akan berfungsi karena URL panggilan balik ditentukan ke blog eksternal. Jika Anda tertarik untuk membangun aplikasi web OAuth yang sepenuhnya terhubung, saya telah menyertakan beberapa tutorial terperinci di bawah ini.
Lihat Kode
Jika Anda menggunakan host web jarak jauh, Anda mungkin ingin mengekstrak pustaka Async dan mengunggahnya ke direktori baru. Kalau tidak, Anda bisa memeriksa kode sumbernya. Sepertinya kami tidak akan dapat menarik koneksi baru. Tetapi pengalaman langsung dengan mengunggah dan mengedit kode sumber selalu merupakan proses pembelajaran.
Di direktori root, Anda akan menemukan skrip bernama simpleTest.php. Di dalamnya ada banyak kode PHP yang terkait dengan pustaka OAuth yang disertakan. Saya tidak akan bisa menyatukan semuanya untuk Anda, tetapi kita harus melihat pada blok kode penting untuk menunjukkan detail penting.
Ada 4 variabel yang sangat penting untuk kunci konsumen dan ID rahasia, bersama dengan token dan ID token rahasia. Tidak semua layanan API akan memerlukan set 4 ini, tetapi itu adalah protokol OAuth yang tepat. Kelas EpiTwitter membutuhkan semua 4 nilai sebagai parameter dan menghasilkan URL koneksi ke Twitter.
https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE
Dengan URL dinamis baru ini Anda dapat membuat tombol masuk untuk pengguna Anda. Ini akan mengarahkan mereka terlebih dahulu ke halaman Twitter API yang aman di mana pengguna menerima atau menolak koneksi Anda. Apa pun pilihan mereka, pengguna kemudian diarahkan kembali ke URL panggilan balik aplikasi Anda. Seluruh protokol terbuka memiliki perspektif yang sangat bersih yang memungkinkan untuk perkembangan yang cepat, terutama dengan perpustakaan yang tersedia di hampir setiap bahasa.
tautan yang berhubungan
- hueniverse oauth 1.0 panduan
- Pengantar Lembut untuk OAuth
- FAQ OAuth
- Panduan Dev Otentikasi Facebook
- Twitter Sederhana OAuth Signin
- Menggunakan OAuth dengan Twitter di Cocoa Objective-C
- Mengkonsumsi OAuth Intelligently in Rails
Kesimpulan
Semoga pengantar OAuth ini membuat Anda tertarik untuk membangun aplikasi melalui protokol. Banyak pengembang telah berjuang untuk solusi semacam itu, dan OAuth 2.0 mungkin akan menjadi masa depan jejaring sosial yang saling terhubung. Saya sudah menggunakan lebih dari dua lusin koneksi ke akun Twitter saya dan sangat terkesan dengan dokumentasi pengembang!
Jelas ada banyak yang bisa dikatakan tentang topik ini. Ini bukan sesuatu yang bisa Anda proses sepenuhnya dalam satu duduk. Jelajahi sekitar net untuk lebih banyak solusi OAuth dan beri tahu kami pemikiran Anda di area diskusi di bawah ini.