Microsoft graph api 是否允许';Mail.Read';真正的意思是';Mail.Read.All';在Microsoft Graph API文档中?

Microsoft graph api 是否允许';Mail.Read';真正的意思是';Mail.Read.All';在Microsoft Graph API文档中?,microsoft-graph-api,Microsoft Graph Api,对于在中找到的文档,我有点困惑 Mail.Read列出了两次,但两次的含义似乎不同。第一个实例“[a]允许应用程序在用户邮箱中读取电子邮件”,而第二个实例“[a]允许应用程序在没有登录用户的情况下在所有邮箱中读取邮件”。第二个听起来应该是“全部”限定词,不应该与第一个混淆,因为它们做的事情不同 当权限范围是先决条件()时,这一点尤其重要。我们能期待什么样的行为 那么,我的主要问题是,我是否正确地认为,没有办法授予授权,允许所有邮件由登录用户读取?相反,我们必须只使用应用程序权限?文档给了我一点希

对于在中找到的文档,我有点困惑

Mail.Read列出了两次,但两次的含义似乎不同。第一个实例“[a]允许应用程序在用户邮箱中读取电子邮件”,而第二个实例“[a]允许应用程序在没有登录用户的情况下在所有邮箱中读取邮件”。第二个听起来应该是“全部”限定词,不应该与第一个混淆,因为它们做的事情不同

当权限范围是先决条件()时,这一点尤其重要。我们能期待什么样的行为


那么,我的主要问题是,我是否正确地认为,没有办法授予授权,允许所有邮件由登录用户读取?相反,我们必须只使用应用程序权限?文档给了我一点希望,即不需要应用程序权限就可以实现,但试用和错误表明并非如此。

有一个单独的
邮件。阅读
应用程序和委托权限的权限

首先看一看标题为“仅应用程序与授权权限”的部分

权限范围可以是仅应用程序或委派。仅应用程序范围 (也称为应用程序角色)授予应用程序完整的权限集 由范围提供。仅应用程序作用域通常由以下应用程序使用: 在没有登录用户的情况下作为服务运行

委派权限范围适用于代表用户的应用程序。 这些作用域委托已登录用户的权限,允许 要充当用户的应用程序。授予应用程序的实际权限 将是 作用域授予的特权和已登录用户拥有的特权 用户。例如,如果权限范围授予委派的权限 写入所有目录对象,但登录用户具有权限 只有更新自己的用户配置文件,应用程序才能 写入已登录用户的配置文件,但不写入其他对象

“不需要管理员同意的权限”是委派权限,“需要管理员同意的仅应用程序权限”是仅应用程序权限,这就是它显示两次的原因

接下来要认识到的是,当您获得一个委托令牌时,您的应用程序拥有的权限将是用户拥有的权限和通过同意授予的权限的交叉点。因此,使用登录用户的令牌,您将只能读取用户有权访问的邮件,其范围由
mail.read.Shared

Mail.Read.Shared
Read user and shared mail
Allows the app to read mail that the user can access, including the user's own and shared mail.
如果要访问租户中所有用户的邮件,则必须拥有具有该访问级别的用户帐户。。。或者,您需要使用授予该访问范围的仅应用程序令牌

Mail.Read
Read mail in all mailboxes
Allows the app to read mail in all mailboxes without a signed-in user.

让我知道这是否有帮助

最后一点我不确定。你是说管理员只能通过授权权限访问租户中的所有电子邮件?我想文件会同意的,但我运气不好。这就是我对文档的问题的本质。我只是做错了什么,或者文档实际上在这一点上有点误导性,除了应用程序权限之外,这真的是不可能的。我认为这里的“admin”是一个超载的术语。租户管理员与Exchange/邮箱管理员不同。你能详细说明你试图使用的用户帐户类型、你试图访问的邮箱以及你遇到的具体错误吗?我使用的是一个公司管理员帐户,在我的帐户中它与全局管理员帐户相同。当我尝试访问任何邮箱时,会出现403个错误。与其诊断我的问题(这可能是离题的),我倒不如确信这是可能的,而且我只是做错了什么。非常感谢您的帮助,我只是不知道该往哪个方向走。据我所知,公司管理员是Azure Active Directory的全局管理员,而不是Exchange管理员。看见您需要以“Exchange服务管理员”的身份专门登录。更多关于O365角色的信息。这是我没有想到的角度。我感谢你的帮助。