Tổng quan
Khi sử dụng khoá truy cập được đồng bộ hoá, người dùng sẽ xác thực bằng một nhà cung cấp khoá truy cập.
Để tạo và xác thực bằng khoá truy cập, bạn sẽ sử dụng API WebAuthn cho web hoặc API Trình quản lý thông tin xác thực đối với ứng dụng Android. Các API này xử lý hoạt động giao tiếp giữa ứng dụng và trình cung cấp khoá truy cập.
Mặc dù các API này được gọi qua một ứng dụng, chẳng hạn như trang web hoặc ứng dụng Android, nhưng bạn vẫn cần triển khai các chức năng còn lại trên máy chủ để hoàn tất các trường hợp sử dụng xác thực.
Quá trình triển khai khoá truy cập bao gồm 2 chức năng:
- Đăng ký khoá truy cập. Sử dụng API WebAuthn hoặc API Trình quản lý thông tin xác thực để cho phép người dùng tạo khoá truy cập. Lưu trữ khoá công khai liên kết trên máy chủ.
- Xác thực bằng khoá truy cập. Nhận yêu cầu xác thực từ máy chủ rồi dùng API WebAuthn hoặc API Trình quản lý thông tin xác thực để cho phép người dùng ký thử thách này bằng khoá truy cập của họ. Xác minh chữ ký trên máy chủ. Nếu chữ ký hợp lệ, hãy xác thực người dùng.
Thư viện phía máy chủ
Mặc dù có thể triển khai chức năng khoá truy cập phía máy chủ từ đầu, nhưng bạn nên dùng thư viện.
Máy chủ hỗ trợ việc tạo và xác thực khoá truy cập được gọi là máy chủ FIDO2 hoặc viết tắt là máy chủ FIDO. Ở đây, chúng ta sẽ tham chiếu đến các thư viện phía máy chủ có triển khai tính năng hỗ trợ khoá truy cập dưới dạng thư viện phía máy chủ FIDO.
Tại sao nên sử dụng thư viện?
Việc sử dụng thư viện phía máy chủ FIDO có một số ưu điểm:
- Thời gian và trải nghiệm của nhà phát triển. Quy cách WebAuthn rất phức tạp. Thư viện phía máy chủ FIDO có thể cung cấp các API đơn giản để triển khai khoá truy cập, giúp bạn tiết kiệm thời gian và tài nguyên phát triển.
- Khả năng bảo trì. Thông số kỹ thuật WebAuthn có thể thay đổi. Việc sử dụng phiên bản mới nhất của một thư viện được duy trì liên tục giúp đảm bảo quá trình triển khai của bạn luôn được cập nhật.
- Bảo mật và tuân thủ. Bạn muốn phương thức triển khai khoá truy cập của mình tuân thủ quy cách của WebAuthn và các yêu cầu về bảo mật của khoá truy cập đó. Thư viện phía máy chủ FIDO có thể giúp bạn đảm bảo quá trình triển khai diễn ra an toàn và tuân thủ quy cách. Tuỳ thuộc vào sản phẩm và ngành của bạn, việc triển khai cũng có thể phải tuân thủ các quy định yêu cầu bạn phải sử dụng một số tiêu chuẩn bảo mật cụ thể để xác thực.
Nếu có thể, hãy cân nhắc việc hỗ trợ tài chính cho các dự án nguồn mở mà sản phẩm của bạn cần sử dụng.
Thư viện
- Kho lưu trữ GitHub awesome-webauthn bao gồm một danh sách các thư viện phía máy chủ do cộng đồng tuyển chọn. Bạn sẽ tìm thấy các thư viện dành cho JavaScript và TypeScript, Go, Python và nhiều thư viện khác.
- Một bộ sưu tập thư viện có trên passkeys.dev và do Nhóm cộng đồng áp dụng W3C WebAuthn duy trì.
- Liên minh FIDO tham chiếu một tập hợp các máy chủ FIDO2.