You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby的Faraday库中设置NTLM协议的授权请求头

Faraday 配置 NTLM 授权请求头方案

可以实现该需求。Faraday 核心库未内置 NTLM 认证支持,可通过第三方中间件 faraday-ntlm 完成对应配置。

具体配置流程

1. 安装依赖

  • 全局安装命令:gem install faraday-ntlm
  • 若使用 Bundler 管理项目依赖,在 Gemfile 中添加如下配置后执行 bundle install 即可:
gem 'faraday-ntlm'

2. 初始化带 NTLM 认证的 Faraday 连接

配置示例如下,发起请求时中间件会自动处理 NTLM 握手流程并携带对应授权头:

require 'faraday'
require 'faraday/ntlm'

# 替换为目标服务的基础地址
conn = Faraday.new('https://target-service-domain.com') do |config|
  # NTLM 认证参数,domain 和 workstation 为可选参数,仅目标服务要求时填写
  config.ntlm('your_username', 'your_password', domain: 'your_service_domain', workstation: 'your_workstation_name')
  # 其他自定义配置,如适配器、解析中间件等
  config.adapter Faraday.default_adapter
end

# 正常发起请求即可
response = conn.get('/your-request-path')

3. 注意事项

  • NTLM 是基于连接的认证协议,建议搭配 faraday-net_http_persistent 适配器开启持久连接,减少重复握手的性能开销
  • 若请求返回 401 状态码,优先校验用户名、密码、域参数是否匹配目标服务要求,同时确认目标服务确实开启了 NTLM 认证支持
  • 访问 HTTPS 站点时若遇到证书校验错误,测试环境可临时添加 config.ssl.verify = false 跳过校验,生产环境必须开启证书校验保证安全

内容的提问来源于stack exchange,提问作者user3517175

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:36:02