Tôi có một câu hỏi. Một khách hàng tôi đã làm một số công việc gần đây có một loạt các trang web với các cơ chế đăng nhập khác nhau. Anh đang tìm cách từ từ di chuyển sang cơ chế đăng nhập một lần cho trang web của mình (tất cả được viết bằng asp.net mvc
).Nhiều trang web, Thiết kế đăng nhập một lần
tôi đang xem xét các lựa chọn của tôi ở đây, vì vậy đây là một danh sách các yêu cầu:
- Nó phải được an toàn (duh)
- Nó cần phải hỗ trợ tính sử dụng thêm vượt trội so với các tên thông thường , địa chỉ công cụ (chẳng hạn như tiền hoặc tín dụng cho người dùng)
- Nó phải cung cấp một bảng điều khiển quản lý người dùng tập trung để thuận tiện cho bạn (tôi hiểu rằng đây sẽ là một dự án nhỏ trên bất kỳ giải pháp thiết kế nào tôi chọn)
- Nó phải tích hợp với w hiện tại ebsit mà không tái kỹ thuật toàn bộ sản phẩm (Tôi hiểu rằng điều này phụ thuộc vào việc triển khai sản phẩm hiện tại).
- Nó phải xử lý việc gửi email cho người dùng khi anh ấy đăng ký (để anh ta kích hoạt tài khoản của mình)
- Nó phải giải quyết người dùng khi anh ấy nhấp vào liên kết kích hoạt tôi trong email (Tôi hiểu rằng 5 và 6 yêu cầu một số hình thức của hệ thống khuôn mẫu email để hỗ trợ các email khác nhau cho mỗi ứng dụng)
tôi đã nghĩ đến việc tạo ra một thư viện làm việc cùng nhau với hình thức xác thực cho thấy rằng bất cứ điều gì phương pháp được yêu cầu (ví dụ như đăng nhập, đăng xuất, kích hoạt, vv và một dịch vụ nhỏ gọn để thực hiện kích hoạt từ email, xử lý đăng ký, v.v.
Có tính đến tải trọng của những thứ đã được bỏ ra để làm cho câu hỏi này ngắn gọn và đến điểm, điều này âm thanh như một thiết kế tốt?
Nhưng điều này có vẻ như là một vấn đề rất phổ biến nên không có bất kỳ dự án hiện có nào mà tôi có thể sử dụng?
Cảm ơn bạn đã đọc.
Chúng tôi đã làm điều đó thông qua một guid và cơ sở dữ liệu có một bảng "autologin" với thời gian hết hạn là 3 phút. Điều này giả định rằng tất cả các trang web có thể truy cập một cơ sở dữ liệu được chia sẻ duy nhất. – dvallejo
Tôi đã sử dụng cách tiếp cận này để lấy cảm hứng và tôi đã tạo một dấu hiệu đơn trên dịch vụ sử dụng mã thông báo để đảm bảo rằng yêu cầu không bị giả mạo. nó không cần chìa khóa máy vì người dùng được chuyển tiếp (trong điều kiện thực tế hoặc minh bạch) trong dịch vụ đăng nhập và khi được xác thực thành công quay trở lại url trả về nhận mã thông báo được mã hóa và yêu cầu dịch vụ đăng nhập giải mã nó. nếu thành công, thông tin người dùng được lưu trữ trong phiên (hoặc cookie hoặc bất kỳ cơ chế lưu trữ nào được sử dụng) – Yannis