Otentikasi versus otorisasi
Pengantar
Anda perlu mengamankan API Anda karena API memberikan akses kepada klien pihak ketiga ke data backend Anda. Jika Anda tidak mengamankan API Anda dengan benar, siapa pun bisa mengutak-atik data dan mengakses informasi sensitif. Tetapi meskipun klien diizinkan untuk mengakses data, Anda perlu mengontrol siapa yang dapat melakukan apa. Di sinilah otentikasi dan otorisasi berperan. Anda sekarang tahu bahwa meskipun kedengarannya mirip, keduanya tidak sama. Dalam bacaan ini, Anda akan mempelajari perbedaan antara autentikasi dan otorisasi serta bagaimana Anda dapat menggunakannya untuk melindungi titik akhir API.
Otentikasi
Otentikasi adalah proses memverifikasi kredensial pengguna. Masuk ke situs web dengan nama pengguna dan kata sandi adalah contoh otentikasi yang umum. Ketika nama pengguna dan kata sandi cocok, situs web akan mengenali pengguna dan menetapkan beberapa cookie di browser pengguna. Ketika pengguna mengunjungi halaman lain di situs web tersebut, browser akan mengirimkan cookie tersebut di dalam header permintaan HTTP. Situs web mengenali cookie serta data sesi sisi server dan oleh karena itu tidak meminta kredensial hingga pengguna keluar lagi.
Tetapi bagaimana cara kerjanya? Dengan otentikasi berbasis token dan biasanya melibatkan dua langkah dalam Arsitektur API. Pertama, klien mengidentifikasi dirinya sendiri dengan nama pengguna dan kata sandi. Kemudian server API memberikan token pembawa. Dari sana, klien menyertakan token pembawa dengan setiap panggilan API yang dilakukannya. Server API memverifikasinya dan kemudian mengizinkan klien untuk melakukan tindakan atau tidak. Di sinilah otorisasi masuk, tetapi lebih lanjut tentang ini nanti.
Jika kredensial tidak valid, klien akan menerima kode status HTTP '401 - Tidak Sah'.
Ini seperti datang ke kantor pada hari pertama, menyerahkan semua berkas dan dokumen Anda, lalu menerima kartu karyawan Anda. Setelah itu, hanya kartu karyawan Anda yang cukup untuk masuk ke dalam. Otentikasi bekerja seperti itu!
Dua langkah dalam proses otentikasi API dapat diwakili oleh dua diagram berikut.
Proses otentikasi: mendapatkan token akses
Panggilan API yang diautentikasi
Otorisasi
Bahkan dengan kartu karyawan Anda, Anda tidak dapat mengakses semua ruangan atau tempat di kantor. Ada beberapa tempat yang hanya dapat diakses oleh sekelompok orang tertentu yang memiliki hak istimewa tersebut. Otorisasi persis seperti itu. Otentikasi memungkinkan Anda masuk, otorisasi memungkinkan Anda bertindak. Setelah autentikasi, ia akan memeriksa apakah pengguna memiliki hak yang tepat untuk melakukan beberapa tugas.
Di sisi server, ini biasanya dilakukan dengan menugaskan pengguna ke sebuah grup atau sekumpulan grup. Kemudian, setelah memverifikasi token, kode akan memeriksa apakah pengguna termasuk dalam grup yang sesuai untuk melakukan tugas tersebut. Jika tidak, klien akan menerima kode status HTTP '403 Dilarang'.
Jadi, setelah mengidentifikasi hak istimewa, Anda dapat dengan hati-hati mendistribusikan semua hak istimewa ini ke dalam beberapa peran. Kemudian pemeriksaan otorisasi dilakukan di kode backend setiap titik akhir API yang memerlukan pemeriksaan peran pengguna. Pengembang memverifikasi apakah pengguna termasuk dalam grup atau peran yang sesuai, dan kemudian membuat keputusan untuk mengizinkan atau menolak tindakan tersebut.
Lapisan otorisasi tambahan dalam arsitektur API ini memastikan bahwa hanya orang dengan hak istimewa yang tepat yang dapat mengakses dan memodifikasi data. Sistem otorisasi dalam proyek API sangat penting karena dapat mencegah kerusakan data dan pembobolan data.
Otorisasi API
Menerapkan Otorisasi
Hak istimewa adalah tugas yang dilakukan oleh pengguna API dan merupakan blok bangunan dari lapisan otorisasi. Pertama, sebagai pengembang API, Anda mengidentifikasi hak istimewa yang diperlukan dalam proyek Anda. Misalnya, untuk toko buku, mungkin ada beberapa jenis hak istimewa berikut ini:
- Menelusuri buku-buku
- Menambahkan buku baru
- Mengedit buku
- Menghapus buku
- Melakukan pemesanan
Mungkin ada banyak hak istimewa lain seperti ini. Dan tidak semua pengguna memiliki semua hak istimewa. Sebagai contoh, pelanggan biasa tidak diizinkan untuk menambah dan mengedit buku, meskipun mereka telah diautentikasi dengan benar. Hanya manajer yang diizinkan untuk melakukan operasi tersebut.
Kesimpulan
Otentikasi dan otorisasi adalah konsep yang berbeda dalam fungsi dan cara pengaturannya dalam arsitektur API. Pengetahuan yang Anda peroleh dalam bacaan ini tentang kelompok pengguna, peran dan hak istimewa meletakkan dasar untuk semua langkah yang akan Anda pelajari nanti untuk menyiapkan lapisan keamanan yang tepat dalam proyek API Anda.
Tandai sebagai selesaiSukaTidak DisukaiLaporkan Masalah
There are no comments for now.