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

如何使用系统分配托管标识保护Azure Function仅接受合法令牌触发

配置步骤

你现在只给函数开启了系统分配托管标识,这个标识的作用是让该函数作为客户端访问其他Azure资源时的身份凭证,本身不会对入站请求做校验,要实现仅携带有效令牌的请求可访问,需要按以下步骤配置:

1. 启用函数应用的身份验证拦截

  • 进入目标函数对应的函数应用资源页面,在左侧导航栏找到「认证」菜单
  • 点击「添加标识提供者」,选择「Microsoft」作为身份源
  • 按以下规则配置参数:
    • 应用注册类型:如果要复用已生成的系统托管标识,选择「选择现有应用注册」,搜索你之前复制的Application ID对应的应用即可;也可以直接选择创建新的应用注册
    • 受支持账户类型:选择「我的组织仅单租户」即可
    • 访问限制:勾选「要求身份验证」
    • 未认证请求处理方式:选择「返回HTTP 401未授权」
  • 保存配置后等待1-2分钟生效

2. 调整调用端代码(可选优化)

你现有调用代码的令牌获取逻辑是可用的,如果你是单租户场景,建议补充租户ID参数避免令牌校验异常:

// 替换为你的Azure AD租户ID
var accessToken = await azureServiceTokenProvider.GetAccessTokenAsync(clientID, "xxxx-xxx-xxx-xxx");

3. 效果验证

配置生效后:

  • 直接在公共网络访问函数地址,会返回401状态码,匿名访问已被拦截
  • 调用端携带有效令牌发起的请求可以正常拿到函数返回结果

注意事项

即使你原函数的HTTP触发器Authorization level仍为Anonymous也不影响安全性,因为App Service层面的认证拦截会在请求到达函数代码之前就完成校验,无有效令牌的请求会被直接拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:03