Chủ Nhật, 5 tháng 6, 2022

JWT là gì? | Khái niệm của Json Web Token | Phần 2

 


Putting all together

Đầu ra là 3 chuỗi Base64-URL được phân tách bằng dấu chấm có thể dễ dàng chuyển trong môi trường HTML và HTTP, đồng thời nhỏ gọn hơn khi so sánh với các tiêu chuẩn dự trên XML như SAML

Dưới đây là một JWT có header và payload đã được mã hóa, và nó đã được ký với một mật mã.



Nếu bạn muốn khám phá JWT và sử dụng thử, bạn có thể sử dụng jwt.io.

JSON Web Tokens hoạt động ra sao?

Trong xác thực khi người dùng đăng nhập thành công bằng thông tin của họ, một JWT sẽ được trả về. Phải hết sức cẩn thận để ngăn chặn các vấn đề bảo mật. Lưu ý bạn không nên giữ các token sống lâu hơn yêu cầu. Bạn cũng không nên lưu trữ dữ liệu nhạy cảm trong phiên làm việc của trình duyệt do thiếu bảo mật.

 Bất kỳ khi nào bạn muốn truy cập vào một route hoặc tài nguyên cần xác thực thì bạn bắt buộc phải gửi JWT kèm theo thường là trong tiêu đề bằng cách sử dụng Bearer.

Ví dụ: Authorization: Bearer <token>

Lưu ý rằng nếu bạn gửi mã thông báo JWT thông qua header HTTP, bạn nên cố gắng ngăn chúng quá lớn. Một số máy chủ không chấp nhận tiêu đề nhiều hơn 8KB. Nếu bạn đang cố gắng nhúng quá nhiều thông tin vào mã thông báo JWT, bạn cần có một giải pháp thay thế chẳng hạn như Auth0 Fine-Grained Authorization.

Nếu token được gửi trong Header, Cross-origin không phải là vấn đề vì nó không sử dụng cookie.

Sơ đồ sau thể hiện chó cách JWT được lấy và sử dụng để truy cập các API hoặc tài nguyên:


Xin lưu ý rằng với token đã ký, tất cả thông tin có trong token sẽ được hiển thị cho người dùng hoặc các bên khác, mặc dù họ không thể thay đổi nó. Diều này có nghĩa là bạn không nên đặt thông tin bí mật trong token.

Tại sao chúng ta nên sử dụng JWT?

Hãy để tôi nói cho bạn về lợi ích của JWT khi so sánh giữa SWT và SAML (Security Assertion Markup Language Tokens)

Vì JSON ít dài dòng hơn XML nên khi được mã hóa, kích thước của nó cũng nhỏ  hơn, làm cho JWT nhỏ gọn hơn SAML. 

Về mặt bảo mật, JWT chỉ có thể được ký đối xứng bằng một mật mã được chia sẻ bằng cách sử dụng thuật toán HMAC. Tuy nhiên, token JWT và SAML có thể sử dụng cặp khóa công khai hoặc riêng tu dưới dạng chứng chỉ X.509 để ký. Việc ký XML với chữ ký số XML mà không có các lỗ hổng bảo mật khó hiểu là rất khó khi so sánh với sự đơn giản của việc ký JSON.

0 nhận xét:

Đăng nhận xét

Bài viết mới

Giới Thiệu Gumroad và Cơ Hội Đăng Ký Nội Dung Đặc Biệt Của Tôi

     Trong thế giới kỹ thuật số ngày nay, việc dễ dàng tiếp cận các tài nguyên học tập và công cụ hỗ trợ là rất quan trọng. Đó chính là lý d...

Bài đăng