背景:作为创办我的软件公司的一部分,我正在开发我的第一个企业软件解决方案。我正在.NET Core 上开发。
我一直在阅读有关身份验证与授权、AzureAD、托管身份服务器等的所有 Microsoft 文档。
我正在努力理解在 OAuth 2.0 的现代环境中围绕用户的一些更大的设计理念和策略,其中另一个服务对用户进行身份验证并发回声明。
当前状态:目前,我可以通过 Microsoft 帐户使用 Blazor 和 AzureAD 登录。当用户登录时,我会HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)
在请求中使用他们的用户标识符,这可能有其他声明,例如他们的姓名或电子邮件。因为我没有使用用户数据存储在本地数据库中的身份托管。
有关与 Microsoft Identity / AzureAD 交互的问题
- 如果我希望在用户登录后执行代码,使用他们的登录数据,应该怎么做?一个示例用例:用户有一个与其帐户关联的“主题”。他们登录,我希望在登录后运行将主题应用到 DOM 中的代码
- 用户数据建模?由于用户使用另一个说“是的,此人已通过身份验证”的服务进行身份验证,因此我的服务基本上没有关于他们的信息。我想存储与
NameIdentifier
我从身份验证服务返回的相关信息,以便我可以为这个人建立一个“个人资料”。一个用例是:
Taylor White 登录 Enterprise News Service Inc.。他对一篇文章发表评论,评论以
string UserId
和 保存string CommentContent
。但是,当有人阅读那篇文章时,我想提取有关 Taylor 的信息,例如他的姓名和照片,但我目前没有任何数据库对用户进行建模或存储我从身份提供者那里获得的声明。
简而言之,关于这些场景,我缺少什么?
- 成功登录后执行一些逻辑
- 存储来自身份提供者的用户数据并在其他上下文中访问它的最佳实践,例如加载来自不同用户的评论。
附加信息:
- 我将 Blazor WebAssembly 用于我的前端,它也在 .NET 上运行。
- 我正在使用 .NET Core 后端。