Tôi đã tạo Xác thực dựa trên JWT trong ứng dụng API Web của mình. Tôi không thể tìm ra sự khác biệt giữa
- Mã thông báo cơ bản
- Bearer Token
Ai đó có thể vui lòng giúp tôi?
Tôi đã tạo Xác thực dựa trên JWT trong ứng dụng API Web của mình. Tôi không thể tìm ra sự khác biệt giữa
Ai đó có thể vui lòng giúp tôi?
Câu trả lời:
Các lược đồ xác thực Cơ bản và Thông báo dành riêng cho việc xác thực bằng tên người dùng và bí mật (xem RFC7616 và RFC7617 ).
Lược đồ xác thực Bearer dành riêng cho việc xác thực bằng mã thông báo và được mô tả bởi RFC6750 . Ngay cả khi lược đồ này xuất phát từ một đặc tả OAuth2, bạn vẫn có thể sử dụng nó trong bất kỳ ngữ cảnh nào khác khi mã thông báo được trao đổi giữa máy khách và máy chủ.
Liên quan đến xác thực JWT và vì nó là một mã thông báo, lựa chọn tốt nhất là sơ đồ xác thực Bearer. Tuy nhiên, không có gì ngăn cản bạn sử dụng một chương trình tùy chỉnh có thể phù hợp với yêu cầu của bạn.
Xác thực cơ bản truyền thông tin xác thực dưới dạng cặp ID người dùng / mật khẩu, được mã hóa bằng base64. Máy khách gửi các yêu cầu HTTP vớiAuthorization
tiêu đề chứa từBasic
word theo sau là khoảng trắng vàbase64-encoded
tên người dùng chuỗi: mật khẩu.
Ủy quyền: ZGVtbzpwQDU1dzByZA cơ bản ==
Lưu ý: Đối với xác thực cơ bản, vì ID người dùng và mật khẩu được chuyển qua mạng dưới dạng văn bản rõ ràng (nó được mã hóa base64, nhưng base64 là mã hóa có thể đảo ngược), lược đồ xác thực cơ bản không an toàn. HTTPS / TLS nên được sử dụng cùng với xác thực cơ bản.
Xác thực mang (còn gọi là xác thực mã thông báo ) có các mã thông báo bảo mật được gọi là mã thông báo mang. Tên "Xác thực mang" có thể được hiểu là " cấp quyền truy cập cho người mang mã thông báo này ." Mã thông báo mang là một chuỗi khó hiểu, thường được tạo bởi máy chủ để phản hồi yêu cầu đăng nhập. Máy khách phải gửi mã thông báo này trong tiêu đề Ủy quyền khi đưa ra yêu cầu đối với các tài nguyên được bảo vệ:
Ủy quyền: Bearer <token>
Lưu ý: Tương tự như Xác thực cơ bản, Xác thực mang chỉ nên được sử dụng qua HTTPS (SSL) .