Tôi muốn yêu cầu người dùng sử dụng thông tin đăng nhập/mật khẩu khi truy cập một số phần của ứng dụng GAE (Google App Engine). Tôi muốn giới hạn quyền truy cập vào nhóm người dùng được xác định trước, ví dụ: trên trang, nơi dữ liệu mới có thể được tải lên Datastore.Xác thực trên Google App Engine (trang web)
tôi thấy có 3 cách trên GAE thế nào điều này có thể được giải quyết, nhưng có vẻ như chỉ là người cuối cùng (là phức tạp nhất) có thể là một giải pháp cho vấn đề của tôi:
Sử dụng một bộ mô tả triển khai (
<security-constraint>
trong web.xml). Điều này là không tốt, vì những người dùng đó có quyền truy cập, ngay cả khi người xem đến trang quản trị của ứng dụng GAE, nơi họ có thể xem lịch sử thanh toán, duyệt Datastore, nhật ký, v.v ... và đây là điều tôi phải tránh.Sử dụng thông tin đăng nhập được liên kết (Mở ID) (https://developers.google.com/appengine/articles/openid) và cho phép người dùng sử dụng Google, Yahoo! hoặc các thông tin nhận dạng khác để đăng nhập. Nó không phải là một giải pháp, vì tôi muốn giới hạn quyền truy cập vào một nhóm nhỏ người dùng (tối đa 5) và không cho phép mọi người sử dụng ứng dụng.
Các tùy chọn khác là tạo ra đơn giản trang đăng nhập tùy chỉnh chỉ có thể thông qua HTTPS và cho phép người dùng gửi mật khẩu Tên truy nhập & trong một yêu cầu POST (nó có thể được đơn giản vì chúng ta có an toàn kết nối https) vào một servlet, trên servlet tạo ra một số mã định danh phiên với giá trị được chỉ định và làm cho nó trở thành một phần của mọi yêu cầu tiếp theo. Nó cũng cần phải kiểm tra mỗi lần người dùng gửi một yêu cầu GET hoặc POST nếu mã định danh phiên tồn tại và không hết hạn trong khi đó theo cách thủ công.
Bất kỳ đề xuất nào khác/tốt hơn về cách duy trì tài khoản quản trị viên? Có thể HttpSession
trợ giúp với biến thể cuối cùng không?
Kind Regards, Sten
Bạn đang sắp xếp hai vấn đề hoàn toàn riêng biệt tại đây, xác thực và ủy quyền. Bạn có thể kết hợp một trong hai giải pháp (xác thực) đầu tiên với giải pháp của riêng bạn để kiểm tra ủy quyền. Cách dễ nhất để thực hiện việc này là duy trì danh sách người dùng được phép trong kho dữ liệu và tra cứu người dùng khi họ đăng nhập để kiểm tra các quyền, như Peter và Adam đề xuất bên dưới. –