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

Posted

技术标签:

【中文标题】在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp【英文标题】:Using sms otp with authentication (oidc) in IdentityServer4 and Dotnet Core Identity 【发布时间】:2020-04-15 15:33:45 【问题描述】:

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

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

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

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

我不知道如何整合两个因素,有什么可以帮助您的吗?谢谢。

【问题讨论】:

【参考方案1】: 此问题的解决方案如下:

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

第 2 步 将该 SMS 代码存储为具有到期时间(如果需要)的用户的声明。

第 3 步 当用户使用他的用户名登录您的 IDP 时,您可以将用户输入的 SMS 代码与您作为用户声明存储在 DB 中的代码进行比较。另外,您可能需要检查 SMS 代码的到期时间。

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

【讨论】:

以上是关于在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer4 令牌发行者和消费者在同一个项目中

IdentityServer4 - 刷新令牌混合流程 - Cookie 和存储

如何使用 IdentityServer4 访问令牌和 [Authorize] 属性

IdentityServer4目录

如何在 identityserver4 中没有用户名和密码的情况下从令牌端点获取令牌?

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