Akses penyimpanan token dan token ID untuk aplikasi tanpa server

Saya sedang menulis aplikasi tanpa server dengan AWS (Lambda, API Gateway, Cognito, dll) dan saya bertanya-tanya bagaimana cara terbaik mengamankan tumpukan saya.

Saya telah membaca bahwa untuk aplikasi yang menggunakan server, EC2 atau lainnya, praktik terbaiknya adalah menyimpan token ID pengguna di backend. Ini masuk akal, karena proses node akan memberi saya solusi jangka panjang untuk mempertahankan dan menggunakan kembali token ID. Sebaliknya, aplikasi tanpa server tidak memberikan kemewahan ini. Saya telah mempertimbangkan untuk menyimpannya di bagian depan - karena bagaimanapun juga, token JWT yang disediakan oleh cognito telah ditandatangani, dan oleh karena itu harus menjadi bukti kerusakan, tetapi ini tampaknya agak meresahkan bagi saya. Saya lebih memilih sistem di mana pengguna tidak memiliki akses langsung ke token mereka sendiri. Saya juga berpikir untuk meminta token baru untuk setiap permintaan yang dikirim ke Lambda, tetapi ini juga sepertinya solusi yang jauh dari sempurna.

Apakah ada praktik terbaik yang diterima seputar autentikasi dan otorisasi tanpa server? Apakah saya berada di jalur yang benar dengan hanya menyimpan token saya di sisi klien saat pengguna membuka aplikasi?


person Carl    schedule 08.05.2019    source sumber


Jawaban (1)


Saya tidak melihat masalah dalam menyimpan token Anda di sisi klien. Pengguna dapat menyalin dan menempelkan token dari permintaan header kapan saja. Token itu bukan rahasia. Itu tidak dapat dirusak karena ditandatangani secara digital.

Misalnya di bawah ini adalah header permintaan. Dalam Otorisasi disimpan token jwt yang dapat didekodekan di https://jwt.io/ tetapi tidak dapat dimodifikasi ,

Host: aa.aa.aa
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer: token234567890-eddedede
X-Requested-With: XMLHttpRequest
Connection: keep-alive

Selain itu, praktik terbaiknya adalah membuat token habis masa berlakunya dan memperbaruinya pada interval tertentu.

person Spiff    schedule 08.05.2019
comment
Itu asumsi saya. Saya akan melanjutkan dan melakukan itu. - person Carl; 08.05.2019