azure - OAuth 同意表单是否需要 Azure 的 User.Read 权限?
问题描述
我的多租户 Azure 应用程序只需要应用级 EWS 旧权限full_access_as_app
即可运行。此应用程序级别的权限只能由管理员同意 - 它非常强大,因为它为应用程序提供了对租户中每个 EWS 邮箱的读取和写入权限。
如果我作为 Azure 租户的管理员,在 AAD 配置中仅在后台授予我的应用程序这个单一权限,那么当我为我的租户运行应用程序时,一切正常。
但是,当您在 Azure 中创建新应用时,Azure 始终假定您将自动需要用户级 Graph APIUser.Read
权限。当您尝试删除权限时,您会收到此不祥的警告:
如果我忽略它,交互式 OAuth 同意书将不起作用。错误消息如下所示。
客户端在客户端应用程序注册的请求权限中未列出任何“AAD Graph”权限。或者,管理员没有同意租户。或者,检查请求中的应用程序标识符以确保它与配置的客户端应用程序标识符匹配。请联系您的管理员以修复配置或代表租户同意。
换句话说,该应用程序似乎无法为其他任何人的租户运行,因为他们的管理员无法同意。
我的假设是,这是因为 Azure 正在使用User.Read
权限来检查通过 OAuth 表单登录的人是否是管理员。换句话说,这个权限只需要这一次,在应用程序为管理员的租户运行之前。
查看实际的 OAuth 同意书,情况似乎确实如此。该应用程序想要登录并阅读我的个人资料,以检查我是否是管理员......或者在我看来是这样。
我是对的吗?我能找到的文档很少。
解决方案
推荐阅读
- mysql - 如何获取给定一周的员工时间表
- javascript - 使用三角学通过圆绘制等距平行线
- python - 根据多个依赖项在气流中安排重新运行任务
- regex - 正则表达式 - 模式部分匹配但不完全通过跳过模式
- c++ - 使用 gdbserver 远程调试 EV3 失败
- google-play - 如何获取 EMV 标签 9F19 令牌请求者 ID?
- playback - 获取视频播放错误(错误代码 -2):Roku 中的连接超时
- javascript - 电子应用程序:在电子生成器派生的 .exe 中保留数据
- javascript - Apex 图表文本在 dataLabel 中对齐样式
- android - 当 DialogFragment 时,带有 AutoCompleteTextView 的 TextInpuLayout 显示更短