Azure AI Search自定义技能无法保存authResourceId问题求助
解决Azure AI Search自定义Web Skill访问Entra ID保护的Azure Function时authResourceId丢失问题
问题本质
这是Azure门户UI的显示限制导致的假象:authResourceId字段在门户技能集编辑界面不会被渲染显示,但只要通过REST API或CLI正确配置并保存,该字段会被系统实际保留并生效,并非真正丢失。
解决流程
- 通过API/CLI确保authResourceId配置正确
- 避免直接在门户编辑技能集,改用REST API或Azure CLI创建/更新技能集,将
authResourceId设为Azure Function对应的Entra ID应用程序ID URI(格式通常为https://azurewebsites.net/<你的函数应用名>,或自定义的URI)。 - 示例REST请求体片段:
{ "skills": [ { "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", "name": "自定义技能名称", "uri": "https://<你的函数应用>.azurewebsites.net/api/<函数名>", "httpMethod": "POST", "authIdentity": "#Microsoft.Skills.Custom.WebApiSkill.MsEntra", "authResourceId": "https://azurewebsites.net/<你的函数应用名>", "inputs": [], "outputs": [] } ] }
- 避免直接在门户编辑技能集,改用REST API或Azure CLI创建/更新技能集,将
- 验证索引器运行状态
- 无需通过门户确认authResourceId是否存在,直接触发索引器运行,检查是否能正常访问受保护的Azure Function。
- 若仍认证失败,排查两个关键点:
- Azure AI Search服务的系统身份已被授予Azure Function的函数应用参与者权限,或包含
Microsoft.Web/sites/functions/invoke/action的自定义权限。 authResourceId的值与Azure Function的Entra ID应用注册中的应用程序ID URI完全一致。
- Azure AI Search服务的系统身份已被授予Azure Function的函数应用参与者权限,或包含
- 后续修改的注意事项
- 之后如需调整技能集配置,始终使用REST API或CLI操作,不要在门户编辑,防止未显示的authResourceId字段被意外清除。
补充说明
关闭Entra ID认证后功能正常,说明自定义技能和索引器的其他配置无问题,核心矛盾就是门户UI不支持展示和保留authResourceId字段,而非配置本身无效。
内容的提问来源于stack exchange,提问作者Yoo Matsuo
相关产品推荐
相关产品推荐

