Hệ sinh thái mã nguồn mở Rust đã chào đón một framework xác thực mới có tên là Torii, được thiết kế để cung cấp cho các nhà phát triển quyền kiểm soát hoàn toàn đối với dữ liệu người dùng. Tuy nhiên, sự ra mắt của nó đã làm dấy lên một cuộc tranh luận rộng rãi giữa các nhà phát triển về ưu điểm của hệ thống xác thực tự lưu trữ so với các giải pháp bên thứ ba phổ biến như Auth0, Cognito, và WorkOS.
Chủ quyền Dữ liệu và Sự Tiện lợi
Torii định vị mình như một giải pháp cho các nhà phát triển muốn duy trì quyền sở hữu hoàn toàn đối với dữ liệu xác thực người dùng thay vì phụ thuộc vào các dịch vụ lưu trữ trên đám mây. Cách tiếp cận này đã được một số nhà phát triển đồng tình trong khi những người khác lại nghi ngờ về tính thực tế của nó. Cuộc thảo luận trong cộng đồng cho thấy có sự chia rẽ đáng kể giữa những người coi trọng chủ quyền dữ liệu và những người ưa thích sự tiện lợi của các nhà cung cấp dịch vụ xác thực đã được thiết lập.
Tôi không chắc rằng chủ quyền là điều mà nhiều ứng dụng mong muốn đối với loại dữ liệu nhạy cảm này, đó là lý do tại sao Cognito và Auth0 lại phổ biến đến vậy.
Quan điểm này nắm bắt được căng thẳng cốt lõi của cuộc tranh luận. Trong khi Torii cung cấp cho các nhà phát triển khả năng lưu trữ dữ liệu người dùng ở bất kỳ đâu họ chọn, nhiều tổ chức lại cố tình thuê ngoài việc xác thực cho các nhà cung cấp chuyên biệt để giảm rủi ro bảo mật và gánh nặng tuân thủ.
Tính năng của Torii:
- Kiến trúc dựa trên plugin
- Hỗ trợ cơ sở dữ liệu: SQLite, PostgreSQL, MySQL
- Phương thức xác thực: Passkey, OAuth2/OIDC
- Quyền chủ quyền dữ liệu hoàn toàn (dữ liệu người dùng được lưu trữ ở nơi bạn lựa chọn)
Mối quan ngại về Bảo mật và Đánh đổi
Bảo mật nổi lên như một chủ đề trung tâm trong phản hồi của cộng đồng đối với Torii. Một số nhà phát triển chỉ ra rằng xác thực là một lĩnh vực đặc biệt nhạy cảm, nơi mà những sai sót có thể dẫn đến hậu quả nghiêm trọng. Tài liệu của chính dự án cũng thừa nhận thực tế này, lưu ý rằng nó chưa trải qua kiểm toán bảo mật và không nên được sử dụng trong môi trường sản xuất.
Những người chỉ trích các giải pháp lưu trữ đã nhấn mạnh đến các vụ vi phạm bảo mật gần đây tại các công ty như Okta (sở hữu Auth0), cho thấy ngay cả các nhà cung cấp đã được thiết lập cũng không miễn nhiễm với các vấn đề bảo mật. Trong khi đó, những người ủng hộ dịch vụ xác thực của bên thứ ba lập luận rằng các nhà cung cấp chuyên biệt thường có nhiều nguồn lực dành cho bảo mật hơn so với các đội phát triển riêng lẻ.
Phân bổ Nguồn lực và Trọng tâm
Đối với nhiều nhà phát triển, quyết định giữa xác thực tự lưu trữ và bên thứ ba phụ thuộc vào việc phân bổ nguồn lực. Duy trì một hệ thống xác thực mạnh mẽ đòi hỏi sự chú ý và chuyên môn liên tục mà các đội nhỏ có thể không có.
Một số người bình luận lưu ý rằng các công ty khởi nghiệp và doanh nghiệp nhỏ thường chọn dịch vụ như Auth0 hoặc Cognito không phải vì họ không thể tự triển khai xác thực, mà vì họ muốn tập trung nguồn lực hạn chế của mình vào các tính năng sản phẩm cốt lõi. Xác thực, mặc dù quan trọng, được xem là cơ sở hạ tầng hơn là một yếu tố tạo nên sự khác biệt cho hầu hết các ứng dụng.
Yêu cầu Doanh nghiệp và Tích hợp
Yêu cầu doanh nghiệp nổi lên như một cân nhắc quan trọng khác trong cuộc thảo luận. Các ứng dụng B2B thường cần hỗ trợ các kịch bản xác thực phức tạp bao gồm SAML, SCIM và các nhà cung cấp danh tính khác nhau. Những yêu cầu này có thể làm cho việc xác thực trở nên đặc biệt khó khăn để triển khai và duy trì nội bộ.
Một số nhà phát triển đã chia sẻ kinh nghiệm về những khó khăn trong việc hỗ trợ nhu cầu xác thực doanh nghiệp, đặc biệt là xung quanh cấu hình nhà cung cấp danh tính và khắc phục sự cố. Những thách thức này giúp giải thích tại sao nhiều công ty chuyển sang các nhà cung cấp chuyên biệt bất chấp chi phí cao hơn và khả năng bị ràng buộc.
Các Giải pháp Xác thực Phổ biến Được Đề cập:
- Auth0 (thuộc sở hữu của Okta)
- AWS Cognito
- WorkOS
- Keycloak (giải pháp mã nguồn mở)
Sự trưởng thành của Framework và Hệ sinh thái
Là một dự án mới, Torii đối mặt với thách thức tự khẳng định mình trong một hệ sinh thái nơi các framework xác thực trưởng thành đã tồn tại cho các ngôn ngữ khác. Các thành viên cộng đồng đã chỉ ra các giải pháp đã được thiết lập như Passport.js cho Node.js và Devise cho Ruby on Rails, lưu ý rằng Rust thiếu các framework xác thực trưởng thành tương tự.
Khoảng trống này trong hệ sinh thái Rust làm cho Torii có khả năng trở nên có giá trị, với một người bình luận lưu ý rằng họ đã nghĩ về việc cần một thứ như thế này trong Rust chỉ một tuần trước đó. Kiến trúc dựa trên plugin của framework, hỗ trợ các tính năng như đăng nhập không cần mật khẩu, OAuth xã hội và passkeys, nhằm mục đích cung cấp sự linh hoạt mà các nhà phát triển cần trong khi vẫn duy trì quyền sở hữu dữ liệu.
Sự ra mắt của Torii nhấn mạnh sự căng thẳng liên tục giữa sự tiện lợi và kiểm soát trong phát triển ứng dụng hiện đại. Trong khi các nhà cung cấp xác thực bên thứ ba tiếp tục thống trị thị trường, các công cụ như Torii cung cấp một con đường thay thế cho các nhà phát triển ưu tiên chủ quyền dữ liệu và sẵn sàng đảm nhận các trách nhiệm liên quan.
Tham khảo: Torii: A Powerful Authentication Framework for Rust Applications