当我们将Thinktecture身份服务器3与Microsoft ASP.NET Identity 2.1集成时,我们设法为我们的客户配置并启用2FA(Tow Factor Authentication)。问题是MS的默认实现使用TOTP,默认情况下其有效时间为180秒。对于某些其他应用程序,它可以接受,但是作为最大时间,这些TOTP代码有效不超过30秒。我们找不到为ASP.NET身份配置此属性的方法。任何人都可以帮助我将其默认值从180秒更改为30秒吗?
答案 0 :(得分:0)
可悲的是,RFC6238 implementation在Asp.Net身份中是内部的,并且有硬编码的时间戳。 (L. 15)。但是拥有RFC6238和TotpSecurityStampBasedTokenProvider的源代码应该很容易实现您的自定义TOTP,持续30秒。窗口。
无论如何,在RFC6238 section 6中有一个关于验证后退和/或前向令牌的推荐,因为可能"不同步"如果是外部应用程序或服务器,例如Google身份验证器,则为令牌生成器。
这意味着验证人可以对执行验证 当前时间,然后每个后退步骤的两个进一步验证
(总共3次验证)。验证成功后, 验证服务器可以记录检测到的令牌的时钟漂移 就时间步数而言。当收到新的OTP时 在此步骤之后,验证器可以使用当前
来验证OTP 时间戳用记录的时间步时钟漂移数量调整 为了令牌。
所以30秒。窗口变成大约90秒的验证。