Đầ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ã.
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