c# - AAD-B2C 与自定义角色存储的 ASP.Net Core 身份组合

标签 c# asp.net asp.net-core azure-ad-b2c asp.net-core-identity

我正在开发一个使用 AAD-B2C 作为登录提供程序的 ASP.Net Core Web 应用程序。因此用户必须先登录才能访问该站点 --> 身份验证

然后,我想评估用户实际被允许访问的内容 --> Authorization

我要求使用 RBAC 并且不在任何类型的 AD 中处理角色,而是在我们自己的数据库中处理,该数据库再次位于 REST API 后面。所以我使用了 Microsoft.AspNetCore.Identity.IUserRoleStore<MyUser> 的自定义实现从我的 REST API 检索我的用户和角色并在 Startup.ConfigureServices 中注册

services.AddIdentity<MyUser, MyRole>();
services.AddTransient<IUserStore<MyUser>, MyUserStore>();
services.AddTransient<IUserRoleStore<MyUser>, MyUserStore>();

但现在默认的身份验证似乎不再起作用(因为 MyUser 与 ASP.Net 默认的 User 完全不同,例如 MyUser 没有 User.Identity.IsAuthenticated )。我也看不到该网站曾经调用过 MyUserStore.IsInRoleAsync当我添加像 User.IsInRole("Admin") 这样的 Razor 指令时.

我错过了什么吗?是否不可能“拆分”ASP.Net Core 身份以同时以一种方式(AAD-B2C)处理身份验证和以另一种方式(自定义商店)处理授权?或者我只是用错误的方式调用它?

最佳答案

如果您使用的是 Azure AD B2C,则需要在 Azure AD 中定义自定义角色,我相当确定您描述的情况不受支持。 B2C 在发送给应用程序的 token 中不包含组声明,但此处建议了一些解决方法。 Azure AD B2C - Role management

关于c# - AAD-B2C 与自定义角色存储的 ASP.Net Core 身份组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51724174/

相关文章:

c# - 使用 Entity Framework 将字符串值保存到 SQL 表中,该表包含 Null 字符,所有后续字符的剪切

c# - 以编程方式获取由 *.asmx/js 生成的 JavaScript

c# - 如何解决错误无法在 iis 7 中添加具有唯一键属性 'value' 的添加类型的重复集合条目

c# - EF 核心字符串区分大小写不起作用

c# - 如何上传文件并查看进度条?

c# - 命名空间被添加到 XML

c# - VS2012 Sort Usings 不会先移动 System Usings?

c# - 解析 ASP.NET 5 的动态 IoC Controller

ASP.NET 登录页面加载非常慢需要 30 秒

reactjs - axios HTTP DELETE请求返回415错误