Apa itu Token Token dan token_type di OAuth 2?

140

Saya mencoba menerapkan aliran Kredensial Pemilik & Kata Sandi Sumber Daya dari spec OAuth 2. Saya mengalami kesulitan memahami token_typenilai yang dikirim kembali dengan respons yang valid. Dalam spec semua contoh menunjukkan "token_type":"example"tetapi mengatakan itu seharusnya

token_type DIBUTUHKAN. Jenis token yang dikeluarkan seperti dijelaskan dalam Bagian 7.1 . Nilai tidak peka huruf besar-kecil.

Bisakah seseorang tolong jelaskan hal ini kepada saya?

Mikha
sumber

Jawaban:

158

token_typeadalah parameter dalam Access Token menghasilkan panggilan ke server Otorisasi yang pada dasarnya menggambarkan bagaimana access_token akan dibuat dan disajikan untuk panggilan akses sumber daya. Anda memberikan token_type dalam panggilan pembuatan token akses ke server otorisasi.

Jika Anda memberi Bearer(Default pada sebagian besar implementasi), access_tokendihasilkan dan dikirim kembali kepada Anda. Pembawa dapat dipahami sebagai "memberikan akses ke pembawa token ini." Satu token yang valid dan tidak ada pertanyaan. Di sisi lain jika Anda memilih Macdan sign_type(default hmac-sha-1pada sebagian besar implementasi), token akses dihasilkan dan dirahasiakan di Key Manager sebagai atribut, dan rahasia yang dienkripsi dikirim kembali sebagaiaccess_token

Ya, Anda dapat menggunakan implementasi Anda sendiri token_type, tetapi itu mungkin tidak masuk akal karena pengembang perlu mengikuti proses Anda daripada implementasi standar OAuth.

Abhishek Tyagi
sumber
28
Saya menemukan "memberikan akses ke pembawa token ini" membuatnya lebih mudah dimengerti. Ini sama dengan mengeluarkan cek "berikan uang kepada pembawa cek".
NVM
@NVM Terima kasih atas sarannya, tentu masuk akal. Saya telah memperbarui yang sama.
Abhishek Tyagi
33

Siapa pun dapat mendefinisikan "token_type" sebagai ekstensi OAuth 2.0, tetapi saat ini tipe "bearer" adalah yang paling umum.

https://tools.ietf.org/html/rfc6750

Pada dasarnya itulah yang digunakan Facebook. Implementasinya agak ketinggalan dari spec terbaru.

Jika Anda ingin lebih aman daripada Facebook (atau seaman OAuth 1.0 yang memiliki "tanda tangan"), Anda dapat menggunakan jenis token "mac".

Namun, ini akan sulit karena spesifikasi mac masih berubah dengan cepat.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

nov matake
sumber
14

Informasi Header Mozilla MDN

Bearer Token Token
keamanan dengan properti yang dapat dimiliki pihak mana pun yang memiliki token ("pembawa") menggunakan token dengan cara apa pun yang dapat dilakukan oleh pihak lain yang memilikinya. Menggunakan token pembawa tidak memerlukan pembawa untuk membuktikan kepemilikan bahan kunci kriptografis (bukti kepemilikan).

Token Pembawa atau Segarkan token dibuat untuk Anda oleh server Otentikasi. Ketika pengguna mengotentikasi aplikasi Anda (klien) server otentikasi kemudian pergi dan menghasilkan untuk Token Pembawa Anda (token penyegaran) yang kemudian dapat Anda gunakan untuk mendapatkan token akses.

The Bearer Token biasanya semacam nilai samar yang dibuat oleh server otentikasi, itu bukan acak itu dibuat berdasarkan pada pengguna memberi Anda akses dan klien aplikasi Anda mendapatkan akses.

pengguna8307736
sumber