You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Buildbot Web应用匿名访问?(已部署于云VM、Docker,版本0.9.8)

解决Buildbot 0.9.8禁用匿名访问的问题

我正好对Buildbot 0.9.x系列的权限配置有实战经验,针对你提到的「配置了认证但无法禁用匿名访问」的问题,给你一套精准适配0.9.8版本的解决方案——毕竟这个版本的文档确实比较零散,踩过的坑给你梳理清楚:

核心配置:通过authz模块默认拒绝匿名请求

Buildbot 0.9.8的权限控制核心是util.Authz,想要彻底禁止匿名访问,必须设置**defaultDeny=True**,这会让所有未认证的请求默认被拒绝,再给已认证用户开放对应权限。

打开你的master.cfg,找到或添加以下配置块:

from buildbot.plugins import auth, util

# 这里是你已经配置好的认证方式(比如账号密码认证,保持原有配置即可)
c['auth'] = auth.UserPasswordAuth([("admin", "your_secure_password")])

# 关键的访问控制配置,必须包含defaultDeny=True
c['authz'] = util.Authz(
    defaultDeny=True,  # 这一行是禁用匿名访问的核心
    # 给认证用户设置允许的操作,根据你的需求调整
    allowRules=[
        # 给管理员开放所有操作权限
        util.AnyEndpointMatcher(role="admins"),
        util.AnyControlEndpointMatcher(role="admins"),
        # 如果需要给普通用户只读权限,可以添加下面的规则:
        # util.EndpointMatcher(
        #     endpoint=["Builds", "builders", "workers", "changes"],
        #     role="viewers"
        # )
    ],
    # 绑定用户到对应角色
    roleMatchers=[
        util.RolesFromUsername(roles={'admins': ["admin"]})
        # 如果有普通用户,添加:'viewers': ["user1", "user2"]
    ]
)

额外检查:关闭www模块的匿名访问开关

有些情况下,即使authz配置正确,www模块的allowAnonymous选项如果开启,依然会让匿名用户能访问部分内容。确保你的www配置里加上这一行:

c['www'] = {
    'port': 8010,  # 你的Buildbot端口
    'allowAnonymous': False,  # 强制关闭匿名访问入口
    # 其他www相关配置(比如webserver、plugins等)保持不变
}

验证与重启

配置完成后,重启Buildbot master使配置生效:

buildbot restart /path/to/your/buildbot/master/directory

重启后,退出当前登录状态,尝试访问Buildbot界面——此时应该会直接跳转到登录页面,无法查看任何内容(包括构建日志、状态页等)。如果还有问题,检查以下两点:

  • 是否有反向代理(比如Nginx)绕过了Buildbot的认证配置?确保代理没有添加允许匿名的规则。
  • 有没有其他Buildbot插件修改了权限逻辑?暂时禁用非必要插件测试。

内容的提问来源于stack exchange,提问作者jagra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:35:25