我一直在使用keycloak 1.9.1(如果这有任何区别,那就是dockerized)并且无法弄清楚如何让TOTP正常工作。我用android的FreeOTP以及Google的身份验证器尝试过,但仍然没有运气。 我可以指定keycloak使用TOTP,登录并获取显示的QR码,用手机扫描并获得OTP,但是当我输入它时,它总是被拒绝。 有没有人现在有这个工作?
答案 0 :(得分:2)
每当我收到"无效的身份验证器代码" 错误时,我就会通过智能手机的时钟同步计算机的时钟来解决问题。如果您的计算机从服务器获取时间,并且服务器即使在几秒钟内关闭,您也无法注册或使用TOTP。在这种情况下,您可以更正时间,但是当您的计算机与服务器同步时,您将再次失去访问权限。
如果您的服务器和手机的时间,TOTP注册和登录无法正常工作之间存在偏差,请将其作为手机的代码和服务器&# 39; s代码不匹配。此外,您可能想要检查它们是否都在同一时区。
此外,您可以增加"前瞻窗口"在身份验证 - > OTP政策屏幕(抱歉,我还无法嵌入图片)。
这个选项让Keycloak对时钟偏差有一些容忍度,让它考虑一些即将来临的未来代码。但是,似乎此选项不允许Keycloak向后看,因此慢速智能手机时钟可能无法工作,即使在“预见窗口”#34;设置为最大值
答案 1 :(得分:0)
在“身份验证”→“ OTP策略”下检查您的OTP哈希算法。
因为Google身份验证器仅支持SHA1。如果您的算法不同,请使用免费OTP。