具有登录升级和MFA功能的identityServer4

时间:2019-03-14 15:07:01

标签: identityserver4 identityserver3 two-factor-authentication mfa

在我的一个项目中,我需要实施“登录升级”。这意味着用户可以使用简单的用户名和密码登录应用程序,以获得对网站及其背后的API的一些只读访问权限。

如果用户要执行任何有意义的数据操作(例如“写入/更新”),则需要通过第二个因素(通过SMS代码)进行身份验证。

第二因素登录有效期最长为10分钟,如果用户未与网站进行10分钟的交互,他将自动从第二因素中注销,但仍然保持一个因素登录。

identityserver4可以立即支持此szenario吗?还是我需要自己实施?

这是我的解决方案建议:

  • 对于单因素登录,身份服务器提供了客户端需要了解的单因素范围。它提供了访问令牌,其范围也很有限。
  • 当客户端应用程序需要两个因素范围时,它将再次调用Identityserver,其中用户必须提供第二个因素身份验证。因此,具有第二因素范围的新令牌将发送回客户端。使用此令牌的客户端可以调用需要二次身份验证的API方法。
  • 第二因素身份验证令牌的有效期为10分钟
  • 在10分钟后令牌无效,但一个要素令牌仍然有效,因为它的使用寿命很长。

问题

-IdentityServer4可以开箱即用提供登录升级吗?如果没有,有什么替代解决方案?

您对我的解决方案建议有何建议?

预先感谢

1 个答案:

答案 0 :(得分:1)

您在要点中写的基本上是我如何在IdentityServer4中实现它。它只是设置两个不同的作用域,并为同一用户发行两个单独的令牌。第一作用域为“只读”,生存期为24h,仅由应用程序api中的安全操作可接受;第二作用域为“ full”,其生存期为10min,所有操作均可接受。没什么大问题,它可以与基本IdentityServer4完全兼容。但是,您必须RT(F)M并在IdentityServer4配置中配置作用域,客户端,令牌等。而且,您还必须在应用程序的后端api实现中实现双令牌访问策略,并且客户端应用程序当然必须小心它们获取的令牌以及用于哪个后端调用的令牌。其中或多或少是显而易见的(从这些要点来看,您似乎理解了这一点),所以我不太清楚说“开箱即用”或您担心的是什么IdentityServer4方面的支持条款。