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

如何创建服务主体为外部客户授权访问DevOps制品源自定义视图?

解决方案:通过Azure AD服务主体授权外部访问DevOps Artifacts视图

核心结论

完全可以通过Azure AD服务主体实现你的需求,具体步骤如下:

1. 创建Azure AD服务主体

因为你们已接入Azure AD,直接在Azure AD中创建用于外部客户自动化流程的服务主体:

  • 登录Azure门户,进入Azure Active Directory > 应用注册 > 新注册
  • 填写名称(比如devops-public-feed-reader),账户类型选择「任何组织目录中的账户(任何Azure AD目录 - 多租户)」(适配外部客户的Azure AD租户场景)
  • 注册完成后,记录应用程序(客户端)ID和目录(租户)ID
  • 生成客户端密码:进入服务主体的证书和密码 > 新客户端密码,设置有效期后保存生成的密码值(仅显示一次,务必留存)

2. 给服务主体分配DevOps Artifacts视图只读权限

在Azure DevOps中完成权限配置:

  • 打开目标项目,进入Artifacts > 对应Feed > 右上角设置图标
  • 切换到权限标签页,点击添加用户/组,搜索并选中刚创建的服务主体,分配阅读器权限
  • 切换到视图标签页,找到@public-releases自定义视图,点击权限,同样添加该服务主体并分配阅读器权限(确保仅能访问此视图,而非整个Feed)

3. 外部客户用服务主体访问Feed

客户的自动化流程可通过以下方式认证拉取制品:

  • 使用Azure DevOps CLI:
    az devops login --organization https://dev.azure.com/你的组织名 --service-principal --username 客户端ID --password 客户端密码 --tenant 租户ID
    
    之后可通过az artifacts universal download等命令拉取视图内制品
  • 使用Maven/Gradle等构建工具(以Maven的settings.xml为例):
    <servers>
      <server>
        <id>devops-public-feed</id>
        <username>客户端ID</username>
        <password>客户端密码</password>
      </server>
    </servers>
    <repositories>
      <repository>
        <id>devops-public-feed</id>
        <url>https://pkgs.dev.azure.com/你的组织名/项目名/_packaging/@public-releases/maven/v1</url>
        <releases>
          <enabled>true</enabled>
        </releases>
      </repository>
    </repositories>
    

注意事项

  • 严格控制权限范围,确保服务主体仅拥有目标视图的阅读器权限,避免过度授权
  • 定期轮换服务主体的客户端密码,提升安全性
  • 若客户无Azure AD账户,也可使用个人访问令牌(PAT),但服务主体更适合自动化场景,且便于权限集中管理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:01:00