Keselamatan

Pengurusan Log Masuk OAuth

Pengurusan Log Masuk OAuth

Perkara penting yang perlu anda ketahui mengenai OAuth

OAuth adalah sesuatu yang mesti diketahui oleh setiap pembangun. Sekiranya anda membuat aplikasi mandiri atau aplikasi pihak ketiga yang berintegrasi dengan beberapa perkhidmatan HTTP yang lain, anda perlu mengetahui bagaimana OAuth berfungsi untuk menyediakan pengguna anda perkhidmatan yang mudah digunakan dan bersepadu.

Ideanya adalah untuk membenarkan aplikasi pelanggan akses terhad ke maklumat pengguna tanpa pernah berkongsi bukti atau kata laluan pengguna. Kerangka OAuth bertanggungjawab untuk pertukaran yang diperlukan sebelum aplikasi mendapat maklumat anda.

Katakan anda mahu mendaftar ke Dev.ke (yang merupakan tempat yang bagus untuk pembangun bertukar idea) mereka membiarkan anda mendaftar menggunakan akaun GitHub anda. Bagaimana ia berlaku? Bagaimana mereka tahu bahawa anda memiliki akaun GitHub, yang anda gunakan untuk mendaftar?

Lebih penting lagi, bagaimana anda memastikan bahawa Dev.untuk tidak melampaui batas ketika menyangkut maklumat anda yang disimpan dengan GitHub?

Peserta OAuth

Kami akan berpegang pada contoh plugin GitHub editor Atom yang membolehkan pemaju mendorong kod ke GitHub secara langsung menggunakan antara muka Atom. Sebabnya sebagai contoh adalah kerana GitHub tidak menyembunyikan butiran di belakang tabir dan anda dapat melihat apa yang berlaku di bawah tudung.

Sebelum kita membahas perkara-perkara kerja OAuth. Mari tentukan pentas dengan mengenali semua peserta dalam pertukaran:

  1. Pemilik atau Pengguna Sumber: Pengguna ini adalah orang yang maklumat akaunnya perlu diakses (baca dan / atau tulis) agar dapat berfungsi dengan aplikasi.
  2. Pelanggan: Ini adalah aplikasi yang meminta izin anda untuk mengakses maklumat anda dari perkhidmatan lain. Dalam contoh kami, editor Atom adalah pelanggan.
  3. Sumber: Sumber adalah maklumat sebenar anda yang berada di pelayan di beberapa lokasi terpencil. Ini dapat diakses melalui API jika klien diberikan izin yang sesuai.
  4. Pelayan Kebenaran: Juga dihubungkan dengan melalui API. Pelayan ini dikendalikan oleh penyedia perkhidmatan (GitHub dalam contoh kami). Kedua-dua pelayan kebenaran dan pelayan sumber disebut sebagai API kerana dikendalikan oleh satu entiti, dalam hal ini GitHub, dan ditampilkan sebagai API kepada pemaju klien.

Pendaftaran OAuth

Prosesnya bermula apabila aplikasi Pelanggan sedang dibangunkan. Anda boleh pergi ke penyedia sumber dan mendaftar dengan portal pembangun mereka atau bahagian API di laman web. Anda juga harus memberikan URL panggil balik di mana pengguna akan diarahkan setelah menerima atau menolak untuk memberi kebenaran aplikasi yang diperlukan.

Sebagai contoh, jika anda pergi ke GitHub → Tetapan → Tetapan Pembangun dan klik "Daftar Permohonan Baru". Ini akan memberi anda a ID Pelanggan yang boleh dibuat umum dan a Rahsia Pelanggan yang, organisasi pemaju mesti menyimpan… rahsia.

Setelah ID dan rahsia Pelanggan diberikan kepada anda, pembangun, anda mesti jaga keselamatan dan keselamatan mereka kerana ia tidak akan ditunjukkan oleh pelayan Pengesahan lagi. Perkara yang sama berlaku untuk token lain yang akan dilampirkan (Lebih lanjut mengenai token kemudian).

Aliran Kerja OAuth 2

Anda telah mendaftarkan permohonan anda. Ia telah dikembangkan dan diuji dan sekarang pengguna sudah siap menggunakannya. Pengguna baru ketika mendaftar dengan perkhidmatan anda akan ditunjukkan pilihan "Log masuk dengan GitHub". Ini adalah langkah pertama.

Langkah 1: Permintaan kebenaran

Permintaan kebenaran adalah bahagian di mana tetingkap baru (atau permintaan serupa) dibuka dengan laman web sumber dan meminta pengguna untuk log masuk. Sekiranya anda sudah log masuk, pada peranti tersebut, maka langkah ini dilangkau dan anda hanya diminta oleh GitHub jika anda ingin memberi akses ke aplikasi pelanggan Atom. Ini lebih telus sekiranya Atom kerana mereka meminta anda pergi ke laman web GitHub secara manual dan memberi mereka kebenaran.

Semasa mengunjungi URL, anda akan meminta kebenaran.

Perhatikan URL yang menunjukkan bahawa ini adalah laman web selamat (HTTPS) oleh GitHub.Syarikat. Kini anda, pengguna, dapat memastikan bahawa anda berinteraksi secara langsung dengan GitHub. Atom hanya menunggu, agak luar biasa.

Tidak seperti Atom, kebanyakan aplikasi pelanggan memuatkan halaman masuk atau kebenaran secara automatik. Walaupun ini sangat mudah, ia juga boleh disalahgunakan, jika aplikasi pelanggan memutuskan untuk membuka pautan pancingan data. Untuk mengelakkannya, anda mesti selalu memeriksa URL yang anda tuju, dan pastikan URL itu betul dan menggunakan protokol HTTPS.

Langkah 2: Mendapatkan Pemberian Kebenaran

Untuk memberitahu pelanggan Atom, anda diberi token (pemberian kebenaran) yang kemudian diserahkan kepada klien Atom.

Setelah pengguna melakukan ini, tugas pengguna akan selesai. (Sebenarnya, pengguna biasa tidak sedar mengenai pertukaran pemberian kebenaran. Contoh GitHub dipilih untuk menunjukkan bahawa inilah yang berlaku).

Langkah 3: Mendapatkan token akses

Pemberian kebenaran masih bukan entiti yang memberi pelanggan akses kepada maklumat pengguna. Itu diperoleh dengan menggunakan sesuatu yang disebut token akses. Aplikasi klien mana yang akan dicuba dalam langkah ini.

Untuk melakukan ini, pelanggan kini harus memberikan pemberian kebenaran kepada pelayan kebenaran berserta bukti identiti tersendiri. Identiti disahkan menggunakan ID Pelanggan dan rahsia Pelanggan yang diberikan kepada aplikasi pelanggan lebih awal.

Pengesahan identiti dilakukan untuk memastikan pengguna tidak tertipu menggunakan aplikasi jahat yang berpura-pura menjadi aplikasi sah. Sebagai contoh, jika seseorang memutuskan untuk menamakannya sebagai Atom dengan nama, logo dan fungsi yang sama pengguna mungkin tertipu untuk memberi akses kepada pelanggan yang boleh menyalahgunakan maklumat anda. Mereka boleh mengintip atau bahkan bertindak tanpa persetujuan anda. Pelayan kebenaran memastikan bahawa pelanggan memang seperti yang ditunjukkan oleh penggunanya.

Setelah identiti disahkan dan pemberian kebenaran diterima, pelayan kebenaran melampirkan token ke aplikasi pelanggan. Anggaplah token itu sebagai gabungan kedua-dua nama pengguna dan kata laluan yang dapat diberikan kepada pelayan sumber untuk mengakses sumber yang dilindungi tertentu yang diizinkan oleh pemilik sumber untuk anda akses.

Akhirnya, dengan menggunakan token ini, aplikasi kini dapat memperoleh akses ke maklumat pengguna yang diperlukan dan sumber lain dari pelayan sumber.

Perhatikan, bagaimana secara keseluruhannya menukar nama pengguna dan kata laluan sebenar yang tidak pernah dikongsi dengan pelanggan? Itulah keindahan OAuth. Daripada memberikan nama pengguna dan kata laluan yang akan memberikan aplikasi semua akses ke sumber tersebut, ia menggunakan token sebagai gantinya. Token hanya dapat memperoleh akses terhad ke sumber.

Membatalkan Kebenaran

Katakan anda kehilangan akses ke peranti anda yang mempunyai aplikasi klien yang sah di dalamnya. Anda boleh log masuk ke GitHub dan pergi ke Tetapan → Aplikasi → Aplikasi OAuth yang dibenarkan untuk membatalkan pemberian kebenaran dan token akses. Saya akan melakukan perkara yang sama, kerana, di tangkapan skrin di atas, pemberian kebenaran ditunjukkan secara terbuka.

Sekarang anda mempunyai pandangan tentang bagaimana OAuth 2.Anda boleh membaca lebih lanjut mengenai pemberian kebenaran dan perincian protokol lain yang lebih baik dan bagaimana panggilan API dibuat di sini.

Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...
Tutorial Unity3D
Pengenalan Unity 3D Unity 3D adalah enjin pengembangan permainan yang kuat. Ini adalah platform silang yang memungkinkan anda membuat permainan untuk ...