OAuth
APA ITU OAUTH?
Protokol terbuka untuk memungkinkan otorisasi yang aman dalam metode sederhana dan standar dari aplikasi web, seluler dan desktop - dari dokumen
- Alasan utama mengapa OAuth awalnya diatur adalah untuk mengizinkan data pengguna akses aplikasi tanpa harus memberikan kata sandi pengguna. Contoh kasus: Ingat kapan semua aplikasi pihak ketiga akan meminta Anda email + kata sandi untuk mengakses kontak gmail Anda, dll? Pelanggaran keamanan yang jelas karena aplikasi dapat bertahan dan dapat mengubah kata sandi Anda. Beberapa aplikasi akan menyimpan kata sandi pengguna dalam teks gugatan (risiko keamanan yang jelas). Satu -satunya cara pengguna dapat mencabut akses adalah dengan mengubah kata sandi
- Fitur pembeda utama OAuth adalah bahwa alih-alih membiarkan pengguna memasukkan kata sandi di aplikasi pihak ketiga, pengguna dialihkan ke server OAuth (aplikasi utama saya kira) untuk memasukkan kata sandi mereka dan kemudian dialihkan kembali ke aplikasi pihak ketiga yang mencari akses.
- Kasus penggunaan OAuth lainnya setelah kasus penggunaan awalnya adalah di sekitar organisasi yang membangun aplikasi pihak pertama di API mereka sendiri. Contoh kasus: Saat masuk ke layanan Google (YouTube, Gmail, dll.) Anda tidak masuk ke layanan secara langsung. Anda dialihkan ke Google OAuth Server (Accounts.google.com) di mana Anda masuk dan kemudian dialihkan ke layanan Google setelah otentikasi.
- Manfaatnya adalah memusatkan manajemen kata sandi karena alasan keamanan.
- Manfaat lain dari sentralisasi adalah memudahkan untuk meningkatkan otentikasi untuk semua pengguna/layanan
OAuth 2
- Ada beberapa kasus penggunaan seperti dalam aplikasi seluler, di mana implementasi awal OAuth tidak dapat digunakan dengan aman.
- Tujuan OAuth 2 adalah untuk membangun di OAuth 1 untuk aplikasi seluler dan menyederhanakan aspek yang membingungkan konsumen API.
- Masalah dengan Oauth 2 adalah bahwa ada konflik antara kontributor web dan perusahaan dari protokol. Banyak bidang pertengkaran dimasukkan ke dalam dokumen yang berbeda, meninggalkan banyak celah dalam protokol (sekarang disebut kerangka kerja dalam dokumen inti sebagai hasilnya).
- Hasilnya adalah bahwa implementasi web untuk OAuth 2 bisa menjadi rumit dan membingungkan karena Anda perlu mensintetisasi informasi dari draft yang berbeda
- Masalah Implementasi:
- Standar tidak memerlukan tipe token
- tidak memerlukan jenis hibah tertentu
- tidak memberikan panduan tentang ukuran string token
Membuat Aplikasi OAuth 2
- Buat akun pengembang di situs web layanan dan masukkan info dasar tentang aplikasi (nama, situs web, logo, dll.)
- Anda akan diberikan
client_id dan client_secret (kadang -kadang) yang akan digunakan aplikasi Anda untuk berinteraksi dengan layanan. - Penting untuk mendaftarkan satu atau lebih URL pengalihan (di mana layanan OAuth 2 akan mengembalikan pengguna setelah mereka mengesahkan aplikasi) untuk menghindari membuat aplikasi berbahaya yang dapat mencuri data pengguna.
- URL pengalihan harus menjadi titik akhir HTTPS untuk memberikan penyerang dari mencegat kode otorisasi dan membajak sesi
- Alih -alih mendaftarkan beberapa URL pengalihan untuk negara aplikasi yang berbeda, OAuth 2 menyediakan parameter " negara " yang dapat digunakan untuk menyandikan status aplikasi.
- Parameter adalah string yang akan dikembalikan setelah pengguna berwenang untuk membawanya ke lokasi yang tepat di aplikasi. String status harus dienkripsi dengan metode seperti JWT.
- Negara yang dihasilkan pada awalnya disimpan dalam sesi, setelah pengguna mengizinkan dan dialihkan ke aplikasi klien, server OAuth membandingkan string status dengan apa yang awalnya disimpan dalam sesi sebelum bertukar kode otorisasi dengan token akses
Konsep lain yang saya pelajari
keriting
- Berarti URL klien adalah alat baris perintah yang digunakan pengembang untuk mentransfer data ke dan dari server. Mari Anda berkomunikasi dengan server dengan menentukan URL (lokasi) dan data yang ingin Anda kirim.
- Mendukung berbagai protokol (http, https) dan berjalan di hampir setiap platform, membuatnya ideal untuk menguji komunikasi di hampir semua perangkat
- Manfaat:
- sangat portabel dan sebanding dengan hampir OS dan perangkat
- Berguna untuk menguji titik akhir
- bisa menjadi verbose, karenanya bermanfaat untuk debugging
- logging kesalahan yang bagus
Menjalankan skrip Python di web tanpa kerangka kerja seperti Flask atau Django
- Pertama -tama Anda harus mengatur skrip Python sebagai skrip CGI
- CGI adalah singkatan dari Common Gateway Interface. Ini memungkinkan aplikasi untuk berkomunikasi dengan aplikasi lain di internet
- Pertama-tama buat folder cig-bin dan pindahkan skrip python Anda ke sana
- Kemudian gunakan
http.server python yang dibangun untuk menjalankan server http sederhana - Jalankan
python -m http.server --cgi dari direktori yang berisi cgi -bin untuk memulai server http dalam mode CGI. - Arahkan ke
http://localhost:8000/cgi-bin/your-script.py untuk menjalankan skrip CGI. - Di
your-script.py perlu menyertakan print("Content-type:text/htmlrnrn") untuk mengatur jenis konten dari respons ke "teks/html" untuk mengaktifkan skrip di dalam browser seperti file html "
Shebang (Hashbang)
- Kode khusus dalam bentuk
#! Di awal file yang dapat dieksekusi dalam sistem operasi seperti UNIX. - Menentukan jalur ke interpreter yang dapat dieksekusi yang harus digunakan untuk menjalankan skrip.
- Misalnya shebang seperti
#!/usr/bin/env python pada awal skrip Python memberi tahu sistem untuk menggunakan interpreter ularahan yang terletak di usr/bin/env python untuk menjalankan skrip.
Sumber daya
- Dokumentasi OAuth
- Apa itu oauth dan mengapa itu penting? - oktadev di youtube
- OAuth 2 Server
- IBM: Apa itu Curl?