【问题标题】:azure ad b2c graph api permissionsazure ad b2c 图形 api 权限
【发布时间】:2020-05-09 05:11:52
【问题描述】:

我有一个关于在用户通过 Azure Ad B2C 登录后访问 Microsoft Graph Api 的问题。我正在尝试将我的应用迁移到通过 b2clogin.com 而不是 login.microsoft.com 登录,并且大多数情况下它都可以正常工作,但我无法再调用 Microsoft Graph Api 来获取登录的用户配置文件。

我已经在我的 B2C 租户中将 Postman 设置为应用程序,并使用 https://graph.microsoft.com/User.Read 配置了 api 权限,但是当我尝试使用 https://graph.microsoft.com/User.Read 范围获取令牌时,我收到以下错误

AADB2C90205:此应用程序对此 Web 资源没有足够的权限来执行操作

我不确定这个错误是什么意思,但是当我在门户中查看用户的登录时,我看到了 3 个登录。

第一个状态为中断,失败原因为

应用程序尝试执行静默登录,但用户无法静默登录。应用程序需要启动交互式流程,为用户提供登录选项。联系应用所有者。

第二个的状态为中断,失败原因为

应用 X 没有访问应用 Y 的权限或权限已被撤销。或者 用户或管理员未同意使用 ID X 的应用程序。为此用户和资源发送交互式授权请求。或者用户或管理员未同意使用 ID X 的应用程序。向您的租户管理员发送授权请求以代表应用程序:Y 代表资源:Z。

第三个状态为成功

几天来我一直在查看文档,试图弄清楚这一点。

我缺少一些需要为 B2C 用户访问 Microsoft Graph Api 的配置?

【问题讨论】:

  • 您通常不应该使用客户端凭据流来调用 Graph API 吗?
  • 我不确定。我有一个 Angular 应用程序并使用 msal.js,所以我不能使用客户端凭据流。我设置了 Postman 应用程序以确认 msal.js 没有问题我在图形 api 中调用“me”端点以在从 angular 应用程序登录后获取用户配置文件和图片。一切正常,直到我将权限切换到 b2clogin。之后我无法调用图形 api。我目前正在将 Graph Api 调用移动到我的 api 并使用客户端凭据流。我希望这能解决问题。我已经知道我可以从 Angular 应用程序调用我的 api。

标签: azure-ad-b2c


【解决方案1】:

您描述的设置实际上是不可能的。 您已在 AAD 刀片中创建了一个 App Reg 并分配了 Ms 图形权限。 然后,您收到的错误是针对 AAD B2C 端点,而不是针对您的应用程序的 AAD 端点(因为 AAD B2C 应用程序无法分配 Graph api 的权限)。因此,您使用了 AAD 应用并尝试针对 B2C 端点进行身份验证 - 这将无法正常工作。

您无法通过针对 B2C 端点进行身份验证的 B2C 用户访问 ms 图表。

您可以通过 AAD 或 AAD B2C 目录的 AAD 端点通过 AAD 用户或 B2C 目录内的 AAD 用户访问 ms 图。

在 B2C 场景中,正常模式是针对 B2C 端点对用户进行身份验证,并使用客户端凭据对 AAD 端点进行 API 身份验证,以获取对 Graph API 的访问权限并代表用户进行操作。

【讨论】:

  • 经过更多研究后,我认为它是这样的。你知道微软是否正在努力通过 b2clogin 端点支持 Graph Api 吗?我问的原因是因为我正在构建一个 SaaS 应用程序并将我的租户作为组存储在 B2C 中。我有一个仅用于管理这些组的管理应用程序,我在 Angular 应用程序中完成了所有这些工作。迁移到 b2clogin 意味着我必须创建一个新的 api 来代理 Graph Api。我真的不想这样做,除非我必须在 2020 年 12 月之前为 B2C 应用程序弃用 login.onmicrosoft.com。
  • 这与 login.msonline.com 被弃用无关。对于 B2C 登录端点(无法访问图形 api)而不是 AAD 身份验证端点,它已被弃用,可以通过该端点访问图形 api。该问题与迁移到 b2clogin.com 无关。除了在 B2C 期间通过自定义策略调用 API 并让该 api 通过 B2C 租户的 AAD 端点执行 Graph API 调用并获取组成员身份之外,实际上没有其他解决方法。或者让您的 SaaS 应用在对 B2C 用户进行身份验证后进行 api 调用。
  • 听起来您在 B2C 租户中使用纯 AAD 功能。现在,您正尝试转向 B2C 功能……而实际上您并不需要这样做。否则,在您进行更改之前,您描述的任何内容都不会起作用。
猜你喜欢
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多