使用 Azure AD B2C 时如何为单个用户 control/set 权限

How to control/set permissions for a single user when using Azure AD B2C

我有 1 个使用另一个 WebApi 的 SPA 应用程序。 (ASP.NET 核心)两者都在 Azure 中 运行,我能够使用 OAuth 2.0 隐式流

针对 Azure AD B2C 对用户进行身份验证

现在我在问自己如何控制单个用户的权限。 (删除、阅读等)我必须处理声明吗?我是否必须利用服务器端的图表 API 来检查用户是否具有特定权限?我可以使用示波器吗?在哪里设置User <--> Scope关系?

我发现了几个关于 SO 的问题,但我不知道应该如何以正确的方式完成它?我目前的理解是,我向身份验证提供程序询问某些范围,然后我将获得一个具有该范围的令牌,然后可以由 API 检查。但是我如何管理哪个用户可以请求哪些范围?

我真的很难理解 OAuth2 和权限。希望有人能帮帮我。

不幸的是,对于一个特定的用户,您不能将 permissions/scopes 分配给该用户。

因为 Azure AD B2C 不支持应用程序角色。通常,Azure AD B2C 是供所有用户使用他们的帐户访问您的应用程序。即使是 Azure AD B2C 也可以让你存储和管理用户,但它不能为不同的用户分配不同的scopes/permissions。多个范围是授予资源的权限。多个授予的权限将由 space.It 分隔,不适用于用户访问分配。

如果这对您很重要,您可以在 this Uservoice Page 中为这个想法点赞。 Azure 团队将对其进行审核。

希望对您有所帮助!

您可以通过创建 String 类型的 a custom attribute 来实现这一点,它存储用户的逗号或 space 分隔的角色列表。

然后您可以在 ID 和访问令牌中发布此自定义属性,或使用 Azure AD Graph API.

读取它