使用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范围。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...