У меня есть приложение rails, размещенное на Heroku, доступ к которому ограничен с помощью прокси-службы.Внешний сервер выступает в качестве посредника для всех запросов и обрабатывает аутентификацию пользователя.После аутентификации пользователя сервер (я думаю, LDAP) добавляет имя пользователя в заголовок запроса и перенаправляет его в мое приложение.
Я хотел бы использовать имя пользователя из заголовка запроса для аутентификации пользователей в моемприложение.По сути, если пользователь не существует, я бы создал пользователя с таким именем (пароль не требуется), а если нет, я бы просто вошел в систему. Я буду хранить пользователей в базе данных моего приложения.
Как следуетЯ сделаю это?Можно ли использовать Devise для этой цели?
Редактировать : Я получил это, работая с Devise / пользовательской стратегией Warden, например:
# config/initializers/my_strategy.rb
Warden::Strategies.add(:my_strategy) do
def valid?
true
end
def authenticate!
if !request.headers["my_key"]
fail!("You are not authorized to view this site.")
redirect!("proxy_url")
else
username = request.headers["my_key"]
user = User.find_by_username(username)
if user.nil?
user = User.create(:username => username)
end
success!(user)
end
end
end
#config/initializers/devise.rb
config.warden do |manager|
manager.default_strategies(:scope => :user).unshift :my_strategy
end
Мне нужно сделать это как можно более пуленепробиваемым.Могу ли я принять другие меры безопасности, чтобы кто-то не смог подделать заголовок запроса и получить доступ к моему сайту?