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

Azure AI Search密钥认证禁用报错:代码与服务端如何调整?

解决Azure AI Search密钥认证禁用导致的403错误

问题原因

你遇到的HTTP 403 (AuthenticationTypeDisabled)错误,是因为你的Azure AI Search资源禁用了密钥认证,但代码中仍使用API密钥作为身份验证方式,导致访问被拒绝。

解决方案

有两种可行的修改方式,可根据场景选择:

方案1:启用Azure AI Search的密钥认证(快速测试场景)

直接在Azure门户开启密钥认证,无需修改代码:

  • 登录Azure门户,定位到你的Azure AI Search资源
  • 进入左侧导航栏的「密钥」页面
  • 在「密钥认证」区域,勾选「启用密钥认证」选项
  • 点击页面顶部的「保存」按钮,等待设置生效后,原代码即可正常运行

方案2:改用托管身份认证(生产环境推荐)

如果出于安全考虑不想启用密钥认证,可配置托管身份进行访问,需要同时修改Azure服务配置和代码:

第一步:Azure服务配置

  1. 给你的Azure OpenAI资源启用系统托管身份:
    • 进入Azure OpenAI资源的「身份」页面,切换到「系统分配」标签
    • 勾选「状态」为「开启」,点击「保存」
  2. 给托管身份分配Azure AI Search的访问权限:
    • 进入Azure AI Search资源的「访问控制(IAM)」页面
    • 点击「添加角色分配」,选择「搜索数据读取者」或「搜索服务参与者」角色(根据需求选择)
    • 在「成员」标签中,选择「托管身份」,添加刚才启用的Azure OpenAI系统托管身份,完成分配

第二步:修改代码

将原代码中使用API密钥的认证方式替换为托管身份认证:

  1. 新增命名空间引用:
using Azure.Identity;
  1. 修改AzureSearchChatDataSource的认证配置:
options.AddDataSource(new AzureSearchChatDataSource()
{
    Endpoint = new Uri(searchEndpoint),
    IndexName = searchIndex,
    // 替换为托管身份认证
    Authentication = new DataSourceAuthentication(new DefaultAzureCredential()),
});

DefaultAzureCredential会自动适配不同环境的身份验证:本地开发时使用Azure CLI/Visual Studio登录的身份,生产环境中使用Azure OpenAI的系统托管身份。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:28:29