Middleware Xác thực trong Hyperlane

Bảo mật là ưu tiên hàng đầu đối với bất kỳ ứng dụng web nào. Bạn phải kiểm soát ai có quyền truy cập vào tài nguyên của mình. Trong Hyperlane, bạn thực hiện việc này bằng cách sử dụng middleware. Middleware đóng vai trò như một người gác cổng. Nó chặn các yêu cầu trước khi chúng đến được mã nguồn của bạn.

Cách thức hoạt động của Middleware trong Hyperlane

Middleware sử dụng trait ServerHook. Nó có hai phần chính:

new(): Thiết lập kết nối. • handle(): Chạy cho mỗi yêu cầu. Đây là nơi bạn kiểm tra bảo mật.

Phương thức handle trả về một trạng thái:

Status::Continue: Yêu cầu an toàn. Cho phép đi qua. • Status::Reject: Yêu cầu không an toàn. Dừng lại tại đây.

Các mô hình xác thực phổ biến

  1. Kiểm tra Header Bạn có thể kiểm tra header Authorization. Nếu thiếu header này, hãy trả về trạng thái 401 Unauthorized. Từ chối yêu cầu ngay lập tức.

  2. Bearer Tokens Hầu hết các API đều sử dụng Bearer tokens. Middleware của bạn nên: • Kiểm tra xem header có bắt đầu bằng "Bearer " hay không. • Trích xuất token. • Lưu trữ token vào context để sử dụng sau này.

  3. Lọc thuộc tính (Attribute Filtering) Hyperlane cho phép bạn lọc các yêu cầu bằng các macro đơn giản. Bạn có thể hạn chế quyền truy cập theo: • Các phương thức HTTP (như GET hoặc POST). • Tên máy chủ (Host names). • Các đường dẫn cụ thể. • Các header Referer.

Các thực hành tốt nhất cho API bảo mật

• Thất bại nhanh (Fail fast). Từ chối các yêu cầu không hợp lệ sớm để tiết kiệm tài nguyên máy chủ. • Sử dụng các thuộc tính context. Lưu trữ các token đã được xác thực vào context để các phần khác của ứng dụng có thể đọc chúng mà không cần phân tích lại (re-parsing). • Xử lý CORS chính xác. Thiết lập các header CORS trước khi thực hiện xác thực. Điều này đảm bảo trình duyệt có thể đọc được các thông báo lỗi. • Phân lớp middleware. Sử dụng các số ưu tiên để quyết định thứ tự. Chạy CORS trước, sau đó mới đến xác thực. • Quản lý các stream. Nếu một yêu cầu gửi đi thất bại, hãy đóng stream để ngăn chặn lỗi.

Bằng cách sử dụng các công cụ này, bạn sẽ xây dựng được các hệ thống bảo mật và có tổ chức.

Source: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Project Code: https://github.com/hyperlane-dev/hyperlane