Xác thực API Web Cơ bản so với Bearer


89

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

  1. Mã thông báo cơ bản
  2. Bearer Token

Ai đó có thể vui lòng giúp tôi?

Câu trả lời:


117

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 RFC7616RFC7617 ).

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.


35

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ớiAuthorizationtiêu đề chứa từBasicword theo sau là khoảng trắng vàbase64-encodedtên người dùng chuỗi: mật khẩu.

Ủy quyền: ZGVtbzpwQDU1dzByZA cơ bản ==

nhập mô tả hình ảnh ở đây 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>

nhập mô tả hình ảnh ở đây

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) .

Để biết thêm thông tin , link1 , link2


vì vậy cả hai đều là ủy quyền và không thực sự ủy quyền. Trong lần đầu tiên, bạn gửi chuỗi được mã hóa base64 và được ủy quyền trong khi ở phần sau, bạn nhận lại mã thông báo và sử dụng nó để truy cập tài nguyên
cơn bão não

lợi thế của việc chuyển mã thông báo qua tên người dùng / mật khẩu là gì?
Muhammad Umer

@MuhammadUmer bạn có thể thu hồi mã thông báo và cũng cấp cho chúng quyền truy cập chi tiết (tức là chỉ quyền truy cập đọc).
Mihai

Tôi đã tìm thấy câu trả lời và đó là bạn không cần phải đọc db bằng mã thông báo, bạn có thể sử dụng tiền điện tử để xác thực mã thông báo, tốt nhất cho các dịch vụ nhỏ không có trạng thái phiên chia sẻ, mặc dù có bộ cân bằng tải có thể khắc phục một người dùng một dịch vụ, nhưng nó vẫn hoạt động hiệu quả.
Muhammad Umer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.