在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp

mes*_*kin 6 two-factor-authentication .net-core identityserver4 asp.net-core-identity

我正在使用 Identity Server 4 和 Dotnet Core Identity 进行身份验证服务。身份验证服务具有自定义反应 spa。

我正在尝试开始使用他们的手机号码对用户进行身份验证。我有一个用户数据(电子邮件、密码、电话号码等)我想要这个步骤;

  1. 用户:输入电子邮件和密码(完成)
  2. 服务器:发送带有代码的短信到手机号码(?),我有一个短信服务器
  3. 用户:短信输入密码
  4. 服务器:发送访问令牌(完成)

我使用这个例子开发了一个项目。https://github.com/karpikpl/identity-server4-with-SPA-UI

我不知道如何整合两个因素,我该怎么帮你?谢谢你。

Mil*_*idi 1


这个问题的解决方案可以是这样的:

步骤 1
在 IDP(身份验证服务器)中生成 SMS 代码。

步骤 2
将该 SMS 代码存储为用户的声明,并指定到期时间(如果需要)。

步骤 3
当用户使用其用户名登录您的 IDP 时,您可以将用户输入的 SMS 代码与您作为用户声明存储在数据库中的 SMS 代码进行比较。另外,您可能需要检查短信代码的过期时间。

步骤 4
如果一切正常,那么您删除该用户的声明,然后将他登录到您的 IDP 中并完成。