asp.net - Angular 和 Asp.Net Core - 启用 2 因素身份验证
问题描述
我有一个用 Angular 7 编写的单页应用程序,它与我的 ASP.Net Core 2.2 Web API 服务器通信。登录时,用户使用“资源所有者密码凭据”授权将他的凭据发送到我的授权服务器(连接/令牌)。我正在尝试添加 2 因素身份验证 (SMS),但我找不到任何描述如何执行此操作的示例。我找到的所有示例都是使用 MVC 编写的,使用 cookie 身份验证。
我在考虑这个流程,但我觉得应该有更好的方法
- 用户输入他的用户名和密码
- 如果用户启用了 2 个因素,我将向他发送带有代码的 SMS。此外,一个有限的 access_token 和 id 令牌将被发送给客户端。此 access_token 仅在使用户能够发送 2 因子代码时才有效。如果 id-token 将声明“两个因素”:“on”,我会将用户重定向到 SMS 确认代码。
- 用户将发送带有代码的发布请求。如果代码匹配,我将向客户端返回一个包含所有声明的新 access_token。
解决方案
2FA 非常不适合资源所有者密码凭据授予(至少,不是标准风格)。
像代码或隐式流这样的交互式流将允许使用 ASP.NET Core Identity 及其默认控制器/Razor 页面以完全标准的方式轻松实现。
推荐阅读
- spring-cloud-stream - 如何使用 spring-cloud-stream 实现 Kafka 消费者以按需处理事件?
- java - 如果用户已经登录到 CAS,如何从 memcached 票证注册表中检查?
- c# - 找到乘以已知双精度数时将产生整数的最小整数
- python - 无法从正在运行的事件循环中调用 asyncio.run()
- javascript - 使用 create-react-app 时如何在没有 webpack 依赖的情况下导入节点模块或 JavaScript 文件?
- javascript - Openlayer 5 - 查询样式颜色给出错误结果
- python - 这是 python 装饰器还是 python 属性?
- python - 在 python 的数据集中应用 k-Nearest Neighbors
- python - 根据其他两列熊猫的条件创建一个新列
- asp.net-core-mvc - 在 Partialview o ComponentView Asp.net core 2.2 中使用代码时,ActionLink 和 asp-action 在行表体内不起作用