Tiết lộ : Tôi là một kỹ sư tại Auth0 .
Nó phụ thuộc vào một điểm chính ... bạn cần quyết định xem:
- bạn muốn trực tiếp dành một lượng thời gian đáng kể (và gián tiếp chi tiền) để xây dựng và / hoặc duy trì nhà cung cấp nhận dạng và máy chủ ủy quyền của riêng bạn
- hoặc bạn muốn chi tiền trực tiếp và sử dụng nhà cung cấp xác thực của bên thứ ba như Auth0.
Cả hai tùy chọn đều hoàn toàn khả thi theo quan điểm của các yêu cầu chức năng của bạn. Với sự phát triển tùy chỉnh, bạn có toàn quyền kiểm soát chức năng mà bạn quyết định hỗ trợ, vì vậy tôi sẽ tập trung một phần câu trả lời vào cách Auth0 có thể đáp ứng các yêu cầu bạn đã liệt kê .
Tuy nhiên, trước khi chuyển sang vấn đề đó, bất kể quyết định của bạn là gì, để xác thực, bạn nên tập trung vào OpenID Connect thay vì OAuth2. Cái sau sẽ được áp dụng nhiều hơn nếu bạn dự định cũng có API trong hỗn hợp và không chỉ tách khối nguyên khối thành các ứng dụng web riêng biệt.
Làm cách nào để di chuyển người dùng hiện tại sang hệ thống dựa trên Auth0?
Bạn có thể quyết định tiếp tục sử dụng cơ sở dữ liệu của mình và dựa vào Auth0 để cung cấp tất cả việc tuân thủ các giao thức liên quan đến xác thực mà bạn có thể cần sử dụng hoặc bạn có thể di chuyển người dùng của mình sang cơ sở dữ liệu được quản lý Auth0 và ngừng lo lắng về cách bạn lưu trữ và xác thực mật khẩu.
Nếu bạn muốn tiếp tục sử dụng cơ sở dữ liệu của mình, hãy xem Xác thực người dùng bằng tên người dùng và mật khẩu bằng cơ sở dữ liệu tùy chỉnh
Các ứng dụng thường dựa vào cơ sở dữ liệu người dùng để xác thực. Auth0 cho phép bạn dễ dàng kết nối với các kho lưu trữ này và sử dụng chúng làm nhà cung cấp nhận dạng trong khi vẫn giữ thông tin đăng nhập của người dùng và cung cấp nhiều tính năng bổ sung.
(Các tài liệu đề cập đến MySQL như một ví dụ, các công cụ cơ sở dữ liệu khác được hỗ trợ)
Mặt khác, bạn có thể di chuyển liền mạch thông tin đăng nhập của người dùng vào cơ sở dữ liệu Auth0 bằng cách tận dụng quy trình di chuyển được mô tả trong Di chuyển người dùng sang Auth0
Auth0 hỗ trợ tự động di chuyển người dùng sang Auth0 từ kết nối cơ sở dữ liệu tùy chỉnh. Tính năng này thêm người dùng của bạn vào cơ sở dữ liệu Auth0 cùng một lúc vì mỗi lần đăng nhập và tránh yêu cầu người dùng của bạn đặt lại tất cả mật khẩu của họ cùng một lúc.
Bạn cũng có thể tạo tất cả người dùng của mình trong Auth0 thông qua API quản lý nếu bạn muốn tất cả họ bắt đầu sử dụng thuật toán băm mật khẩu của chúng tôi cùng một lúc. Điều này có tác dụng phụ là yêu cầu người dùng đặt lại mật khẩu của họ.
Làm cách nào để tiếp tục sử dụng xác thực hai bước tùy chỉnh (câu hỏi xác minh)?
Đường ống xác thực được cung cấp bởi Auth0 hoàn toàn có thể tùy chỉnh thông qua việc sử dụng các quy tắc . Điều này có nghĩa là mặc dù bạn không phải thực hiện bất kỳ nội dung nào liên quan đến giao thức, bạn vẫn có thể tinh chỉnh các chi tiết nhỏ về cách xác thực xảy ra trong ứng dụng của mình.
Điều này bao gồm khả năng tiếp tục sử dụng các câu hỏi xác minh hiện có của bạn như một cách để thực hiện quy trình xác thực hai bước trong đó người dùng cung cấp mật khẩu ban đầu được xác minh bởi Auth0 và sau đó bạn hỏi họ để biết thêm thông tin từ quy tắc tùy chỉnh. (quy tắc chỉ là Javascript nên khả năng là vô hạn)
Tuy nhiên, bạn cũng có thể quyết định bỏ các câu hỏi xác minh và thay vào đó hãy đi với Auth0 Guardian như một cách để tăng tính bảo mật của quy trình xác thực.
Làm cách nào để tùy chỉnh giao diện của giao diện người dùng xác thực?
Với Auth0, bạn có thể có giao diện người dùng xác thực sạch ngay lập tức bằng cách tận dụng các trang đăng nhập mặc định hoặc các tiện ích xác thực như Khóa . Tất cả những điều này hỗ trợ một số mức độ tùy chỉnh và bạn luôn có thể tự quyết định tự làm UI của mình và thay vào đó tận dụng các thư viện Auth0 cấp thấp hơn ( Auth0.js ) không gây ra ràng buộc nào trên giao diện người dùng.
Để biết thêm thông tin về tùy biến:
Làm thế nào để ngăn chặn các trang đồng ý rõ ràng?
Bạn có thể sử dụng Auth0 cả với tư cách là nhà cung cấp nhận dạng cho mục đích xác thực và cũng như máy chủ ủy quyền OAuth2 (hiện chỉ khả dụng ở khu vực Hoa Kỳ) cho API của bạn.
Là nhà cung cấp nhận dạng, bạn không phải lo lắng về các trang đồng ý, người dùng xác thực bằng thông tin đăng nhập của họ được quản lý bởi Auth0 và sau đó được chuyển hướng đến ứng dụng của bạn - đó là điều đó.
Trong OAuth2 dưới dạng kịch bản dịch vụ khi bật đồng ý, bản đồ đường bộ bao gồm cho phép bỏ qua các trang đồng ý cho một số ứng dụng nhất định.
Trong một lưu ý cuối cùng, đó có vẻ như là một dự án rất thú vị và đầy thách thức mà bạn đã đạt được, vì vậy, may mắn nhất là độc lập với quyết định cuối cùng của bạn.
Tôi đã trải qua một cái gì đó tương tự trong một công việc trước đây khi tôi phải triển khai lại hệ thống xác thực của một ứng dụng cũ. Chúng tôi đã triển khai nhà cung cấp nhận dạng và máy chủ ủy quyền của riêng mình và thành thật mà nói tôi vẫn có cảm giác rằng chúng tôi có thể đã quên một cái gì đó thực sự cần thiết.
Tôi nghĩ đó là vấn đề lớn nhất với việc bảo mật của chính bạn, sẽ có những thời hạn áp đặt các phím tắt và bảo mật không thực sự là một lĩnh vực tốt để tạo các phím tắt.
Nếu bạn có thêm câu hỏi hãy cho tôi biết nếu bạn nghĩ tôi có thể hữu ích.