Tôi đã đọc câu trả lời cho câu hỏi này:
/programming/4102763/apache-basic-authentication-except-for-those-allowed
Nó giúp tôi hiểu cách không xác thực một số người dùng (theo IP):
<Directory /var/www/files/>
Require valid-user
Allow from 192.168.1.2
Satisfy Any
AuthUserFile /etc/apache2/basic.pwd
AuthName "Please enter username and password"
AuthType Basic
</Directory>
Hãy tưởng tượng tôi có DB này (Khác với DB được sử dụng để xác thực):
User IP
Mark 192.168.1.2
Mike 192.168.1.3
Karl 192.168.1.4
1- Tôi có thể cho phép tất cả các địa chỉ IP được lưu trữ trong DB bằng cách sử dụng cấu hình trong Apache không? Tôi không muốn một giải pháp tĩnh (DB đang thay đổi linh hoạt)?
2- Một vấn đề khác là mất quyền ủy quyền của IP được phép, Apache có thể sử dụng DB này để ủy quyền không, nếu người dùng được phép lấy các trang mà không cần xác thực? Chi tiết: Chúng tôi biết khi Apache xác thực người dùng, họ biết tên người dùng từ thông tin xác thực, nhưng với Allowing, tên người dùng sẽ bị mất, tôi muốn Apache trích xuất tên người dùng của IP mà nó cho phép từ cùng một bảng mà nó trích xuất địa chỉ IP?
CẬP NHẬT:
Lưu ý: Tôi nghĩ câu trả lời của Tony có thể hữu ích nhưng tôi cũng muốn các câu trả lời khác (điều này không bắt buộc tôi phải xây dựng một mô-đun).
Mục tiêu của tôi cho câu hỏi này là "đăng nhập một lần":
Tôi sử dụng freeradius để xác thực người dùng nội bộ (bên trong Mạng) vì vậy tôi không muốn Apache xác thực lại họ.
Tôi muốn Apache xác thực người dùng bên ngoài bằng LDAP.
- Giải pháp của tôi là sử dụng
Allow
Chỉ thị để cho phép người dùng nội bộ không có Xác thực nhưng tôi cần Cho phép họ sử dụng DB (Vấn đề đầu tiên)? và cố gắng định cấu hình Apache để ủy quyền cho người dùng nội bộ (mà tôi không xác thực) (vấn đề thứ hai)?
Lưu ý: Việc ủy quyền cho người dùng bên ngoài rất dễ dàng khi sử dụng LDAP (vì Apache Biết tên của người dùng mà họ đang xử lý từ thông tin xác thực).
Là giải pháp được đề xuất của tôi có đủ điều kiện để làm những gì tôi muốn làm không, nếu không, những gì bạn đề xuất là một giải pháp?