如何在Azure Application Gateway中传递密钥以访问非匿名授权的后端服务
操作步骤:Application Gateway传递密钥访问非匿名授权Azure Function
1 提前获取Function授权密钥
- 登录Azure门户进入目标Function App管理页,左侧导航栏选择函数,选中需要对外暴露的具体函数
- 进入函数详情页后点击左侧的函数密钥菜单,可选择默认的
default函数级密钥,或者新建自定义权限的密钥,复制密钥内容备用 - 如果你需要一个密钥对当前Function App下所有函数生效,可到Function App左侧导航栏的应用密钥页面获取,可选
_master全局密钥或自定义的App级密钥
2 配置Application Gateway请求重写规则
- 进入Application Gateway管理页,左侧导航栏选择重写规则,点击添加重写规则集
- 自定义规则集名称,将规则集关联到你绑定了Function后端的监听器或对应的路径匹配规则上
- 点击添加规则,自定义规则名称,设置合适的规则优先级(数值越小优先级越高,无其他规则可填100)
- 推荐优先选择请求头传递密钥的方式(密钥不会出现在访问日志、链路追踪中,安全性更高):
- 点击添加操作,操作类型选择
设置请求头 - 头名称选择自定义,输入
x-functions-key - 头值类型选择静态,粘贴第一步复制的Function授权密钥
- 保存当前操作
- 点击添加操作,操作类型选择
- 若需要使用查询参数传递密钥,按以下方式配置:
- 点击添加操作,操作类型选择
设置URL查询参数 - 参数名输入
code - 参数值类型选择静态,粘贴第一步复制的Function授权密钥
- 操作类型选择
追加,避免覆盖用户请求中已有的同名查询参数 - 保存当前操作
- 点击添加操作,操作类型选择
- 所有操作配置完成后,保存整个重写规则集,等待Application Gateway配置生效(生效时长通常为1~5分钟)
3 验证配置有效性
- 直接访问Application Gateway绑定的域名+对应Function的触发路径,无需额外携带密钥参数,确认可以正常获取Function的返回结果
- 若返回401未授权错误,按以下顺序排查:
- 确认重写规则集已经正确关联到对应监听器/路径规则
- 确认填写的密钥权限匹配目标函数,没有拼写错误
- 确认Function App的IP访问限制规则中,已放行Application Gateway的所有出站公网IP
内容的提问来源于stack exchange,提问作者Aadhar
相关产品推荐
相关产品推荐

