Keamanan

Manajemen Masuk OAuth

Manajemen Masuk OAuth

Hal-hal penting yang perlu Anda ketahui tentang OAuth

OAuth adalah sesuatu yang harus diketahui oleh setiap pengembang. Jika Anda membuat aplikasi mandiri atau aplikasi pihak ketiga yang terintegrasi dengan beberapa layanan HTTP lainnya, Anda perlu mengetahui cara kerja OAuth untuk menyediakan layanan yang mudah digunakan dan terintegrasi dengan baik kepada pengguna Anda.

Idenya adalah untuk memungkinkan aplikasi klien akses terbatas ke informasi pengguna tanpa pernah membagikan kredensial atau kata sandi pengguna. Kerangka kerja OAuth bertanggung jawab atas pertukaran yang diperlukan sebelum aplikasi mendapatkan informasi Anda.

Misalkan Anda ingin mendaftar ke Dev.ke (yang merupakan tempat yang bagus bagi pengembang untuk bertukar ide) mereka mengizinkan Anda mendaftar menggunakan akun GitHub Anda. Bagaimana itu terjadi?? Bagaimana mereka tahu Anda memiliki akun GitHub, yang Anda gunakan untuk mendaftar??

Lebih penting lagi, bagaimana Anda memastikan bahwa Dev.to tidak melampaui batas dalam hal informasi Anda yang disimpan dengan GitHub?

Peserta OAuth

Kami akan tetap menggunakan contoh plugin GitHub editor Atom yang memungkinkan pengembang untuk mendorong kode ke GitHub secara langsung menggunakan antarmuka Atom. Alasan untuk ini sebagai contoh adalah karena GitHub tidak menyembunyikan detail di balik layar dan Anda dapat melihat apa yang terjadi di balik layar.

Sebelum kita masuk ke detail kerja OAuth. Mari kita mengatur panggung dengan mengenali semua peserta dalam pertukaran:

  1. Pemilik atau Pengguna Sumber Daya: Pengguna ini adalah orang yang informasi akunnya perlu diakses (baca dan/atau tulis) agar dapat berfungsi dengan aplikasi.
  2. Klien: Ini adalah aplikasi yang meminta izin Anda untuk mengakses informasi Anda dari layanan lain. Dalam contoh kami, editor Atom adalah klien.
  3. Sumber: Sumber daya adalah informasi aktual Anda yang tersimpan di server di beberapa lokasi terpencil. Ini dapat diakses melalui API jika klien diberikan izin yang sesuai.
  4. Server Otorisasi: Juga dihubungkan dengan melalui API. Server ini dikelola oleh penyedia layanan (GitHub dalam contoh kami). Server otorisasi dan server sumber daya disebut sebagai API karena dikelola oleh satu entitas, dalam hal ini GitHub, dan diekspos sebagai API kepada pengembang klien.

Pendaftaran OAuth

Proses dimulai ketika aplikasi Klien sedang dikembangkan. Anda dapat pergi ke penyedia sumber daya dan mendaftar dengan portal pengembang mereka atau bagian API dari situs web. Anda juga harus memberikan URL panggilan balik tempat pengguna akan dialihkan setelah menerima atau menolak untuk memberikan izin yang diperlukan aplikasi.

Misalnya, jika Anda pergi ke GitHub→ Settings → Developer Settings dan klik “Daftar Aplikasi Baru”. Ini akan memberi Anda ID Klien yang dapat dipublikasikan dan Rahasia Klien yang harus dirahasiakan oleh organisasi pengembang….

Setelah ID Klien dan rahasia diberikan kepada Anda, pengembang, Anda harus jaga agar tetap aman dan terlindungi karena tidak akan ditampilkan lagi oleh server Otorisasi. Hal yang sama berlaku untuk token lain yang akan dilempar (Lebih lanjut tentang token nanti).

Alur Kerja OAuth 2

Anda telah mendaftarkan aplikasi Anda. Ini telah dikembangkan dan diuji dan sekarang pengguna siap untuk menggunakannya. Pengguna baru saat mendaftar dengan layanan Anda akan ditampilkan opsi "Masuk dengan GitHub". Ini adalah langkah pertama.

Langkah 1: Permintaan otorisasi

Permintaan otorisasi adalah bagian di mana jendela baru (atau permintaan serupa) terbuka dengan halaman web sumber daya dan meminta pengguna untuk masuk. Jika Anda sudah masuk, di perangkat itu, maka langkah ini dilewati dan Anda hanya diminta oleh GitHub apakah Anda ingin memberikan akses ke aplikasi klien Atom. Ini jauh lebih transparan dalam kasus Atom karena mereka meminta Anda untuk secara manual membuka situs web GitHub dan memberi mereka izin.

Saat mengunjungi URL, Anda dimintai izin.

Perhatikan URL yang menunjukkan ini adalah halaman web aman (HTTPS) oleh GitHub.Inc. Sekarang Anda, pengguna, dapat yakin bahwa Anda berinteraksi langsung dengan GitHub. Atom hanya menunggu, cukup keluar dari jalan.

Tidak seperti Atom, sebagian besar aplikasi klien secara otomatis memuat halaman login atau izin. Meskipun ini sangat nyaman, ini juga dapat disalahgunakan, jika aplikasi klien memutuskan untuk membuka tautan phishing. Untuk menghindari hal ini, Anda harus selalu memeriksa URL tujuan Anda dialihkan, dan memastikan bahwa itu adalah URL yang benar dan menggunakan protokol HTTPS.

Langkah 2: Mendapatkan Hibah Otorisasi

Untuk memberi tahu klien Atom, Anda diberikan token (pemberian otorisasi) yang kemudian dikirimkan ke klien Atom.

Setelah pengguna melakukan ini, pekerjaan pengguna selesai. (Faktanya, pengguna biasa bahkan tidak mengetahui tentang pertukaran hibah otorisasi. Contoh GitHub dipilih untuk menunjukkan bahwa inilah yang terjadi).

Langkah 3: Mendapatkan token akses

Pemberian otorisasi masih bukan entitas yang memberi klien akses ke informasi pengguna. Itu diperoleh dengan menggunakan sesuatu yang disebut token akses. Aplikasi klien mana yang akan coba masuk dalam langkah ini.

Untuk melakukan ini, klien sekarang harus memberikan hibah otorisasi ke server otorisasi beserta bukti identitasnya sendiri. Identitas diverifikasi menggunakan ID Klien dan rahasia Klien yang diberikan ke aplikasi klien sebelumnya.

Verifikasi identitas dilakukan untuk memastikan bahwa pengguna tidak tertipu untuk menggunakan aplikasi jahat yang berpura-pura menjadi aplikasi yang sah. Misalnya, jika seseorang memutuskan untuk memberi nama executable mereka sebagai Atom dengan nama, logo, dan fungsionalitas yang sama, pengguna mungkin tertipu untuk memberikan akses ke klien yang dapat menyalahgunakan informasi Anda. Mereka dapat mengintip atau bahkan bertindak tanpa persetujuan Anda. Server otorisasi memastikan bahwa klien memang seperti yang terlihat oleh penggunanya.

Setelah identitas diverifikasi dan pemberian otorisasi diterima, server otorisasi melempar token ke aplikasi klien. Anggap token sebagai kombinasi nama pengguna dan kata sandi yang dapat diberikan ke server sumber daya untuk mengakses sumber daya tertentu yang dilindungi yang diizinkan oleh pemilik sumber daya untuk Anda akses.

Terakhir, dengan menggunakan token ini, aplikasi sekarang dapat memperoleh akses ke informasi pengguna yang diperlukan dan sumber daya lainnya dari server sumber daya.

Perhatikan, bagaimana dalam keseluruhan ini bertukar nama pengguna dan kata sandi yang sebenarnya di mana tidak pernah dibagikan dengan klien? Itulah keindahan OAuth. Alih-alih memberikan nama pengguna dan kata sandi yang akan memberikan aplikasi semua akses ke sumber daya, itu menggunakan token sebagai gantinya. Dan token hanya dapat memperoleh akses terbatas ke sumber daya.

Mencabut Izin

Misalkan Anda kehilangan akses ke perangkat Anda yang memiliki aplikasi klien resmi di dalamnya. Anda dapat masuk ke GitHub dan membuka Pengaturan → Aplikasi → Aplikasi OAuth Resmi untuk mencabut pemberian otorisasi dan token akses. Saya akan melakukan hal yang sama, karena, dalam tangkapan layar di atas, hibah Otorisasi ditampilkan secara publik.

Sekarang Anda memiliki pandangan luas tentang bagaimana OAuth 2.Anda dapat membaca lebih lanjut tentang pemberian otorisasi dan detail protokol lainnya yang lebih baik dan bagaimana panggilan API dilakukan di sini.

Instal Dolphin Emulator terbaru untuk Gamecube & Wii di Linux
Dolphin Emulator memungkinkan Anda memainkan game Gamecube & Wii pilihan Anda di Komputer Pribadi (PC) Linux. Menjadi emulator game sumber terbuka da...
Cara Menggunakan Cheat Engine GameConqueror di Linux
Artikel ini mencakup panduan tentang menggunakan mesin cheat GameConqueror di Linux. Banyak pengguna yang bermain game di Windows sering menggunakan a...
Emulator Konsol Game Terbaik untuk Linux
Artikel ini akan mencantumkan perangkat lunak emulasi konsol game populer yang tersedia untuk Linux. Emulasi adalah lapisan kompatibilitas perangkat l...