使用 Azure AD API 范围和图形范围的访问令牌未在 Microsoft Graph 上进行身份验证

Access Token With Azure AD API Scopes and Graph Scops does not authenticate on Microsoft Graph

我有一个使用 Microsoft Graph 进行身份验证的 UWP 应用程序。我在 UWP App 上定义了如下范围

private readonly string[] _scopes = {"api://*******-***-****-***-********/access_as_user", "user.read"};

这成功获取令牌并成功登录并成功通过我的 API 进行身份验证。 问题是,当我尝试使用相同的令牌从 Microsoft Graph (使用对 https://graph.microsoft.com/v1.0/me/ 的 GET 请求) 获取用户信息时,出现错误,

{
    "error": {
        "code": "InvalidAuthenticationToken",
        "message": "Access token validation failure. Invalid audience.",
        "innerError": {
            "date": "2020-08-27T08:07:04",
            "request-id": "c9a729a0-d566-428a-a715-8d179af1fa8a"
        }
    }
}

我无法为我的后端和 Microsoft Graph 使用相同的令牌吗?

没有。访问令牌仅对一个 API 有效,如其受众(aud 声明)所示。

您需要获得两个令牌,一个在您的 API 范围内,另一个在 Graph API 范围内。