Outlook getAccessToken 没有 return 清单中声明的​​范围

Outlook getAccessToken does not return Scopes declared in manifest

我有一个 Outlook Web 加载项,它应该从 MS-Graph 加载数据。因此,我添加了一个 App Registration,其中包含后端获取所需信息所需的范围。要请求我使用的令牌:

    OfficeRuntime.auth.getAccessToken({
        forMSGraphAccess: true
    })

此外,我将我的需求范围添加到 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

我的期望是应用注册和清单中定义的范围出现在生成的令牌中。 (去年我处理我的加载项时它们是什么)。事实上它们根本不存在,但令牌是有效的。

解码令牌:

这是为什么?如何将作用域放入令牌中?

令牌旨在仅具有“access_as_user”范围,其他范围必须由应用程序本身请求。 请参阅以下问题:https://github.com/OfficeDev/office-js/issues/1594

使图形请求正常工作的其他有用链接:

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