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

验证Azure静态Web应用发送给自带函数的令牌时如何获取对应kid的签名证书

结论:该验证方案完全可行

公钥查找失败的原因

你查询的均为Azure AD的公钥端点,而SWA内置认证签发的上下游调用令牌是SWA服务本身独立签发的,与Azure AD无关联,因此不会出现在AAD的公钥列表中。

签名公钥的正确获取路径

访问你的SWA实例专属的OpenID配置端点即可拿到对应公钥:

  1. 构造并访问地址:https://<你的SWA实际域名>/.auth/.well-known/openid-configuration,将域名替换为你自己的random-name.azurestaticapps.net即可
  2. 从返回的JSON配置中提取jwks_uri字段对应的地址,该地址就是SWA托管的签名公钥集端点
  3. 访问上述jwks地址,可直接找到和你令牌头中kid完全匹配的RSA公钥

令牌验证实现建议

你可以直接在函数代码中添加自定义验证逻辑,无需开启函数应用层面的强制认证,不会对现有业务造成影响:

  • 签名校验:使用JWKS中匹配到的对应kid的RSA公钥,验证RS256签名的合法性
  • 声明校验:需同时验证iss为你的SWA的/.auth地址、aud为你的函数应用域名、exp未超出有效期、nbf和iat在合法时间范围内
  • 密钥轮转适配:SWA会定期更新签名密钥,不要硬编码公钥或kid,建议你的验证逻辑支持定期自动从JWKS端点刷新公钥集,避免密钥轮转后验证失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:15:03