在我的一个项目中,我需要实现登录升级。这意味着用户可以使用简单的用户名和密码登录应用程序,以获得对网站及其背后 API 的一些只读访问权限。
如果用户想要执行任何像“写入/更新”这样的敏感数据操作,他需要通过第二个因素(通过 SMS 代码)进行身份验证。
二次登录的有效期最长为10分钟,如果用户在10分钟内未访问网站,他将自动退出二次登录,但仍保持一次登录状态。
identityserver4 可以开箱即用地支持这个 szenario 吗?还是我需要自己实现它?
这是我的解决方案建议:
问题 :
- IdentityServer4 可以提供开箱即用的登录升级吗?如果不是,有哪些替代解决方案?
你对我的解决方案有什么建议?
提前致谢
最佳答案
您在要点中所写的内容基本上是我认为它在 IdentityServer4 中的实现方式。它只是设置两个不同的范围并为同一用户发布两个单独的 token 。第一个范围 'readonly',lifetime=24h,只能被应用程序 api 中的安全操作接受,第二个范围是“full”,所有操作都可以接受生命周期 = 10 分钟。没什么大问题,使用基本的 IdentityServer4 应该是完全可行的。但是,您必须 RT(F)M 并在 IdentityServer4 配置中配置范围、客户端、 token 等。而且,您必须在应用程序的后端 api 实现中实现两个 token 访问策略,当然客户端应用程序必须小心他们获得哪个 token 以及他们将哪个 token 用于哪个后端调用......但所有其中或多或少是显而易见的(从这些要点来看,你似乎明白这一点)所以我不太明白你说“开箱即用”想要什么,或者你担心什么IdentityServer4 端的支持条款..
关于带有登录升级和 MFA 的 identityServer4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165917/