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

Azure Function认证失败:Function Key与OAuth2.0均返回401错误

Azure Function认证401问题排查方案

一、Function Key方式排查

  • 核对密钥类型与函数授权级别:
    1. 查看函数的function.json文件,确认authLevel字段值:
      • 若为"function",需使用函数级密钥或主机密钥
      • 若为"admin",仅能使用管理员级主机密钥
    2. 登录Azure门户,在Function App的「密钥」页面复制对应类型的最新密钥,避免使用已过期或重置的旧密钥
  • 检查请求头正确性:
    • 确保请求头字段为x-functions-key(全小写,无空格),值为复制的密钥,未误放在URL参数或其他位置
  • 排查函数代码拦截:检查函数代码中是否存在自定义的认证逻辑,覆盖了默认的密钥验证规则

二、OAuth2.0(App Registration)方式排查

  • 确认App Registration权限配置:
    1. 在Azure AD的App Registration中,添加「Azure Functions User」应用权限,并完成管理员同意
    2. 验证令牌的受众(Audience):使用JWT解码工具解析Bearer令牌,确认aud字段与Function App的应用ID URI(格式为api://<function-app-client-id>)完全匹配
  • 核对Function App认证配置:
    1. 在Function App的「认证」页面,确认已启用Azure AD身份验证,且租户ID、客户端ID与创建的App Registration一致
    2. 检查「允许的令牌颁发者」设置,确保包含你的Azure AD租户颁发的令牌(格式为https://login.microsoftonline.com/<tenant-id>/v2.0)
  • 验证令牌获取流程:
    1. 确认MVC后端获取令牌时,请求的token endpoint为https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
    2. 检查请求的scope参数是否为Function App的应用ID URI拼接/.default(例如api://xxxx-xxxx-xxxx/.default)
  • 排查令牌有效性:确认令牌未过期,且签名验证通过(可通过JWT解码工具查看exp字段和签名状态)

三、通用排查项

  • 检查IP限制配置:查看Function App的「网络」->「访问限制」,确认未设置仅允许特定IP访问,或已将MVC后端的IP加入允许列表
  • 查看函数日志:在Azure门户的Function App「监控」->「日志」中,查看401错误的详细日志信息,定位具体错误原因(如令牌无效、密钥不匹配、权限不足等)
  • 直接测试MVC后端调用:跳过Postman,使用MVC后端的实际代码发起请求,排除Postman配置错误的可能性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:22:13