【问题标题】:Does Microsoft Graph work without User.Read scope?Microsoft Graph 是否可以在没有 User.Read 范围的情况下工作?
【发布时间】:2021-09-14 17:26:24
【问题描述】:

我的问题是,Microsoft Graph 是否可以在没有 User.Read 范围的情况下工作?我无法直接请求电子邮件配置文件 openid 权限。

它会引发 AccessDenied 错误。那么 User.Read 是电子邮件配置文件或 openid 的先决条件吗?

【问题讨论】:

  • 我在下面发布了我的想法,我是否在某些地方误解了?如果有任何进一步的问题,请随时告诉我们。

标签: microsoft-graph-api


【解决方案1】:

User.Read 只是使用MS Graph Get User 获取用户配置文件的委托权限。如果您的应用不需要读取用户个人资料,则您不需要此权限,但在大多数情况下您需要此权限,因为您的应用代表用户行事。

Microsoft Graph 是否可以在没有 User.Read 范围的情况下工作?

不,但在大多数情况下,您需要范围来读取用户配置文件并调用 /me 端点。

【讨论】:

    【解决方案2】:

    您应该检查api文档,看看调用该api是否需要User.Read权限。

    例如:我想调用this api列出邮件,我们可以看到这个api提供了两种权限,一种是委托,另一种是应用程序(这意味着client credential流是支持的)。此处列出了所有 api 权限,我们需要前往 azure ad 门户将 api 权限添加到用于生成访问令牌的 azure 广告应用程序中。

    生成访问令牌后,您可以使用 jwt 解码工具检查您的访问令牌是否包含正确的范围(用于委托权限)或角色(用于应用程序权限)。使用正确的token调用api不会导致AccessDenied错误。顺便说一句,新添加的权限可能会延迟生效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2018-11-15
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      相关资源
      最近更新 更多