【问题标题】:Office 365: Admin Approval Required when Mail.Read scope is requestedOffice 365:请求 Mail.Read 范围时需要管理员批准
【发布时间】:2020-10-06 23:35:48
【问题描述】:

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

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

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

提前谢谢你!

附:在范围内只留下offline_access User.Read 实际上会显示授权对话框,但流行的应用程序可以通过某种方式一次获得所有必需的权限......

【问题讨论】:

  • 是否为您尝试访问的租户启用了 Exchange Web 服务?您可以仅使用图形 api 访问吗?似乎 ews 范围可能是您的问题,因为 mail.read 不需要管理员批准。
  • @Paulw11 感谢您的评论!我相信交换网络服务已启用.. 似乎 EWS 范围不是唯一的问题 - 如果我只留下 Mail.Read 管理员批准也需要:( 实际上,我使用与 Edison Mail 相同的范围..我猜这是 Azure 应用程序设置中的内容?
  • 奇怪。 Mail.Read 的文档说不需要管理员批准。
  • 是的,我也很惊讶...但实际上我的应用程序需要它:/

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


【解决方案1】:

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

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

  • 如果启用了admin consent workflow,那么用户将获得一个表单,他们可以在其中提交应用程序的批准请求。

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

更多关于用户同意的信息请见here

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

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

【讨论】:

  • 我必须注意,在我测试过的组织中,用户内容设置是打开的……这就是我最困惑的地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多