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

如何在Azure DevOps中创建用户独立访问令牌访问私有Python库?

在Azure DevOps中创建独立于用户的Python Feed访问令牌

要在非特定用户的服务器上访问私有Azure DevOps Python Feed,你可以通过Azure AD服务主体生成独立于个人用户的访问凭据,具体步骤如下:

1. 创建Azure AD服务主体

  • 登录Azure门户,进入「Azure Active Directory」→「应用注册」→「新注册」
  • 填写服务主体名称(例如DevOpsFeedService),选择租户范围(根据组织需求选择),重定向URI留空,完成注册
  • 注册完成后,记录应用程序(客户端)ID和目录(租户)ID
  • 进入「证书和密码」→「新建客户端密码」,设置过期时间,保存生成的密码值(仅显示一次,务必妥善保存)

2. 为服务主体分配Feed访问权限

  • 打开Azure DevOps组织,进入目标项目→「工件」→对应Feed
  • 点击Feed右上角的设置图标(⚙️)→「权限」
  • 点击「添加用户/组」,搜索并选择刚才创建的服务主体名称,添加后为其分配合适权限:
    • 仅拉取包:分配「读取者」权限
    • 需要推送包:分配「贡献者」权限
  • 保存权限设置

3. 获取服务主体的访问令牌

使用服务主体的凭据调用Azure AD令牌接口获取访问令牌,示例curl命令:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=<你的客户端ID>&client_secret=<你的客户端密码>&grant_type=client_credentials&resource=https://app.vssps.visualstudio.com/" \
https://login.microsoftonline.com/<你的租户ID>/oauth2/token

响应中返回的access_token即为可用于访问Feed的独立令牌。

4. 配置服务器的pip环境

在服务器的pip配置文件(如~/.pip/pip.conf或全局配置/etc/pip.conf)中添加以下内容:

[global]
extra-index-url=https://<FEED_NAME>:<获取到的access_token>@pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/pypi/simple/

注意:服务主体的access_token默认有效期为1小时,需定期刷新。可以编写自动化脚本定期获取新令牌并更新pip配置,确保服务持续可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:02:58