【问题标题】:ASP.NET Identity 2.1 2FA configurationASP.NET Identity 2.1 2FA 配置
【发布时间】:2015-07-30 09:03:09
【问题描述】:
当我们将 Thinktecture 身份服务器 3 与 Microsoft ASP.NET Identity 2.1 集成时,我们设法为我们的客户配置和启用 2FA(Tow Factor Authentication)。问题是 MS 的默认实现使用 TOTP,其有效时间默认为 180 秒。对于其他一些应用程序,它可能是可以接受的,但这些 TOTP 代码有效的最长时间不超过 30 秒。我们找不到为 ASP.NET Identity 配置此属性的方法。谁能帮我将其默认值从 180 秒更改为 30 秒?
【问题讨论】:
标签:
asp.net-identity
thinktecture-ident-server
two-factor-authentication
【解决方案1】:
遗憾的是,Asp.Net 中的 RFC6238 implementation 身份是内部的,并且具有硬编码的时间垃圾邮件。 (L. 15)。但是拥有RFC6238 和TotpSecurityStampBasedTokenProvider 的源代码应该很容易在30 秒内实现您的自定义TOTP。窗口。
无论如何,在RFC6238 section 6 中有一个关于验证后向和/或前向令牌的建议,因为在外部应用程序或服务器(例如 Google Authenticator)的情况下令牌生成器可能“不同步”。
这意味着验证器可以针对
当前时间,然后对每个后退步骤进行两次进一步验证
(总共 3 次验证)。验证成功后,
验证服务器可以记录检测到的令牌时钟漂移
就时间步数而言。收到新的 OTP 时
在这一步之后,验证者可以使用当前
用记录的时间步长时钟漂移数调整时间戳
令牌。
所以 30 秒。窗口变成大约 90 秒的验证。