首页 > 解决方案 > 带有 Web API 和 Microsoft Graph 的 Azure 应用

问题描述

我在https://apps.dev.microsoft.com注册了 Web App 和 API 。在我的 API 中,我在预授权应用程序中添加了我的 Web APP ID。到目前为止,一切都很好。它适用于以下范围:openidprofileapi://APP_ID_GUID/access_as_user.

我还需要访问 Microsoft Graph,但添加https://graph.microsof.com/user.read到我的范围会导致:

AADSTS700022:为输入参数范围提供的值无效,因为它包含多个资源。范围openid profile https://graph.microsoft.com/user.read api://APP_ID_GUID/access_as_user无效。

如何获得令牌以便我可以同时使用两者?我只需要列出 Active Directory 中的用户。我看到它的唯一方法是获取 Microsoft Graph 的单独访问令牌,并在我想从 AD 查询用户时使用它。

标签: azure-active-directorymicrosoft-graph-api

解决方案


访问令牌仅在一个 API 上有效。您需要两个访问令牌来调用两个 API。

只要您的应用已获得必要的同意,它就可以通过使用刷新令牌(您可以使用刷新令牌获取任何资源的访问令牌)或使用隐式授权流的隐藏 iframe(即MSAL.JS 使用)。


推荐阅读