V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gouchaoer
V2EX  ›  GitLab

gitlab 的强制跳转到 2FA 页面 bug 的解决

  •  
  •   gouchaoer · 2020-05-20 16:49:40 +08:00 · 2686 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天发现公司的 gitlab 许多人被强制要求开启 2FA ( Two-Factor Authentication ),经过排查发现某个 group 被人不小心设置成所有成员必须开启 2FA,这样所有该 group 的成员都被强制重定向到 2FA 开启页面,除非你开启 2FA 。由于公司某些自动化工具和 2FA 不兼容,而且太麻烦了,这里需要禁用。

    我找到了那个 group,在设置里把强制 2FA 关掉了,结果发现还是不行,所有没开启 2FA 的成员还是被强制跳转,提示为:
    `The group settings for require you to enable Two-Factor Authentication for your account.`

    按照官方的办法停用了所有人的 2FA:
    `https://docs.gitlab.com/ee/security/two_factor_authentication.html`


    结果还是不行,我搜了一下 gitlab 文档没有有效信息,意识到这应该是 gitlab 的缓存 bug,重启 gitlab 也没用之后,只有硬着头皮去看源码了。

    gitlab 主要业务是 ruby 写的,我先把上面的提示关键字去搜源码,定位到对应的 controller 调用了一个验证 2FA 的逻辑,在:`/opt/gitlab/embedded/service/gitlab-rails/app/controllers/concerns/enforces_two_factor_authentication.rb`文件中。

    在该文件中看到了 check_two_factor_requirement 的类方法是负责 check 2FA 的,这里我们注释掉强制验证的代码库,重启 gitlab 就 ok 了。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2754 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:15 · PVG 22:15 · LAX 06:15 · JFK 09:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.