gpt4 book ai didi

ruby-on-rails - 关于 HTTP 身份验证方案的建议(使用请求 header )

转载 作者:可可西里 更新时间:2023-11-01 16:31:16 25 4
gpt4 key购买 nike

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

我想使用请求 header 中的用户名来验证我应用中的用户。基本上,如果该用户不存在,我会使用该用户名创建一个用户(不需要密码),如果不存在,我只会让他们登录。我会将用户存储在我的应用程序的数据库中。

我应该怎么做?是否可以使用 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

我需要让它尽可能地防弹。我是否可以采取其他安全措施来确保有人无法伪造请求 header 并访问我的网站?

最佳答案

我认为使用设计可能有点矫枉过正,但你可以。你只需要定义一个守望者策略。为此目的设计或仅使用 jail 长。

关于ruby-on-rails - 关于 HTTP 身份验证方案的建议(使用请求 header ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com