Pertanyaannya adalah pertanyaan umum, tetapi tidak masuk akal. JWT adalah jenis Token, dan OAuth adalah Kerangka yang menjelaskan cara mengeluarkan token.
Apa yang kita maksud dengan "framework"? Hanya urutan permintaan dan tanggapan, dan formatnya, yang dapat dan seharusnya digunakan untuk meminta token. OAuthv2 menjelaskan "aliran" atau jenis hibah yang terpisah untuk skenario yang berbeda, dan memiliki ekstensi yang berbeda (seperti PKCE) untuk memperluas keamanan arus tertentu.
Hasil permintaan-to-token melalui hibah OAuthV2 adalah ... token. Benda itu kemudian digunakan sebagai "token pembawa" yang berarti, pihak mana pun yang memegang token, dapat menyajikannya ketika membuat api permintaan-untuk-layanan (misalnya, "berapa saldo pada kartu nilai tersimpan saya?"). Sebagai token Pembawa, ini bekerja seperti uang tunai. Jika Anda memegangnya, Anda bisa menggunakannya. (Meskipun tidak seperti uang tunai, token tidak menggunakan-dan-kehilangan itu. Mungkin analogi yang lebih baik adalah tiket-untuk-naik sepanjang hari pada sistem angkutan umum, atau tiket sepanjang hari di Disneyworld.)
JWT adalah jenis token tertentu, dan JWT benar-benar dapat digunakan sebagai token OAuth Bearer. Sebenarnya, ini adalah praktik yang paling umum. Dalam terang itu, "JWT vs OAuth" adalah perbandingan apel dan gerobak apel.
Seringkali orang berpikir "token OAuth" selalu menyiratkan token buram - urutan acak karakter alfanumerik yang tidak mengandung makna yang melekat - yang diberikan oleh apotik token OAuth, yang kemudian dapat divalidasi hanya oleh sistem apotik OAuth yang sama. Tapi ini bukan satu-satunya token OAuth. Token buram adalah salah satu jenis token; JWT dapat digunakan sebagai jenis token OAuth yang berbeda.
JWT, sebaliknya, tidak buram. JWT bukan "penunjuk" atau referensi ke informasi. Ini sebenarnya mengandung banyak informasi spesifik, yang dapat diekstraksi dan ditafsirkan oleh pihak mana pun yang memiliki token. Karena JWT berisi informasi nyata, JWT bisa besar; 300 byte, 500 byte, atau lebih, tergantung pada klaim yang terkandung di dalamnya, dan algoritma yang digunakan untuk menandatanganinya. Ketika orang mengatakan "JWT memvalidasi diri" apa artinya, pemegang JWT dapat membukanya, memvalidasinya, dan kemudian membuat keputusan otorisasi berdasarkan klaim yang disajikan di dalamnya. Memvalidasi JWT berarti: memverifikasi strukturnya, mendekode pengkodean base64, memverifikasi kunci sudah benar, memverifikasi tanda tangan, kemudian memverifikasi klaim yang diperlukan ada di token, memeriksa kedaluwarsa. Itu bukan hal yang sederhana, bukan proses multi-langkah, tetapi tentu saja ada banyak perpustakaan dalam berbagai bahasa pemrograman yang heklp dengan ini, dan tentu saja ada kebijakan VerifyJWT yang membantu Anda melakukan ini dalam proksi Apigee Edge API. Intinya, pemegang atau penerima dapat memverifikasi token. Karena itu, kami mengatakan bahwa JWT mendukung "Federasi" - siapa pun dapat menghasilkan token, dan siapa saja dapat membaca dan memvalidasi token.
klaim khusus. Token JWT dan OAuth yang buram dapat membawa klaim khusus tentang subjek. keamanan. Keduanya adalah token pembawa. Keduanya harus dilindungi sebagai rahasia. kedaluwarsa. Keduanya dapat ditandai dengan kedaluwarsa. Keduanya dapat disegarkan. Mekanisme atau pengalaman otentikasi. Keduanya dapat menyajikan pengalaman pengguna yang sama.