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

使用Azure Static Web Apps内置认证时如何对Azure APIM及Graph API鉴权

Azure Static Web Apps 内置认证问题解答

1. 内置认证场景下对APIM的身份认证方案

Azure Static Web Apps的内置认证默认不会返回令牌,需要你手动修改配置开启令牌获取能力:

  • 在项目根目录的staticwebapp.config.json中,找到identityProviders.azureActiveDirectory配置段,添加login参数和resourceScopes配置,把你APIM暴露的API权限scope添加到列表中
  • 配置生效后重新完成登录流程,再次调用/.auth/me接口,返回结果中会新增access_token、refresh_token字段
  • 调用APIM时直接将获取到的access_token放入Authorization请求头即可,和你之前自定义认证的调用逻辑完全一致,内置认证会自动完成令牌刷新,不需要你手动处理过期逻辑

2. 调用Microsoft Graph获取用户全量信息的方法

同样通过修改认证配置即可实现:

  • 在上述resourceScopes配置中添加Microsoft Graph的对应权限scope,比如需要读取用户基础信息就添加https://graph.microsoft.com/User.Read
  • 在Azure AD中找到静态Web Apps关联的应用注册,为添加的Graph权限完成管理员同意(如果是组织内使用的应用)
  • 配置生效后,你拿到的access_token已经拥有Graph接口的调用权限,直接请求Graph的/me接口即可获取用户全名、部门等所有你需要的扩展信息

3. 是否需要自行实现完整认证流程

你提到的所有需求都可以通过内置认证实现,完全不需要自行开发完整认证流程,全程仅需完成配置操作,没有额外的编码工作量:

  • 所有令牌的获取、刷新逻辑都由内置认证模块自动处理,不需要你写任何认证相关代码
  • 如果需要调整权限范围,只需要修改staticwebapp.config.json的scope配置和AAD应用注册的权限配置即可,适配成本极低

额外问题:userId字段的来源

这个userId是Azure Static Web Apps服务内部生成的用户唯一标识符,并非Azure AD中的Object ID:

  • 它的生成规则为{身份提供方标识}:{提供方返回的用户唯一ID的哈希值},比如AAD登录的用户前缀就是aad:
  • 该字段仅用于静态Web Apps服务内部标识用户,如果你需要Azure AD的Object ID,可以直接解析access_token中的oid字段获取,或者调用Graph接口查询即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:03