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

如何在Azure DevOps的Git仓库中防止用户身份伪造?

问题:Azure DevOps Git中如何防止身份伪造并满足审计需求?

在Azure DevOps的Git仓库中,很容易伪造其他用户身份,平台默认没有相关防护机制:

  • 修改提交者可执行以下命令:
    git config --global user.email "foo@bar.baz"
    git config --global user.name "foo"
    
  • 修改作者可执行:
    git commit --author="foo <foo@bar.baz>"
    

Azure DevOps允许直接推送这类伪造后的提交,默认不会验证提交声明的作者是否为实际提交人。虽然推送操作会记录当前执行者,但如果仓库迁移到其他Azure DevOps项目,原有推送信息会丢失——因为迁移是由执行迁移的用户完成推送的。

出于审计需求,需要明确知晓谁修改了哪些代码,请问最佳实现方案是什么?在Azure DevOps Git环境中是否可行?还是需要更换版本控制系统?


可行解决方案(无需更换版本控制系统)

1. 启用提交签名验证

Azure DevOps支持Git提交签名验证,要求所有提交必须使用GPG或SSH签名,且签名密钥必须与用户的Azure DevOps账户关联。这能确保提交的作者/提交者身份经过官方验证,无法随意伪造。
操作路径:项目仓库「设置」→「仓库」→「策略」,开启「要求提交签名」,并关联团队成员的验证密钥。

2. 配置分支保护策略

强制所有代码变更通过Pull Request(PR)提交,禁止直接推送至核心分支:

  • 设置PR必须经过至少一位指定审核者批准;
  • 开启「要求构建成功」「要求关联工作项」等附加验证规则;
  • 即便提交作者被伪造,PR的创建者、审核者、合并者信息都会被完整记录在PR历史中,可追溯实际执行人。

3. 启用组织级审计日志

Azure DevOps提供完整的审计日志功能,可记录所有仓库操作(包括推送、PR创建/合并、分支修改等):

  • 在组织设置的「审计」页面开启日志记录,日志会留存所有操作的执行者、时间、操作内容;即便仓库迁移,组织级审计日志也能保留关键操作记录;
  • 支持导出日志进行长期归档,满足合规审计要求。

4. 使用官方工具迁移仓库

如果需要迁移仓库,优先使用Azure DevOps官方迁移工具(如Azure Repos迁移工具),而非手动推送。官方工具会尽可能保留原始提交的关联元数据,同时迁移过程的操作也会被审计日志记录,减少关键信息丢失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:50:28