多个 Web 应用的 Azure B2C 身份验证和授权
Azure B2C Authentication & Authorization for Multiple Web Apps
我创建了一个 Azure B2C。我有多个调用此 B2C 的 .Net Web 应用程序,以允许内部和外部用户登录和访问我们的应用程序。我需要的是一种能够将用户分配给应用程序的方法,例如 John Doe 可以访问 WebApp1 但不能访问 WebApp2,并且他对 WebApp1 的角色是管理员。而 Jane Doe 可以访问 WebApp1 和 WebApp2,并且她的角色是这两个应用程序的用户。我需要这份授权书。有谁知道这样做的方法吗?我知道普通的 Azure 有组和角色,但据我所知,B2C 似乎不允许您创建任何这些。
下Features not applicable in Azure AD B2C tenantsApplication roles are Not currently available for Azure AD B2C.
由于 B2C 用于消费者帐户或身份,他们 sign-up 创建帐户,并且管理员不应该能够将他们的帐户添加到将角色分配给他们 identities.in 这样的应用您可以使用标准 Azure AD 的情况。
但是我们可以使用 custom claims in B2C 用户在注册时选择所需的角色。
因此,所需的角色必须经过授权 process.For 应用程序必须配置角色。
例如在 .net 中,您可以为 users.For 示例的特定控制器操作配置扩展角色,创建一个名为 AADRole 的自定义属性。为不同的用户赋值(即其对某些应用的角色访问权限),然后在B2C用户登录后从id token中获取claim。
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy =>
policy.RequireClaim("extension_Role", "Admin"));
});
通过使用授权属性
[Authorize(Policy = "Admin")]
参考资料:
我创建了一个 Azure B2C。我有多个调用此 B2C 的 .Net Web 应用程序,以允许内部和外部用户登录和访问我们的应用程序。我需要的是一种能够将用户分配给应用程序的方法,例如 John Doe 可以访问 WebApp1 但不能访问 WebApp2,并且他对 WebApp1 的角色是管理员。而 Jane Doe 可以访问 WebApp1 和 WebApp2,并且她的角色是这两个应用程序的用户。我需要这份授权书。有谁知道这样做的方法吗?我知道普通的 Azure 有组和角色,但据我所知,B2C 似乎不允许您创建任何这些。
下Features not applicable in Azure AD B2C tenantsApplication roles are Not currently available for Azure AD B2C.
由于 B2C 用于消费者帐户或身份,他们 sign-up 创建帐户,并且管理员不应该能够将他们的帐户添加到将角色分配给他们 identities.in 这样的应用您可以使用标准 Azure AD 的情况。
但是我们可以使用 custom claims in B2C 用户在注册时选择所需的角色。
因此,所需的角色必须经过授权 process.For 应用程序必须配置角色。
例如在 .net 中,您可以为 users.For 示例的特定控制器操作配置扩展角色,创建一个名为 AADRole 的自定义属性。为不同的用户赋值(即其对某些应用的角色访问权限),然后在B2C用户登录后从id token中获取claim。
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", policy =>
policy.RequireClaim("extension_Role", "Admin"));
});
通过使用授权属性
[Authorize(Policy = "Admin")]
参考资料: