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

如何在Visual Studio的.http文件中配置MongoDB Ops Manager认证头?

解决Visual Studio .http文件连接MongoDB Ops Manager的401认证问题

1. 修正Digest认证的配置方式

你当前.http文件里的Digest Auth写法错误——Digest认证不是直接将公钥和私钥用冒号拼接放在Authorization头里,它需要遵循HTTP Digest的协商流程。Visual Studio的.http文件支持标准Digest认证配置,正确写法如下:

@OpsManager_HostAddress = https://mongops.dummy.company:8443
@public_key = 你的实际公钥
@private_key = 你的实际私钥

### MongoDB Ops Manager Digest认证请求
GET {{OpsManager_HostAddress}}/api/public/v1.0
Accept: application/json
Authorization: Digest username="{{public_key}}", password="{{private_key}}"

更简便的操作方式:发送请求收到401后,点击请求面板的「授权」选项,选择「Digest」类型,填入公钥(用户名)和私钥(密码),Visual Studio会自动生成合规的Authorization头。

2. 用env.json安全存储密钥

在.http文件同目录创建env.json,格式如下:

{
  "dev": {
    "opsManagerHost": "https://mongops.dummy.company:8443",
    "opsManagerPublicKey": "你的实际公钥",
    "opsManagerPrivateKey": "你的实际私钥"
  }
}

然后在.http文件中引用环境变量:

### 基于环境变量的Digest请求
GET {{opsManagerHost}}/api/public/v1.0
Accept: application/json
Authorization: Digest username="{{opsManagerPublicKey}}", password="{{opsManagerPrivateKey}}"

注意:务必将env.json加入.gitignore,避免密钥泄露到代码仓库。

3. 结合ASP.NET Core用户机密使用

如果要复用ASP.NET Core的用户机密存储密钥:

  1. 右键ASP.NET Core项目 → 「管理用户机密」,在secrets.json中添加配置:
{
  "MongoDBOpsManager:Host": "https://mongops.dummy.company:8443",
  "MongoDBOpsManager:PublicKey": "你的实际公钥",
  "MongoDBOpsManager:PrivateKey": "你的实际私钥"
}
  1. 要在.http文件中读取用户机密,可通过脚本将机密导出到env.json,或手动同步密钥到环境变量(直接用env.json更便捷)。

补充:Basic Auth的正确用法

MongoDB Ops Manager的Basic Auth要求将公钥:私钥做Base64编码,例如公钥abc、私钥123,编码后得到YWJjOjEyMw==,头信息应为:

Authorization: Basic YWJjOjEyMw==

但Digest认证是MongoDB Ops Manager推荐的方式,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:12:14