带有登录升级和 MFA 的 identityServer4
identityServer4 with Login Step-up and MFA
在我的一个项目中,我需要实施登录升级。这意味着用户可以使用简单的用户名和密码登录应用程序,以获得对网站及其背后的 API 的一些只读访问权限。
如果用户想要执行任何敏感数据操作,如 "write/update",他需要通过第二因素(通过短信代码)进行身份验证。
二重登录的有效期最长为10分钟,如果用户10分钟未访问网站,将自动退出二重登录,但仍保持一重登录状态。
identityserver4 可以开箱即用地支持这个场景吗?还是我需要自己实施?
这是我的解决方案:
- 对于单因素登录,identityserver 提供了一个单因素作用域,客户端需要了解这一点。它提供了一个范围有限的访问令牌。
- 当客户端应用程序需要双因素范围时,它会再次调用身份服务器,用户必须提供第二因素身份验证。因此,将具有第二个因素范围的新令牌发送回客户端。使用此令牌,客户端可以调用 API 需要第二因素身份验证的方法。
- 第二因素身份验证令牌的有效期为 10 分钟
- 10 分钟后令牌无效,但一个因素令牌仍然有效,因为它有很长的生命周期。
问题:
- IdentityServer4 能否提供开箱即用的登录升级?如果不是,有哪些替代解决方案?
你对我的解决方案有什么建议?
提前致谢
你在要点中写的基本上是我看到它在 IdentityServer4 中的实现方式。它只是设置两个不同的范围并为同一用户颁发两个单独的令牌。第一个范围 'readonly',生命周期 = 24 小时,只有应用程序中的安全操作才能接受 api,第二个范围 'full',生命周期 = 10 分钟,所有操作都可以接受。没什么大问题,使用基本的 IdentityServer4 应该是完全可行的。但是,您将必须 RT(F)M 并在 IdentityServer4 配置中配置范围、客户端、令牌等。而且,您必须在应用程序的后端 api 实施中实施双令牌访问策略,当然,客户端应用程序必须注意它们获取的令牌以及用于哪个后端调用的令牌.. 但所有这些都或多或少是显而易见的(你似乎明白这一点,从要点来看)所以我不太明白你想说 "out of the box" 或者你是什么担心 IdentityServer4 方面的支持..
在我的一个项目中,我需要实施登录升级。这意味着用户可以使用简单的用户名和密码登录应用程序,以获得对网站及其背后的 API 的一些只读访问权限。
如果用户想要执行任何敏感数据操作,如 "write/update",他需要通过第二因素(通过短信代码)进行身份验证。
二重登录的有效期最长为10分钟,如果用户10分钟未访问网站,将自动退出二重登录,但仍保持一重登录状态。
identityserver4 可以开箱即用地支持这个场景吗?还是我需要自己实施?
这是我的解决方案:
- 对于单因素登录,identityserver 提供了一个单因素作用域,客户端需要了解这一点。它提供了一个范围有限的访问令牌。
- 当客户端应用程序需要双因素范围时,它会再次调用身份服务器,用户必须提供第二因素身份验证。因此,将具有第二个因素范围的新令牌发送回客户端。使用此令牌,客户端可以调用 API 需要第二因素身份验证的方法。
- 第二因素身份验证令牌的有效期为 10 分钟
- 10 分钟后令牌无效,但一个因素令牌仍然有效,因为它有很长的生命周期。
问题:
- IdentityServer4 能否提供开箱即用的登录升级?如果不是,有哪些替代解决方案?
你对我的解决方案有什么建议?
提前致谢
你在要点中写的基本上是我看到它在 IdentityServer4 中的实现方式。它只是设置两个不同的范围并为同一用户颁发两个单独的令牌。第一个范围 'readonly',生命周期 = 24 小时,只有应用程序中的安全操作才能接受 api,第二个范围 'full',生命周期 = 10 分钟,所有操作都可以接受。没什么大问题,使用基本的 IdentityServer4 应该是完全可行的。但是,您将必须 RT(F)M 并在 IdentityServer4 配置中配置范围、客户端、令牌等。而且,您必须在应用程序的后端 api 实施中实施双令牌访问策略,当然,客户端应用程序必须注意它们获取的令牌以及用于哪个后端调用的令牌.. 但所有这些都或多或少是显而易见的(你似乎明白这一点,从要点来看)所以我不太明白你想说 "out of the box" 或者你是什么担心 IdentityServer4 方面的支持..