同一租户下跨Azure组织流水线免PAT安装npm包方案咨询
同一租户下跨组织访问Azure Artifacts npm包的无PAT方案
方案1:用Azure AD服务主体替代PAT
- 在Azure AD里创建一个应用程序注册,给这个服务主体分配Organization1中Azure Artifacts的
Packaging Reader权限(只读权限足够拉取包) - 到Organization2的Azure DevOps中,创建Azure Resource Manager服务连接,选择服务主体身份验证,关联刚创建的应用程序
- 在流水线的npm任务里,将registry指向Organization1的Artifacts源,使用这个服务连接完成身份验证,全程不绑定个人账号,也无需定期刷新PAT
方案2:配置组织间信任(同一租户专属)
- 打开Organization1的Azure DevOps设置,路径为
Organization Settings > Security > Policies > Trusted organizations,将Organization2添加为受信任组织 - 给Organization2的流水线服务主体(格式为
{Org2名称} Build Service ({租户ID}))分配Organization1中Artifacts的读取权限 - 之后在Organization2的流水线里直接配置npm源指向Organization1的Artifacts,流水线会自动用自身的服务主体身份完成认证,无需额外配置PAT或服务连接
方案3:通用包共享(适合特定场景)
- 若场景允许,在Organization1将目标npm包发布为通用包,然后配置包的共享权限,允许Organization2的相关主体访问
- 在Organization2的流水线中,通过Azure DevOps的通用包任务拉取该包,再作为本地npm包安装,同样能摆脱个人PAT的依赖
内容的提问来源于stack exchange,提问作者Angie05
相关产品推荐
相关产品推荐

