多个 Web 应用程序的 Azure B2C 身份验证和授权

标签 azure azure-ad-b2c

我创建了一个 Azure B2C。我有多个 .Net Web 应用程序调用此 B2C 以允许内部和外部用户登录和访问我们的应用程序。我需要的是一种能够将用户分配给应用程序的方法,例如 John Doe 可以访问 WebApp1,但不能访问 WebApp2,并且他对 WebApp1 的角色是管理员。而 Jane Doe 可以访问 WebApp1 和 WebApp2,并且她的角色是这两个应用程序的用户。我需要这份授权书。有谁知道有什么方法可以做到这一点?我知道普通的 Azure 有组和角色,但据我所知,B2C 似乎不允许您创建任何这些。

最佳答案

根据Features not applicable in Azure AD B2C tenants 应用程序角色目前不适用于 Azure AD B2C。

由于 B2C 用于消费者帐户或身份,他们注册以创建帐户,管理员不应将其帐户添加到应用程序中,并将角色分配给他们的身份。在这种情况下,您可以使用标准 Azure AD 。

但是我们可以利用custom claims in B2C消费者在注册时选择所需的角色。

因此所需的角色必须经过授权过程。为此,必须为该应用程序配置角色。

例如,在 .net 中,您可以为用户的特定 Controller 操作配置扩展角色。例如,创建名为 AADRole 的自定义属性。为不同的用户分配一个值(即对某些应用程序的角色访问权限),然后在B2C用户登录后从id token中获取声明。

services.AddAuthorization(options =>
{
      options.AddPolicy("Admin", policy =>
         policy.RequireClaim("extension_Role", "Admin"));
});

通过使用授权属性

[Authorize(Policy = "Admin")]

引用文献:

  1. using-custom-claims-for-azure-ad-b2c-roles
  2. SO reference

关于多个 Web 应用程序的 Azure B2C 身份验证和授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72394340/

相关文章:

azure - 使用 microsoft graph 验证联系信息以获取电子邮件

azure-ad-b2c - 来自自定义策略的 SendGrid API 发送没有主题的电子邮件

azure - 从 Azure 恢复服务恢复 Azure VM

azure - 如何关闭 Office365 Exchange Powershell 连接

asp.net-mvc - Azure 网站和 ASP.NET,应用程序池被回收之前有多少不活动状态导致重新编译?

azure - Azure 中的部署脚本 ARM 模板

azure - 为 B2C 租户设置 Azure 帐户的最佳实践是什么?

azure - 使用 Google 服务帐户登录 Azure B2C

c# - 在 Blazor WebAssembly 应用程序上加载请求 B2C 登录屏幕时出错

Azure Terraform 错误 : creating/updating App Service Managed Certificate