identityserver4 - 具有登录步骤和 MFA 的 identityServer4
问题描述
在我的一个项目中,我需要实施登录步骤。这意味着用户可以使用简单的用户名和密码登录应用程序,以获得对其背后的网站和 API 的只读访问权限。
如果用户想要执行任何有意义的数据操作,如“写入/更新”,他需要通过第二个因素(通过 SMS 代码)进行身份验证。
第二因素登录最长10分钟有效,如果用户在10分钟内没有访问网站,他将自动退出第二因素,但他仍然保持在一个因素的登录状态。
identityserver4 可以开箱即用地支持这个场景吗?还是我需要自己实施?
这是我的解决方案建议:
- 对于单因素登录,身份服务器提供单因素范围,客户端需要了解该范围。它提供了一个范围有限的访问令牌。
- 当客户端应用程序需要双因素范围时,它再次调用身份服务器,用户必须提供第二因素身份验证。因此具有第二因素范围的新令牌被发送回客户端。使用此令牌客户端可以调用需要第二因素身份验证的 API 方法。
- 第二因素身份验证令牌的有效期为 10 分钟
- 10 分钟后令牌无效,但一个因素令牌仍然有效,因为它具有较长的生命周期。
问题:
- IdentityServer4 能否提供开箱即用的登录步骤?如果不是,有哪些替代解决方案?
您对我的解决方案建议有何建议?
提前致谢
解决方案
您在要点中写的基本上是我在 IdentityServer4 中看到的实现方式。它只是设置两个不同的范围并为同一用户发布两个单独的令牌。第一个范围'readonly',生命周期=24h,只有应用程序api中的安全操作才能接受,第二个范围'full',生命周期=10分钟,所有操作都可以接受。没什么大问题,基本的 IdentityServer4 应该是完全可行的。但是,您必须 RT(F)M 并在 IdentityServer4 配置中配置范围、客户端、令牌等。而且,您必须在应用程序的后端 api 实现中实现两个令牌访问策略,当然客户端应用程序必须小心他们获得的令牌以及他们用于哪个后端调用的令牌。
推荐阅读
- javascript - 如何在nodejs中使用express进行身份验证后授予对文件夹的访问权限?
- azure-ad-b2c - Azure B2C 通过 AD Graph 创建用户 - 无法登录
- node.js - 与 Mongos 实例的过多打开连接
- jquery - 使用参数在 jQuery 中调用 Webmethod
- python - Selenium 错误:“chromedriver”可执行文件需要在 PATH 中
- ruby-on-rails - Rails Gemfile 依赖项无法解决
- asp.net - 如何让 Twilio 呼叫代理并呼叫客户,并将他们连接起来以相互交谈
- amazon-web-services - AWS Pinpoint/Ionic - 尝试通过 CLI 发送推送时出现“找不到资源”错误
- linear-programming - 如何编写约束来检查变量是否在两个值之间有界
- javascript - 如何循环和加载 JSON 的部分到新数组