能否在同一Azure函数应用中禁用特定函数的AAD身份验证?
在启用AAD B2C EasyAuth的Azure函数应用中允许特定函数匿名访问
没问题!完全可以在已经启用AAD B2C应用服务身份验证(EasyAuth)的Azure函数应用里,单独让某个特定函数跳过身份验证、接受匿名调用。下面分享两种实操性很强的实现方法:
方法一:通过身份验证配置的「排除路径」直接跳过验证
这是最直接高效的方式,不需要额外配置代理:
- 登录Azure门户,找到你的函数应用,进入「身份验证」选项卡,点击「编辑」按钮
- 在身份提供程序的设置区域,找到「排除路径」选项
- 添加你想要匿名访问的函数的完整路由路径,比如你的函数路由是
/api/public-webhook,就把这个路径填进去;如果函数包含动态参数,还可以用通配符/api/public-webhook/*来匹配所有子路径 - 保存配置后,EasyAuth会自动跳过对这些路径的身份验证检查,其他函数仍然保持原有的AAD B2C验证要求
方法二:使用函数代理实现匿名访问(对应你提到的场景)
如果你倾向于用代理来隔离匿名路径和受保护路径,这种方式也很合适:
- 进入函数应用的「代理」选项卡,点击「添加」创建新代理
- 设置代理的「路由模板」为你想要对外暴露的匿名路径,比如
/api/anonymous-endpoint - 设置「后端URI」为你实际要指向的受保护函数的完整路径,比如
https://your-function-app.azurewebsites.net/api/target-function - 回到「身份验证」配置的「排除路径」,把刚才设置的代理路由模板
/api/anonymous-endpoint添加进去 - 这样用户访问代理路径时会跳过验证,代理再转发到实际函数,既实现了匿名访问,又能保留原函数的路由结构
关键注意事项
- 路径匹配区分大小写,务必保证填写的路径和函数的实际路由完全一致
- 如果你的函数应用使用了自定义域名,排除路径要对应自定义域名下的路径
- 测试时可以用Postman或curl直接访问目标路径,确认不需要携带AAD令牌就能正常返回结果
内容的提问来源于stack exchange,提问作者ThatCreole
相关产品推荐
相关产品推荐

