如何禁用Azure DevOps仓库的SSH克隆并限制非公司设备访问?
限制Azure DevOps仓库克隆到个人设备的解决方案
CAS策略的局限性
CAS(条件访问策略)无法直接限制SSH克隆行为,因为SSH克隆依赖SSH密钥认证,不经过Azure AD身份验证流程,而CAS仅管控Azure AD认证的场景(如Web登录、HTTPS克隆的身份验证)。
可行解决方案
1. 禁用SSH克隆权限
直接关闭SSH访问路径:
- 项目层级:进入项目设置 → 仓库 → 安全,针对目标用户/组,将Git SSH权限设置为拒绝
- 组织层级:进入组织设置 → 安全 → 权限管理,全局禁用所有仓库的SSH访问权限
2. 配置IP允许列表
仅允许公司内网IP访问仓库:
- 进入组织设置 → 安全 → IP允许列表,添加公司办公网络的IP段
- 无论使用HTTPS还是SSH,非指定IP的设备都无法发起克隆请求
3. 强制HTTPS克隆并结合CAS策略
通过CAS管控HTTPS克隆的设备合规性:
- 禁用SSH克隆权限,强制用户使用HTTPS方式访问仓库
- 在Azure AD中配置CAS策略,将Azure DevOps设为目标云应用,设置条件为设备必须符合Intune合规标准或已加入混合Azure AD域
- 个人设备因无法满足合规条件,将被阻止通过HTTPS克隆仓库
4. 精细化管控仓库克隆权限
针对特定用户/组限制克隆权限:
- 进入仓库安全设置,对目标用户/组,将Git克隆权限设置为拒绝
- 即使用户拥有读取权限,也无法执行克隆操作
5. 审计与监控
通过日志监控异常克隆行为:
- 查看Azure DevOps的审计日志,追踪克隆操作的来源IP和身份信息
- 配置Azure Monitor告警,当检测到非合规IP的克隆操作时及时通知管理员
内容的提问来源于stack exchange,提问作者abhishek kavthekar
相关产品推荐
相关产品推荐

