如何在MCP流程中强制VSCode使用指定Microsoft公共客户端ID?
解决VSCode在DCR不支持场景下固定使用微软公共客户端ID的方案
针对授权服务器(https://login.microsoftonline.com/common/v2.0)不支持Dynamic Client Registration(DCR)的情况,可通过以下方式确保VSCode始终使用指定的微软公共客户端ID(aebc6443-996d-45c2-90f0-388ff96faa56):
1. 直接配置VSCode设置固定客户端ID
打开VSCode的设置界面(快捷键Ctrl+,),切换到JSON视图(点击右上角的{}图标),添加对应配置项:
{ // 针对MCP服务的认证配置,若使用专属扩展,替换为对应扩展的配置键 "mcp-authentication.clientId": "aebc6443-996d-45c2-90f0-388ff96faa56", // 通用Azure认证场景可添加此项 "azure.authentication.clientId": "aebc6443-996d-45c2-90f0-388ff96faa56" }
保存设置后,VSCode会优先使用该固定ID发起认证,避免触发DCR流程。
2. 调整MCP Server的WWW-Authenticate挑战响应
在团队构建的MCP Server返回的WWW-Authenticate头中,修改resource_metadata字段,明确嵌入指定客户端ID:
WWW-Authenticate: Bearer realm="your-realm", resource_metadata={"client_id":"aebc6443-996d-45c2-90f0-388ff96faa56", ...}
VSCode收到挑战时会直接读取该client_id,无需用户手动输入,也不会尝试执行DCR。
3. 禁用VSCode扩展的自动DCR功能
若使用的MCP相关VSCode扩展默认开启DCR尝试,找到扩展的设置面板,关闭“自动动态客户端注册”类开关,强制扩展使用预设客户端ID发起认证。
内容的提问来源于stack exchange,提问作者izik lisbon
相关产品推荐
相关产品推荐

