当请求Mail.Read范围时,需要Office 365:管理员批准

时间:2020-06-17 07:55:49

标签: ios oauth outlook azure-active-directory office365

我正在尝试创建一个iOS应用程序,该应用程序允许读取Office 365用户的电子邮件。因此,我创建了一个多租户Azure Active Directory应用程序,并在OAuth身份验证期间请求以下范围:offline_access User.Read Mail.Read EWS.AccessAsUser.All

不幸的是,当我尝试以非管理员Office 365用户身份登录时,没有显示权限查看对话框,而是显示“%AppName%需要管理员批准”。 您能帮我弄清楚如何避免“需要管理员批准”对话框吗?

通过具有相同范围和相同帐户的其他电子邮件客户端(我已经测试过Edison Mail)登录会显示“授予”对话框(组织中没有人以前登录过该应用程序,管理员也没有事先批准过该对话框) )。如果需要更多详细信息,我将很乐意为您提供!

提前谢谢!

P.S。实际上,仅将offline_access User.Read留在范围中会显示“授予”对话框,但是流行的应用程序可以某种方式立即获得所有必需的权限...

1 个答案:

答案 0 :(得分:2)

尽管Mail.ReadEWS.AccessAsUser.All范围不需要在Graph API级别获得管理员批准,但组织可以关闭Office 365 user consent setting 让组织中的人们决定是否第三方应用可以访问其Office 365信息

最佳安全实践建议关闭此设置。如果将其关闭,则会发生以下两种情况之一。

  • 如果启用了admin consent workflow,则用户将获得一个表单,可以在其中提交请求以批准该应用。

  • 如果未启用管理员同意工作流程,则他们将看到“需要管理员批准”消息。

有关用户同意的更多信息,请访问here

在用户无法自己提供同意的情况下,您需要为用户提供一些指导,以使他们的组织批准您的应用。

我不确定Edison Mail为什么能正常工作,尽管Microsoft可能已将其应用程序注册列入白名单;我无权访问Office 365管理门户进行确认。