Outlook任务窗格插件通过SSO直接调用Microsoft Graph的方法问询
直接从Office插件通过SSO调用Microsoft Graph API的解决方案
可以直接从插件调用Microsoft Graph API,你遇到的受众错误是因为默认获取的令牌受众是你的插件Azure应用,而非Microsoft Graph。调整以下配置即可解决:
修改Azure应用注册的API权限:
在Azure门户的应用注册中,添加Microsoft Graph的委托权限(比如User.Read、Mail.Read等按需选择),完成后点击「授予管理员同意」(针对租户场景,个人账号可跳过此步)。更新插件清单配置:
在插件的manifest.xml里,确保WebApplicationInfo部分的Resource值设为https://graph.microsoft.com,并在Scopes中包含你需要的Graph权限,示例:<WebApplicationInfo> <Id>你的Azure应用客户端ID</Id> <Resource>https://graph.microsoft.com</Resource> <Scopes>User.Read Mail.Read</Scopes> </WebApplicationInfo>调用getAccessToken时指定资源:
调用Office.auth.getAccessToken()时,传入资源参数指定Microsoft Graph,示例代码:Office.auth.getAccessToken({ resource: "https://graph.microsoft.com" }) .then(token => { // 使用该令牌调用Microsoft Graph API fetch("https://graph.microsoft.com/v1.0/me", { headers: { Authorization: `Bearer ${token}` } }); }) .catch(error => console.error(error));验证令牌受众:
拿到令牌后,可通过jwt.ms解码,确认aud字段值为https://graph.microsoft.com,此时令牌即可正常用于Graph API调用。
内容的提问来源于stack exchange,提问作者mohamedmoussa
相关产品推荐
相关产品推荐

