Office Add-in调用Office.auth.getAccessToken获取令牌报错13004求助
解决Office Add-in获取令牌错误(代码13004)
错误原因
错误代码13004明确指向清单中<Resource>节点的URL无效,本质是这个URL和你在Azure AD中注册的应用程序**标识符URI(Application ID URI)**不匹配,或者格式不符合要求。
<Resource>字段的含义
这个字段是Office插件关联的Azure AD应用的唯一标识URI,Azure AD会通过它识别要颁发令牌的目标应用,必须和Azure AD后台注册的应用ID URI完全一致。
适配自有网站授权的修改步骤
1. 获取Azure AD应用的正确标识符URI
登录Azure门户,找到你为插件注册的Azure AD应用:
- 进入应用的概述页面,查看「应用程序ID URI」;
- 或者进入公开API页面,查看已注册的「标识符URI」列表,选你要使用的那个。
2. 修改清单中的<Resource>值
将清单里的<Resource>内容替换为上面获取到的URI,注意以下规则:
- 格式必须和Azure AD中注册的完全一致,不能随意添加额外路径(比如你原来的
/login是多余的,除非你在Azure AD里特意注册了带这个路径的URI); - 本地开发时,若用localhost,端口要和插件运行的端口一致(比如插件跑在3000,就是
api://localhost:3000/你的应用ID); - 生产环境替换为自有网站的实际域名,比如
api://your-website-domain.com/你的应用ID。
示例修改后的清单片段:
<WebApplicationInfo> <Id>你的应用ID-GUID</Id> <Resource>api://your-website-domain.com/你的应用ID-GUID</Resource> <Scopes> <!-- 若访问自有API,替换为你自定义的权限范围;若访问MS Graph,保留原有Scopes --> <Scope>your-api-scope</Scope> <Scope>profile</Scope> <Scope>openid</Scope> </Scopes> </WebApplicationInfo>
3. 额外注意事项
- 如果你代码中设置了
forMSGraphAccess: true,这是用来获取访问Microsoft Graph的令牌,此时<Resource>应该指向MS Graph的资源(https://graph.microsoft.com),但你当前的需求是适配自有网站授权,建议将forMSGraphAccess改为false,同时把<Scopes>替换为自有API定义的权限范围; - 修改清单后,需要重新部署或侧载插件,确保新的清单生效。
内容的提问来源于stack exchange,提问作者Alibb
相关产品推荐
相关产品推荐

