Angular和Asp.Net Core - 启用双因素认证

5

我有一个使用Angular 7编写的单页应用程序,与ASP.Net Core 2.2 Web API服务器通信。

当用户登录时,用户将使用“资源所有者密码凭据”授权向我的授权服务器(connect/token)发送其凭据。

我正在尝试添加两步验证(短信),但我找不到任何描述如何进行此操作的示例。我发现的所有示例都是使用cookie身份验证编写的MVC。

我考虑了以下流程,但感觉应该有更好的方法

  1. 用户输入用户名和密码
  2. 如果用户已启用两步验证,我将向他发送一个带有代码的短信。此外,将向客户端发送一个受限制的access_token和id token。此access_token仅在启用用户发送2步验证码时有效。如果id-token具有“two factors”:“on”的claim,则将用户重定向到SMS确认代码。
  3. 用户将使用代码发送post请求。如果代码匹配,我将返回带有所有claim的新access_token给客户端。

你找到解决方案了吗?如果是的话,能否请您分享一下您的解决方案? - Nerdroid
很遗憾,我们还没有找到最佳实践,因此决定推迟解决这个问题。@Nerdroid - Tal Humy
1个回答

1

2FA对于资源所有者密码凭据授权来说并不是一个很好的选择(至少不是标准版)。

像代码或隐式流这样的交互式流程将允许使用ASP.NET Core Identity及其默认控制器/Razor页面轻松地以完全标准的方式实现它。


嗨@Pinpoint,非常感谢您抽出时间回答我的问题。我仍然不明白如何在Angular SPA应用程序中实现它。只使用OpenIdDict可以在SPA中完成吗? - Tal Humy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接