Kunci API atau bahkan Token termasuk dalam kategori mekanisme Autentikasi dan Otorisasi langsung, karena mereka memberikan akses ke sumber daya REST API yang terbuka. Mekanisme langsung seperti itu dapat digunakan dalam kasus penggunaan delegasi.
Untuk mendapatkan akses ke sumber daya atau sekumpulan sumber daya yang diekspos oleh titik akhir REST, diperlukan untuk memeriksa hak istimewa pemohon sesuai dengan identitasnya. Langkah pertama dari alur kerja adalah memverifikasi identitas dengan mengautentikasi permintaan; langkah berturut-turut adalah memeriksa identitas terhadap seperangkat aturan yang ditetapkan untuk mengotorisasi tingkat akses (yaitu membaca, menulis atau membaca / menulis). Setelah langkah-langkah tersebut diselesaikan, perhatian khusus selanjutnya adalah tingkat permintaan yang diizinkan , yang berarti berapa banyak permintaan per detik yang diizinkan untuk dilakukan oleh pemohon terhadap sumber daya yang diberikan.
OAuth (Open Authorization) adalah protokol standar untuk akses yang didelegasikan , sering digunakan oleh Perusahaan Internet besar untuk memberikan akses tanpa memberikan sandi. Jelasnya, OAuth adalah protokol yang memenuhi masalah yang disebutkan di atas: Autentikasi dan Otorisasi dengan memberikan akses yang didelegasikan secara aman ke sumber daya server atas nama pemilik sumber daya. Ini didasarkan pada mekanisme Token akses yang memungkinkan pihak ketiga untuk mendapatkan akses ke sumber daya yang dikelola oleh server atas nama pemilik sumber daya. Misalnya, ServiceX ingin mengakses Akun Google John Smith atas nama John, setelah John memberi otorisasi kepada delegasi; ServiceX kemudian akan mengeluarkan Token berbasis waktu untuk mengakses detail Akun Google, kemungkinan besar hanya dalam akses baca.
Konsep Kunci API sangat mirip dengan Token OAuth yang dijelaskan di atas. Perbedaan utama terletak pada tidak adanya delegasi: Pengguna secara langsung meminta Kunci tersebut ke penyedia layanan untuk interaksi terprogram yang berurutan. Kasus Kunci API juga berdasarkan waktu: Kunci sebagai Token OAuth tunduk pada sewa waktu, atau periode kedaluwarsa. Sebagai aspek tambahan, Kunci dan Token dapat dikenakan pembatasan tarif berdasarkan kontrak layanan, yaitu hanya sejumlah permintaan tertentu per detik yang dapat dilayani.
Singkatnya, pada kenyataannya tidak ada perbedaan nyata antara mekanisme Otentikasi dan Otorisasi tradisional dan versi berbasis Kunci / Token. Paradigmanya sedikit berbeda: alih-alih tetap menggunakan kembali kredensial di setiap dan setiap interaksi antara klien dan server, Key / Token dukungan digunakan yang membuat keseluruhan pengalaman interaksi lebih lancar dan kemungkinan lebih aman (sering kali, mengikuti standar JWT , Kunci dan Token ditandatangani secara digital oleh server untuk menghindari kerajinan).
- Autentikasi dan Otorisasi Langsung : Protokol berbasis kunci sebagai varian dari versi berbasis kredensial tradisional.
- Autentikasi dan Otorisasi yang Didelegasikan : seperti protokol berbasis OAuth, yang pada gilirannya menggunakan Token, sekali lagi sebagai varian dari versi berbasis kredensial (sasaran keseluruhan tidak mengungkapkan kata sandi kepada pihak ketiga mana pun).
Kedua kategori menggunakan alur kerja verifikasi identitas tradisional untuk interaksi pertama dengan server yang memiliki sumber daya yang diminati.