Python 范围';Mail.ReadBasic.All';这并不意味着';不存在于资源上';00000003-0000-0000-c000-000000000000';

Python 范围';Mail.ReadBasic.All';这并不意味着';不存在于资源上';00000003-0000-0000-c000-000000000000';,python,microsoft-graph-api,microsoft-graph-mail,Python,Microsoft Graph Api,Microsoft Graph Mail,我正在连接到Microsoft Graph Api以下载所有用户电子邮件。我让它可以为进行身份验证的用户下载所有电子邮件,-它适用于scopeMail.ReadBasic。但是,当我尝试使用作用域Mail.ReadBasic.All作为“全局管理员”进行身份验证时,会出现以下错误: AADSTS650053:应用程序“xxx”请求的作用域“Mail.ReadBasic.All”在资源“00000003-0000-0000-c000-000000000000”上不存在。联系应用程序供应商。 应用程

我正在连接到Microsoft Graph Api以下载所有用户电子邮件。我让它可以为进行身份验证的用户下载所有电子邮件,-它适用于scopeMail.ReadBasic。但是,当我尝试使用作用域Mail.ReadBasic.All作为“全局管理员”进行身份验证时,会出现以下错误:

AADSTS650053:应用程序“xxx”请求的作用域“Mail.ReadBasic.All”在资源“00000003-0000-0000-c000-000000000000”上不存在。联系应用程序供应商。

应用程序已在Azure portal的设置中允许范围Mail.ReadBasic.All

def authenticate():
参数={
“客户端id”:设置[“应用程序id”],
“回复方式”:“表单发布”,
“范围”:“Mail.ReadBasic.All User.ReadBasic.All offline_access”,
“响应类型”:“代码”,
“重定向uri”:http://localhost:8000/",
“租户”:设置[“租户”]
}
url=”https://login.microsoftonline.com/common/oauth2/v2.0/authorize?“+urllib.parse.urlencode(参数)
返回url

Mail.ReadBasic.All仅作为应用程序权限范围而不是委派权限范围提供。您可以在portal.azure.com应用程序注册屏幕中对此应用程序进行许可,并在那里使用管理员许可,使其正常工作


这目前仅在/beta endpoint上受支持,而不是/v1.0 endpoint,因为它是一个预览权限范围。

我想最后也是:D您知道Mail.ReadBasic和Mail.ReadBasic.All之间有什么区别吗(都是应用程序权限)。从azure portal中的信息来看,它们似乎是相同的。没有区别,除了。当管理员同意时,All将允许您访问所有邮箱。嗯,这就是问题所在。。。经管理员同意,Mail.ReadBasic,我仍然可以访问租户中的所有邮箱。我们实际上正在过渡。当我们介绍邮件时,请阅读第一波图表。然后我们意识到引入*.All更有意义。我们不能改变邮件的行为。这将是一个突破性的改变。因此,当我们引入更细粒度的Mail.ReadBasic范围时,我们决定使用Mail.ReadBasic和Mail.ReadBasic.All。前者与Mail.Read一致。后者与User.ReadBasic.All等一致。啊,我明白了。非常感谢您抽出时间!