
CVAT 自托管部署实战通过 auth_config.yml 禁用注册与密码式登录【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat导读本指南面向 CVAT 自托管Self-hosted / Enterprise运维人员讲解如何通过统一的认证配置文件auth_config.yml关闭用户自助注册与基于密码的登录Disable Basic Authentication从而把账号入口收敛到 SSO 或社交账号等受控认证方式。读完本文你将掌握basic配置段的完整写法、AUTH_CONFIG_PATH环境变量的使用方式、Docker 与 Kubernetes 两种部署形态下的生效方法以及背后 IAM 认证链路的源码依据。为什么需要禁用基本认证在 CVAT 的默认配置中cvat/settings/base.py 中IAM_TYPE BASIC任何访问者都可以打开登录页自助注册账号并通过用户名/邮箱加密码的方式登录。对于企业内网或生产环境这种开放式注册 密码认证存在两个明显的安全与管理问题账号失控任何人都能注册账号并接触标注平台无法保证只有受邀请或受管制的成员才能进入密码体系冗余当团队已经接入 SSOOIDC/SAML或 Google/GitHub 等社交登录后本地密码账户往往不再需要反而成为额外的攻击面和管理负担。CVAT 为此提供了一项面向 Enterprise 客户的付费能力关联文档 front matter 中products: enterprise通过一个外置 YAML 配置文件独立控制是否允许注册与是否允许密码登录两个开关无需改动任何应用源码。auth_config.ymlCVAT 认证配置的统一入口CVAT 的登录与注册流程由一个专门的配置文件定制参见 SSO 配置 中的说明你可以创建自定义的 YAML 配置文件惯例命名为auth_config.yml并在启动 CVAT 时通过环境变量AUTH_CONFIG_PATH提供其路径。这个文件是多个认证模块的共享入口仓库中的相关文档证实它至少承载三个顶层配置段顶层配置段作用对应文档basic控制本地账号的注册与密码登录开关本文所讲的核心内容sso配置 OIDC/SAML 身份提供商IdP集成SSO 配置social_account配置 Google、GitHub 等社交账号登录社交账号配置三者可独立配置、协同工作。典型的组合是禁用basic注册与密码登录同时启用sso或social_account让用户只能通过受控身份源登录。配置禁用注册与密码登录完整配置示例在auth_config.yml中添加若文件尚不存在则创建以下内容basic: registration: enabled: false login: enabled: false该配置包含两个独立的布尔开关配置项取值含义basic.registration.enabledtrue/false是否允许用户自助注册账号false表示关闭注册入口basic.login.enabledtrue/false是否允许使用密码登录本地账号false表示禁止密码登录两个开关彼此独立可按需组合。例如只禁注册、保留密码登录registration.enabled: falselogin.enabled: true注册与密码登录全部关闭账号仅通过 SSO/社交账号进入两个开关都设为false。重新启用文档明确指出将对应开关改回true即可重新开放注册或密码登录例如basic: registration: enabled: true # 恢复自助注册 login: enabled: true # 恢复密码登录修改后同样需要重启容器使配置生效见下一节。让配置生效环境变量与容器重启导出配置路径auth_config.yml创建/更新完成后需要在启动 CVAT 之前导出环境变量AUTH_CONFIG_PATHexport AUTH_CONFIG_PATHpath_to_auth_config将path_to_auth_config替换为你保存auth_config.yml的实际路径。该环境变量是 CVAT 认证配置的统一入口——SSO 配置 与 社交账号配置 中启用 SSO/社交登录时使用的也是同一个变量说明它控制着整个auth_config.yml的加载。重启 CVAT 容器重启警告如果 CVAT 已经处于运行状态修改配置后必须重启容器认证配置才会被重新加载。使用 Docker Compose 部署时典型做法是重新拉起后端容器docker compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.override.yml up -d --build按你的实际部署方式选择 compose 文件组合社交账号配置 中给出的即为这种带--build的组合命令。重启后登录页上的注册入口应消失使用密码登录本地账号将被拒绝而页面上的 SSO 登录入口如有配置仍然可用。Kubernetes 部署下的配置挂载在 Helm/Kubernetes 部署形态下auth_config.yml以 Secret 的形式挂载到后端容器内。仓库中的 Kubernetes 部署指南 给出了完整的操作链路按本文以及 SSO、社交账号配置文档编写auth_config.yml将文件作为 Secret 上传到集群kubectl create secret generic cvat-auth-config --from-fileauth_config.yml在values.override.yml中为后端容器声明卷与挂载点把 Secret 挂载到/home/django/auth_config.ymlcvat: cvat: backend: permissionFix: enabled: false server: additionalVolumes: - name: auth-config secret: secretName: cvat-auth-config additionalVolumeMounts: - mountPath: /home/django/auth_config.yml name: auth-config subPath: auth_config.yml使用 Helm 升级发布如helm upgrade -n dev-ent dev-ent -i --create-namespace ./cvat_enterprise -f ./values.override.yaml。挂载路径/home/django/auth_config.yml与容器内的默认预期位置一致升级指南 中也提到该路径为数据目录之一确保后端进程能读取到配置。源码视角IAM_BASIC 认证链路虽然AUTH_CONFIG_PATH的解析逻辑属于 Enterprise 组件但仓库中的开源代码清晰地展示了与之配套的基本认证链路可以作为理解开关作用范围的事实依据注册与密码端点是 BASIC 模式的专属能力cvat/apps/iam/urls.py 中/api/auth/register路由以及密码重置/修改路由只有在settings.IAM_TYPE BASIC时才被挂载同时/api/auth/login使用自定义的LoginViewEx对应BASIC_LOGIN_PATH_NAME rest_login。也就是说禁用basic.login.enabled后受影响的就是这条密码登录链路禁用basic.registration.enabled后/api/auth/register对应的RegisterViewExcvat/apps/iam/views.py将拒绝创建账号。序列化器层面对齐cvat/settings/base.py 中REST_AUTH显式指定了 CVAT 自己的注册、登录、密码重置与修改序列化器如RegisterSerializerEx、LoginSerializerEx这些序列化器在 cvat/apps/iam/serializers.py 中实现并对注册/登录行为做了定制例如Unable to login with provided credentials的校验逻辑认证开关最终作用于这些入口。登录方式与角色基础cvat/settings/base.py 设置ACCOUNT_LOGIN_METHODS {username, email}支持用户名或邮箱登录cvat/settings/base.py 定义IAM_DEFAULT_ROLE user与IAM_ROLES优先级列表这些构成了禁用密码登录后由 SSO 等外部身份源接管账号时的本地角色基础。从源码结构可以推断auth_config.yml中的basic开关是在上述注册/登录视图与序列化器入口之上做的一层总闸false意味着无论底层逻辑如何密码认证与自助注册路径都会被关闭。验证配置是否生效配置并重启后可通过以下方式确认开关已生效界面验证打开 CVAT 登录页https://cvat_host/auth/login确认创建账号/注册入口消失如启用了 SSO应看到Continue with SSO等受控登录选项。接口验证直接请求注册接口如POST /api/auth/register应返回拒绝/失败响应POST /api/auth/login的密码认证同样被阻止——这与 cvat/apps/iam/urls.py 中路由的挂载逻辑相符。日志检查查看后端容器日志如docker compose logs cvat_server确认启动时成功加载了AUTH_CONFIG_PATH指向的配置文件且无配置解析报错。相关文档SSO 配置OIDC/SAML 身份提供商集成社交账号配置Google/GitHub 等注册与账号访问默认注册/登录流程Kubernetes 部署指南认证链路相关源码cvat/apps/iam/urls.py、cvat/apps/iam/views.py、cvat/apps/iam/serializers.py、cvat/settings/base.py【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考