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