我有一个Outlook web插件,它应该从MS-Graph加载数据。因此,我添加了一个应用程序注册与范围,后端需要获得所需的信息。要请求我使用的令牌,请执行以下操作:
OfficeRuntime.auth.getAccessToken({
forMSGraphAccess: true
})此外,我将needes作用域添加到manifest.xml中,如下所示:
<WebApplicationInfo>
<Id>${API_ID}</Id>
<Resource>api://${FULL_CLIENT_PATH}/${API_ID}</Resource>
<Scopes>
<Scope>Mail.Read</Scope>
<Scope>offline_access</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
<Scope>User.Read</Scope>
</Scopes>
</WebApplicationInfo>如下所述:
https://github.com/OfficeDev/office-js-docs-pr/blob/master/docs/develop/sso-in-office-add-ins.md https://github.com/OfficeDev/office-js-docs-pr/blob/master/docs/develop/authorize-to-microsoft-graph.md
我的期望是,在应用程序注册和清单中定义的作用域出现在结果令牌中。(去年我开发外接程序时就是这样)。事实上,它们根本不在那里,但令牌是有效的。
解码后的token:

为什么会这样呢?如何将作用域放入令牌中?
发布于 2021-01-15 17:27:30
令牌仅具有"access_as_user“作用域,其他作用域必须由应用程序本身请求。请参阅以下问题:https://github.com/OfficeDev/office-js/issues/1594
让Graph请求正常工作的其他有用链接:
https://docs.microsoft.com/de-de/azure/active-directory/develop/quickstart-v2-aspnet-core-web-api
https://docs.microsoft.com/en-us/office/dev/add-ins/develop/create-sso-office-add-ins-aspnet
https://docs.microsoft.com/de-de/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow
https://stackoverflow.com/questions/65721173
复制相似问题