现有用户的Microsoft身份验证

问题描述 投票:1回答:1

我正在使用(ext)ASP.NET开发一个已经注册了用户的Webapp。我正在尝试通过Microsoft(OpenID Connect)添加身份验证。

我的问题是,我不知道如何将现有用户连接到他们各自的Microsoft帐户。他们第一次登录后,我应该将“ sub”保存在数据库中,并可以将用户与之进行比较。

但是第一次,我不知道该怎么办。我真的无法在“ preferred_username”中的有效负载中检查电子邮件,因为这是可变的。

我的第二个问题是,在数据库中保存“子”是错误的方法吗?

asp.net authentication oauth-2.0 openid claims-based-identity
1个回答
0
投票

很好的问题,登录后在您的应用中识别用户是常见的要求。特别是如果用户具有您的应用程序的历史记录(例如下订单),并且您希望在将登录名迁移到Azure AD(或任何地方)时保持此历史记录。

我的偏好是以下方法:

  • 确保授权服务器包含现有用户的电子邮件
  • 我建议将子声明的副本存储在应用程序数据库中
  • 登录后,尝试在子声明中的应用中找到匹配项
  • 如果找不到,请尝试匹配电子邮件声明

我在User Data Management上的博客文章可能会为您提供更多有关遵循模式的想法。如果您的问题是与获取电子邮件声明有关的Microsoft特定技术问题,请发回详细信息-我可能会为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.