Spojrzałem na dokumenty Sinatry i wydaje się, że tylko odwołują się do uwierzytelniania HTTP. Szukam naprawdę prostego sposobu kontrolowania dostępu do tras w oparciu o autoryzację użytkownika/uwierzytelnienie za pośrednictwem serwera LDAP.Jak wykonać naprawdę proste uwierzytelnianie Sinatra LDAP?
Już zbudowany klasy, która robi się trochę LDAP i zwraca obiekt LDAP, jeśli użytkownik został pomyślnie uwierzytelniony i zero, jeśli nie mają:
>>DirectoryUser.authenticate('user', 'password')
#<DirectoryUser:0x007ffb589a2328>
mogę to wykorzystać w celu ustalenia, czy z powodzeniem uwierzytelniono lub nie.
Jako następny krok chcę splatać to w prosty app Sinatra, który dostarcza formularz do zbierania użytkownika LDAP i hasło:
require 'directoryUser'
require 'sinatra'
enable :sessions
get '/form' do
username = params[:username]
password = params[:password]
haml :form
end
Potem chcesz zezwolić tylko trasy, jeśli obiekt do „DirectoryUser” istnieje:
get '/protected' do # Only if DirectoryUser object exists
"This route is protected"
end
get '/unprotected' do
"This route is unprotected"
end
spędziłem godziny próbuje znaleźć odpowiedź na to pytanie, ale do tej pory i nie wydaje się znaleźć coś, że pracuje dla mnie.
Superb! - Spróbuję teraz i dam ci znać, jak to działa. Dziękuję za odpowiedź. – user1513388
To działało idealnie - dzięki za pomoc! – user1513388