使用Azure AD API范围和图形作用域的访问令牌无法在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有效,如其受众指示的(声音声明)。

您需要获取两个令牌,一个令牌使用您的API范围,另一个令牌使用Graph API范围。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...