Tôi đã xem các tài liệu của Sinatra và chúng dường như chỉ tham chiếu đến xác thực HTTP. Tôi đang tìm một cách thực sự đơn giản để kiểm soát quyền truy cập vào các tuyến đường dựa trên người dùng được ủy quyền/xác thực qua máy chủ LDAP.Làm cách nào để thực hiện xác thực Sinatra LDAP thực sự đơn giản?
tôi đã xây dựng một lớp học mà không bit LDAP và trả về một đối tượng LDAP nếu người dùng đã được chứng thực và nil thành công nếu họ không có:
>>DirectoryUser.authenticate('user', 'password')
#<DirectoryUser:0x007ffb589a2328>
tôi có thể sử dụng để xác định xem họ đã được xác thực thành công hay không.
Là một bước tiếp theo tôi muốn ghép này thành một ứng dụng Sinatra đơn giản mà cung cấp một hình thức để thu thập người dùng LDAP và mật khẩu:
require 'directoryUser'
require 'sinatra'
enable :sessions
get '/form' do
username = params[:username]
password = params[:password]
haml :form
end
Sau đó, tôi muốn chỉ cho phép các tuyến đường nếu đối tượng 'DirectoryUser' tồn tại:
get '/protected' do # Only if DirectoryUser object exists
"This route is protected"
end
get '/unprotected' do
"This route is unprotected"
end
tôi đã dành giờ cố gắng tìm câu trả lời cho điều này, nhưng cho đến nay và dường như không thể tìm thấy bất cứ điều gì mà làm việc cho tôi.
Superb! - Tôi sẽ thử nó ngay bây giờ và cho bạn biết làm thế nào nó đi. Cảm ơn vì đã phản hồi. – user1513388
Điều này hoạt động hoàn hảo - cảm ơn bạn đã giúp đỡ! – user1513388