Keamanan antarmuka pemrograman aplikasi web adalah sistem pengamanan pada akses pengguna atau integrasi sistem akses ke
antarmuka pemrograman aplikasi web tersebut.
Dengan kemudahan integrasi
antarmuka pemrograman aplikasi web, yang menjadi masalah adalah memastikan otentikasi dan otorisasi yang tepat untuk akses
antarmuka pemrograman aplikasi web tersebut.
antarmuka pemrograman aplikasi web dapat dibuat hanya memberikan akses pada
antarmuka pemrograman aplikasi web tertentu atau modul tertentu perlu memiliki hak akses berdasarkan otentikasi dan otorisasi yang tepat. Skema otentikasi yang tepat memungkinkan pembuat
antarmuka pemrograman aplikasi web (
antarmuka pemrograman aplikasi web atau layanan) untuk mengidentifikasi pengguna dengan benar (pengguna atau
aplikasi yang mengakses) dan mengevaluasi tingkat akses otorisasi. Dengan kata lain, pengguna dapat menggunakan metode akses tertentu (logika tertentu) berdasarkan akses atau kredensial yang telah diberikan.
Metode otentikasi dan otorisasi
web aplikasi selalu memerlukan otentikasi dari pengguna. Otentikasi bisa dilakukan dengan memasukkan kata sandi (password), baik statis maupun dinamis (one-time password), yang prinsip dasarnya berupa rahasia yang hanya diketahui oleh pengguna dan remote server saja. Berikut ini adalah metode-metode otentikasi dan otorisasi yang bisa digunakan:
String statis, yaitu kata sandi yang disediakan oleh
antarmuka pemrograman aplikasi web kepada pengguna akses.
Token dinamis, yaitu metode pemberian token dengan memberikan waktu akses dari layanan otentikasi.
Token yang didelegasikan ke pengguna, yaitu token untuk yang digunakan untuk masuk log (login) dan diberikan untuk otentikasi pengguna.
Metode di atas memberikan tingkat
Keamanan yang berbeda dan kemudahan integrasi. Seringkali, metode integrasi yang mudah akan menggunakan model
Keamanan terlemah.
Berikut ini penjelasan untuk metode-metode di atas:
= String statis
=
Dalam metode "string statis", pengguna atau klien
antarmuka pemrograman aplikasi web disisipkan string sebagai token setiap kali memanggil. Metode ini sering disebut sebagai otentikasi dasar. Dari sudut pandang
Keamanan, otentikasi dasar tidak terlalu bagus dari segi
Keamanan karena mengirimkan kata sandi pengguna melalui jaringan dalam teks pada setiap halaman yang diakses (kecuali protokol tingkat rendah yang aman, seperti SSL) untuk mengenkripsi semua transaksi. Dengan demikian, pengguna menjadi sangat rentan terhadap penganalisis paket di internet.
= Token dinamis
=
Jenis token ini memberikan waktu simpan atau kedaluwarsa yang disisipkan ke dalam token. Token memiliki waktu kedaluwarsa akses yang disebut time to live (TTL). Jika token sudah kedaluwarsa, pengguna harus mendapatkan token baru untuk kembali mendapatkan akses. Metode
antarmuka pemrograman aplikasi web memiliki algoritma pemeriksaan waktu kedaluwarsa, dan jika token sudah kedaluwarsa, permintaan untuk akses ke
antarmuka pemrograman aplikasi web tidak bisa dilakukan. Contoh token tersebut adalah JSON
web Token.
= Token yang didelegasikan ke pengguna
=
Jenis token ini digunakan dalam sistem di mana
aplikasi perlu mengakses
antarmuka pemrograman aplikasi web dengan pengguna
aplikasi tersebut, yaitu dengan menggunakan ID pengguna dan kata sandi ke
aplikasi. Kemudian, pengguna mendapatkan token yang memberikan izin pengguna untuk mengakses
antarmuka pemrograman aplikasi web.
Otorisasi OAuth 2.0 untuk memperoleh akses terbatas ke HTTP Service, baik atas nama pemilik dengan mengatur persetujuan akses, atau dengan memungkinkan
aplikasi untuk mendapatkan akses atas namanya sendiri.
Referensi