使用 Auth Flow With PKCE、MSAL v2、Vue.js 和 Azure Functions 获取 Azure B2C 用户权限(授权用户)

Obtain Azure B2C user permissions (authorize user) using Auth Flow With PKCE, MSAL v2, Vue.js, & Azure Functions

使用 Vue.js、Azure B2C 租户和 Azure Functions (C#),我们能够对进入我们应用程序的用户进行身份验证。我们将 Auth Flow 与 PKCE 结合使用,并在前端利用 MSAL v2 库来执行此操作。具体来说,我们使用 npm 包@azure/msal-browser for MSAL.

摩擦点:我们需要获得用户的授权 (User/Manager/OrgAdmin/GlobalAdmin) 以用于限制对我们应用程序组件的访问。似乎有大量涉及隐式流和 ADAL 的解决方案,但涉及 MSAL 和 Auth 流的解决方案并不多。

最终,我要寻找的是关于如何为用户获得相当于 roles/groups/permissions 的高级描述。

在使用隐式流程时,我可以在 Vue.js 中使用 Microsoft Graph API,但在使用 MSAL v2 和 Auth 流程时不能使用 w/PKCE。

目前我正在研究授权注册到我们的 B2C 租户的内部 API(通过 Azure Functions 服务)以使用 Microsoft Graph API.[=11 获取 roles/groups/permissions =]

我觉得有一种更简单的方法可以获取像用户角色和权限这样的基本信息。欢迎提供一些见解。

谢谢!

编辑(详细说明)

这不是确切的用例,但它确实触及了我正在努力解决的问题的根源。

用户通过使用个人 Google 帐户登录,使用 Azure B2C 流程对我们的 SPA 进行身份验证。

我现在需要为用户获取授权以确定允许他们在应用程序中执行的操作:

-部分用户可以查看数据。

-部分用户可以编辑数据。

粗略地说,如何做到这一点?我可以在使用 MSAL w/Implicit 流时使用 Microsoft Graph API 提取组信息,但不能使用 PKCE 的身份验证流来提取 B2C。

再次感谢!

恐怕没有现成的 AAD B2C 解决方案可以获取组/目录角色信息。

您可以通过自定义 (IEF) 策略使用自定义代码在 B2C 中获取组声明。

如果是用户流,可以考虑custom attribute。例如,创建一个名为 AADRole 的自定义属性。将真正的AAD角色作为值分配给不同的用户,然后在B2C用户登录后从id令牌中获取声明。

有关详细信息,请参阅此