手动设置 Azure 资源管理器工作负载标识服务连接
在排除 Azure 资源管理器工作负载标识服务连接故障时,可能需要手动配置连接,而不是使用 Azure DevOps 中提供的自动化工具。
建议在开始手动配置之前尝试自动化方法。
身份验证有两个选项:使用托管标识和使用服务主体。 托管标识选项的优点是,如果你无权创建服务主体,或者使用的是与 Azure DevOps 用户不同的 Microsoft Entra 租户,则可以使用它。
设置工作负载标识服务连接以使用托管标识身份验证
可能需要手动创建使用联合凭据的托管标识,然后授予所需的权限。 还可以将 REST API 用于此过程。
创建托管标识
登录 Azure 门户。
在搜索框中输入“托管标识”。
选择创建。
在“创建用户分配的托管标识”窗格中,输入或选择以下项的值:
- 订阅:选择要在其中创建用户分配的托管标识的订阅。
- 资源组:选择要在其中创建用户分配的托管标识的资源组,或选择“新建”来创建新资源组。
- 区域:选择用于部署用户分配的托管标识的区域,例如“美国东部”。
- 名称:这是用户分配的托管标识的名称,例如 UADEVOPS。
复制托管标识的“订阅 ID”和“客户端 ID”值,供日后使用。
转到“设置”>“属性”。
复制“租户 ID”值以供稍后使用。
转到“设置”>“联合凭据”。
选择“添加凭据”。
选择“其他证书颁发者”方案。
输入“证书颁发者”和“使用者标识符”的值。 稍后将替换这些值。
字段 说明 颁发者 输入 https://app.vstoken.visualstudio.com/<unique-identifier>
。使用者标识符 指定 sc://<Azure DevOps organization>/<project name>/<service connection name>
。 无需已创建服务连接。选择“保存”。
让此窗口保持打开状态。 在此过程中,稍后将返回到窗口并更新应用注册联合凭据。
向托管标识授予权限
在 Azure 门户中,转到要为其授予权限的 Azure 资源(例如资源组)。
选择“访问控制(IAM)”。
选择“添加角色分配”。 将所需角色分配给托管标识(例如,参与者)。
选择“查看并分配”。
为托管标识身份验证创建服务连接
在 Azure DevOps 中,打开项目并转到>“管道”>“服务连接”。
选择“新建服务连接”。
选择“Azure 资源管理器”,然后选择“下一步”。
选择“工作负载联合身份验证(手动)”,然后选择“下一步”。
对于“服务连接名称”,请输入在创建联合凭据时用于使用者标识符的值。
对于“订阅 ID”和“订阅名称”,请在 Azure 门户帐户中输入订阅的值。
在“身份验证”部分中:
对于“服务主体 ID”,请输入托管标识中的客户端 ID 值。
对于“租户 ID”,请输入托管标识中的“租户 ID”值。
在 Azure DevOps 中,复制为“证书颁发者”和“使用者标识符”生成的值。
在 Azure 门户中,返回到应用注册联合凭据。
将从 Azure DevOps 项目中的“证书颁发者”和“使用者标识符”复制的值粘贴到 Azure 门户中的联合凭据。
在 Azure 门户中,选择“更新”以保存更新后的凭据。
在 Azure DevOps 中,选择“验证并保存”。
设置工作负载标识服务连接以使用服务主体身份验证
可能需要手动创建具有联合凭据的服务主体,然后授予所需的权限。 还可以将 REST API 用于此过程。
创建应用注册和联合凭据
选择“新注册”。
对于“名称”,输入应用注册的名称,然后选择“谁可以使用此应用程序或访问此 API”。
复制应用注册的“应用程序(客户端) ID”和“目录(租户) ID”值,以供日后使用。
转到“管理”>“证书和机密”。
选择“联合凭据”。
选择“添加凭据”。
选择“其他证书颁发者”方案。
输入“证书颁发者”和“使用者标识符”的值。 稍后将替换这些值。
字段 说明 颁发者 输入 https://app.vstoken.visualstudio.com/<unique-identifier>
。使用者标识符 指定 sc://<Azure DevOps organization>/<project name>/<service connection name>
。 无需已创建服务连接。选择“保存”。
让此窗口保持打开状态。 在此过程中,稍后将返回到窗口并更新应用注册联合凭据。
向应用注册授予权限
在 Azure 门户中,转到要为其授予权限的 Azure 资源(例如资源组)。
选择“访问控制(IAM)”。
选择“添加角色分配”。 将所需角色分配给应用注册(例如,参与者)。
选择“查看并分配”。
为服务主体身份验证创建服务连接
在 Azure DevOps 中,打开项目并转到>“管道”>“服务连接”。
选择“新建服务连接”。
选择“Azure 资源管理器”,然后选择“下一步”。
选择“工作负载联合身份验证(手动)”,然后选择“下一步”。
对于“服务连接名称”,请输入联合凭据中“使用者标识符”的值。
对于“订阅 ID”和“订阅名称”,请在 Azure 门户帐户中输入订阅的值。
在“身份验证”部分中:
对于“服务主体 ID”,请输入应用注册中“应用程序(客户端) ID”的值。
对于“租户 ID”,输入应用注册中“目录(租户) ID”的值。
复制为“证书颁发者”和“使用者标识符”生成的值。
在 Azure 门户中,返回到应用注册联合凭据。
将从 Azure DevOps 项目中的“证书颁发者”和“使用者标识符”复制的值粘贴到 Azure 门户中的联合凭据。
在 Azure 门户中,选择“更新”以保存更新后的凭据。
在 Azure DevOps 中,选择“验证并保存”。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈