c# - 使用 Azure AD 的用户管理器
问题描述
我有一个带有 Azure AD 的 ASP.NET Core 3.0 MVC Web 应用程序。我希望能够使用用户管理器向此应用程序添加角色。
我想要的是使用 Azure AD 进行身份验证,获取该用户并向他添加角色。
我无法这样做。我不想使用 Azure b2c 或 b2b,因为这不是我想要的。我真的没希望了。谢谢你的帮助。
解决方案
我认为您需要在应用程序中定义角色。以下是从官方文章中复制的内容。
来自 AAD: SaaS 提供商在应用程序清单中声明应用程序角色。例如,这是应用程序的清单条目:
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "Creators can create Surveys",
"displayName": "SurveyCreator",
"id": "1b4f816e-5eaf-48b9-8613-7923830595ad",
"isEnabled": true,
"value": "SurveyCreator"
},
{
"allowedMemberTypes": [
"User"
],
"description": "Administrators can manage the Surveys in their tenant",
"displayName": "SurveyAdmin",
"id": "c20e145e-5459-4a6c-a074-b942bbd4cfe1",
"isEnabled": true,
"value": "SurveyAdmin"
}
],
从您的客户端: 使用应用程序角色管理器的角色使用这种方法,应用程序角色根本不会存储在 Azure AD 中。相反,应用程序将每个用户的角色分配存储在自己的数据库中——例如,使用 ASP.NET Identity 中的 RoleManager 类。
好处:
- 该应用程序可以完全控制角色和用户分配。
缺点:
- 更复杂,更难维护。无法使用 Azure AD 安全组来管理角色分配。将用户信息存储在应用程序数据库中,在添加或删除用户时,它可能与租户的 Azure AD 目录不同步。
在此处查看更多详细信息。
推荐阅读
- c# - UnityWebRequest 字节数组
- r - 在knitr中执行R命令时,有什么方法可以删除LaTeX中的执行代码?
- python - 带有 xlsxwriter 的完整 excel 颜色列表
- python - shell命令没有写入python代码中的文件
- css - table_class_list、table_row_class_list 的代码示例
- r - 合并后,将生成的 NA 值替换为 0,保留预先存在的 NA
- r - roxygen2 是否使用“已知前缀”启发式?
- html - 让@media 查询与按钮一起正常工作
- javascript - 如何阻止 Hammer.js 不传播滑动事件?
- php - 从 Mysql 上的同一表计算子菜单