有关HTTP身份validation方案的建议(使用请求标头)

我在Heroku上托管了一个rails应用程序,它限制了使用代理服务的访问权限。 外部服务器充当所有请求的中介并处理用户身份validation。 用户通过身份validation后,服务器(我认为LDAP)会将用户名添加到请求标头中,并将其重定向到我的应用程序。

我想使用请求标头中的用户名来validation我的应用中的用户。 基本上,如果用户不存在,我会创建一个用户名(不需要密码),如果不是,我只会登录。我将把用户存储在我的应用程序的数据库中。

我该怎么做? 为此可以使用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 

我需要尽可能地certificate这一点。 是否可以采取其他安全措施来确保有人不能欺骗请求标头并访问我的网站?

我认为使用设计可能会有点矫枉过正,但你可以。 你只需要定义一个监狱长策略。 在设计或使用只有这个目的的监护人。