Autentikasi API Web Dasar vs Pembawa

93

Saya telah membuat Autentikasi berbasis JWT di aplikasi API Web saya. Saya tidak dapat menemukan perbedaan antara

  1. Token Dasar
  2. Token Pembawa

Bisakah seseorang membantu saya?

SharmaPattar
sumber

Jawaban:

119

Skema otentikasi Basic dan Digest didedikasikan untuk otentikasi menggunakan nama pengguna dan rahasia (lihat RFC7616 dan RFC7617 ).

Skema otentikasi Bearer didedikasikan untuk otentikasi menggunakan token dan dijelaskan oleh RFC6750 . Meskipun skema ini berasal dari spesifikasi OAuth2, Anda masih dapat menggunakannya dalam konteks lain di mana token dipertukarkan antara klien dan server.

Mengenai otentikasi JWT dan karena ini adalah token, pilihan terbaik adalah skema otentikasi Bearer. Namun demikian, tidak ada yang menghalangi Anda untuk menggunakan skema kustom yang sesuai dengan kebutuhan Anda.

Florent Morselli
sumber
41

Otentikasi dasar mengirimkan kredensial sebagai pasangan ID pengguna / kata sandi, dikodekan menggunakan base64. Klien mengirimkan permintaan HTTP denganAuthorizationheader yang berisi kataBasickata diikuti dengan spasi danbase64-encodedstring nama pengguna: kata sandi.

Otorisasi: ZGVtbzpwQDU1dzByZA == Dasar

masukkan deskripsi gambar di sini Catatan: Untuk otentikasi dasar, karena ID pengguna dan kata sandi diteruskan melalui jaringan sebagai teks biasa (ini dikodekan base64, tetapi base64 adalah pengkodean yang dapat dibalik), skema otentikasi dasar tidak aman. HTTPS / TLS harus digunakan bersama dengan otentikasi dasar.


Otentikasi pembawa (juga disebut otentikasi token ) memiliki token keamanan yang disebut token pembawa. Nama "Otentikasi pembawa" dapat dipahami sebagai " memberikan akses ke pembawa token ini ". Token pembawa adalah string kriptik, biasanya dibuat oleh server sebagai tanggapan atas permintaan masuk. Klien harus mengirimkan token ini di header Otorisasi saat membuat permintaan ke sumber daya yang dilindungi:

Otorisasi: Pembawa <token>

masukkan deskripsi gambar di sini

Catatan: Sama halnya dengan otentikasi Dasar, otentikasi Bearer hanya boleh digunakan melalui HTTPS (SSL) .

Untuk informasi lebih lanjut link1 , link2

fgul
sumber
jadi keduanya adalah otorisasi dan bukan otorisasi yang sebenarnya. Yang pertama, Anda mengirim string yang dikodekan base64 dan mendapatkan otorisasi sementara di yang terakhir Anda mendapatkan kembali token dan menggunakannya untuk mengakses sumber daya
brain storm
apa keuntungan memberikan token daripada nama pengguna / kata sandi?
Muhammad Umer
@MuhammadUmer Anda dapat mencabut token dan juga memberi mereka akses granular (yaitu hanya akses baca).
Mihai
Saya menemukan jawabannya dan Anda tidak perlu membaca db dengan token, Anda dapat menggunakan crypto untuk memvalidasi token, paling baik untuk layanan mikro yang tidak memiliki status sesi bersama, meskipun ada penyeimbang beban yang dapat memperbaiki satu pengguna untuk satu layanan, tetapi masih berkinerja.
Muhammad Umer