gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:13:59 25 4
gpt4 key购买 nike

我正在开发一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com