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

如何在Excel Add-in ASP.NET Core项目中获取自定义API访问令牌?

解决Office Add-in SSO获取Azure后端API令牌的问题

检查Azure AD应用配置

  • 确认Office Add-in应用已获取目标API权限:在Azure门户找到你的Office Add-in注册应用,进入「API权限」页面,添加目标Azure API的委托权限(SSO基于用户身份,需选委托类型),且必须完成管理员同意(租户级权限需此操作)。
  • 验证API范围格式准确性:你使用的api://zzzzz/c6c1f32b-5e55-4997-881a-753cc1d563b7需满足两个条件:
    • zzzzz必须与目标API应用的「应用ID URI」完全一致;
    • 后缀的c6c1f32b-5e55-4997-881a-753cc1d563b7要和API应用「公开API」中配置的自定义范围名称完全匹配(含大小写)。

调整getAccessToken调用逻辑

  • 明确请求参数:调用时需指定正确的参数,确保请求目标API的范围,示例代码如下:
    Office.auth.getAccessToken({
        allowSignInPrompt: true,
        allowConsentPrompt: true,
        forMSGraphAccess: false, // 非Graph API需设为false
        scopes: ["api://zzzzz/c6c1f32b-5e55-4997-881a-753cc1d563b7"]
    }).then(token => {
        // 使用令牌调用后端API
    }).catch(err => {
        console.error(err);
    });
    
  • 开启授权提示:若用户未授权过该API范围,需将allowConsentPrompt设为true,触发Office弹出授权窗口完成用户同意。

验证后端API的令牌验证逻辑

  • 核对受众(Audience)设置:目标API的验证逻辑需接受Office Add-in应用的客户端ID,或确保令牌的aud声明与API的应用ID URI(即api://zzzzz)匹配。
  • 检查令牌范围声明:拿到令牌后用jwt.ms解码,查看scp声明中是否包含你请求的自定义范围,若缺失则说明权限配置存在问题。

适配示例项目的默认配置

  • 替换默认权限配置:Office-Add-in-ASPNET-SSO示例默认针对Graph API,需修改Web.config或appsettings.json中的相关配置,将GraphScopes替换为你的自定义API范围。
  • 检查后端OBO流程配置:若示例通过On-Behalf-Of流程获取令牌,需确保后端应用已被授予目标API的权限,且OBO流程调用时请求的是正确的自定义范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:40:01