我正在开发一个已经注册用户(ext(ASP.NET 的Webapp。我正在尝试添加Microsoft身份验证(OpenID Connect(。
我的问题是,我不知道如何将现有用户连接到他们各自的Microsoft帐户。在他们第一次登录后,我应该将"sub"保存在我的数据库中,并可以将用户与之进行比较。
但第一次,我不知道该怎么办。我无法真正检查"preferred_username"中有效负载中的电子邮件,因为这是可变的。
我的第二个问题是,在我的数据库中保存"子"是错误的方法吗?
好问题,登录后识别应用程序中的用户是常见的要求。特别是如果用户对你的应用有历史记录(例如下达的订单(,并且你想要在将登录名迁移到 Azure AD(或任何位置(时保持此历史记录。
我更喜欢以下方法:
- 确保授权服务器包含现有用户的电子邮件
- 我建议在应用程序数据库中存储子声明的副本
- 登录后,尝试在应用中查找子声明的匹配项
- 如果未找到,请尝试在电子邮件声明上匹配
我关于用户数据管理的博客文章可能会为您提供有关要遵循的模式的进一步想法。如果您的问题是获取电子邮件索赔的Microsoft特定技术问题,请回帖并提供更多详细信息 - 我可能会为您提供帮助。