手动设置 Azure 资源管理器工作负载标识服务连接

在排除 Azure 资源管理器工作负载标识服务连接故障时,可能需要手动配置连接,而不是使用 Azure DevOps 中提供的自动化工具。

建议在开始手动配置之前尝试自动化方法

身份验证有两个选项:使用托管标识和使用服务主体。 托管标识选项的优点是,如果你无权创建服务主体,或者使用的是与 Azure DevOps 用户不同的 Microsoft Entra 租户,则可以使用它。

设置工作负载标识服务连接以使用托管标识身份验证

可能需要手动创建使用联合凭据的托管标识,然后授予所需的权限。 还可以将 REST API 用于此过程。

创建托管标识

  1. 登录 Azure 门户

  2. 在搜索框中输入“托管标识”。

  3. 选择创建

  4. 在“创建用户分配的托管标识”窗格中,输入或选择以下项的值:

    • 订阅:选择要在其中创建用户分配的托管标识的订阅。
    • 资源组:选择要在其中创建用户分配的托管标识的资源组,或选择“新建”来创建新资源组。
    • 区域:选择用于部署用户分配的托管标识的区域,例如“美国东部”。
    • 名称:这是用户分配的托管标识的名称,例如 UADEVOPS
  5. 复制托管标识的“订阅 ID”和“客户端 ID”值,供日后使用。

  6. 转到“设置”>“属性”。

  7. 复制“租户 ID”值以供稍后使用。

  8. 转到“设置”>“联合凭据”。

  9. 选择“添加凭据”。

  10. 选择“其他证书颁发者”方案。

  11. 输入“证书颁发者”和“使用者标识符”的值。 稍后将替换这些值。

    字段 说明
    颁发者 输入 https://app.vstoken.visualstudio.com/<unique-identifier>
    使用者标识符 指定 sc://<Azure DevOps organization>/<project name>/<service connection name>。 无需已创建服务连接。
  12. 选择“保存”。

  13. 让此窗口保持打开状态。 在此过程中,稍后将返回到窗口并更新应用注册联合凭据。

向托管标识授予权限

  1. 在 Azure 门户中,转到要为其授予权限的 Azure 资源(例如资源组)。

  2. 选择“访问控制(IAM)”。

    显示在资源菜单中选择访问控制的屏幕截图。

  3. 选择“添加角色分配”。 将所需角色分配给托管标识(例如,参与者)。

  4. 选择“查看并分配”。

为托管标识身份验证创建服务连接

  1. 在 Azure DevOps 中,打开项目并转到>“管道”>“服务连接”。

  2. 选择“新建服务连接”。

  3. 选择“Azure 资源管理器”,然后选择“下一步”。

  4. 选择“工作负载联合身份验证(手动)”,然后选择“下一步”。

    显示选择工作负载标识服务连接的屏幕截图。

  5. 对于“服务连接名称”,请输入在创建联合凭据时用于使用者标识符的值。

  6. 对于“订阅 ID”和“订阅名称”,请在 Azure 门户帐户中输入订阅的值。

    显示联合订阅凭据的屏幕截图。

  7. 在“身份验证”部分中:

    1. 对于“服务主体 ID”,请输入托管标识中的客户端 ID 值。

    2. 对于“租户 ID”,请输入托管标识中的“租户 ID”值。

      显示 Azure 门户托管标识值的屏幕截图。

  8. 在 Azure DevOps 中,复制为“证书颁发者”和“使用者标识符”生成的值。

    显示用于联合身份验证的 DevOps 凭据的屏幕截图。

  9. 在 Azure 门户中,返回到应用注册联合凭据。

  10. 将从 Azure DevOps 项目中的“证书颁发者”和“使用者标识符”复制的值粘贴到 Azure 门户中的联合凭据。

    显示 Azure DevOps 和 Azure 门户中联合凭据比较的屏幕截图。

  11. 在 Azure 门户中,选择“更新”以保存更新后的凭据。

  12. 在 Azure DevOps 中,选择“验证并保存”。

设置工作负载标识服务连接以使用服务主体身份验证

可能需要手动创建具有联合凭据的服务主体,然后授予所需的权限。 还可以将 REST API 用于此过程。

创建应用注册和联合凭据

  1. 在 Azure 门户中,转到“应用注册”

  2. 选择“新注册”。

    显示新应用注册的屏幕截图。

  3. 对于“名称”,输入应用注册的名称,然后选择“谁可以使用此应用程序或访问此 API”。

  4. 复制应用注册的“应用程序(客户端) ID”和“目录(租户) ID”值,以供日后使用。

    显示应用注册客户端 ID 和租户 ID 的屏幕截图。

  5. 转到“管理”>“证书和机密”

  6. 选择“联合凭据”。

    显示联合凭据选项卡的屏幕截图。

  7. 选择“添加凭据”。

  8. 选择“其他证书颁发者”方案。

    显示选择联合凭据方案的屏幕截图。

  9. 输入“证书颁发者”和“使用者标识符”的值。 稍后将替换这些值。

    字段 说明
    颁发者 输入 https://app.vstoken.visualstudio.com/<unique-identifier>
    使用者标识符 指定 sc://<Azure DevOps organization>/<project name>/<service connection name>。 无需已创建服务连接。
  10. 选择“保存”。

  11. 让此窗口保持打开状态。 在此过程中,稍后将返回到窗口并更新应用注册联合凭据。

向应用注册授予权限

  1. 在 Azure 门户中,转到要为其授予权限的 Azure 资源(例如资源组)。

  2. 选择“访问控制(IAM)”。

    显示在资源菜单中选择访问控制的屏幕截图。

  3. 选择“添加角色分配”。 将所需角色分配给应用注册(例如,参与者)。

  4. 选择“查看并分配”。

为服务主体身份验证创建服务连接

  1. 在 Azure DevOps 中,打开项目并转到>“管道”>“服务连接”。

  2. 选择“新建服务连接”。

  3. 选择“Azure 资源管理器”,然后选择“下一步”。

  4. 选择“工作负载联合身份验证(手动)”,然后选择“下一步”。

    显示选择工作负载标识服务连接的屏幕截图。

  5. 对于“服务连接名称”,请输入联合凭据中“使用者标识符”的值。

  6. 对于“订阅 ID”和“订阅名称”,请在 Azure 门户帐户中输入订阅的值。

    显示联合订阅凭据的屏幕截图。

  7. 在“身份验证”部分中:

    1. 对于“服务主体 ID”,请输入应用注册中“应用程序(客户端) ID”的值。

    2. 对于“租户 ID”,输入应用注册中“目录(租户) ID”的值。

  8. 复制为“证书颁发者”和“使用者标识符”生成的值。

    显示用于联合身份验证的 DevOps 凭据的屏幕截图。

  9. 在 Azure 门户中,返回到应用注册联合凭据。

  10. 将从 Azure DevOps 项目中的“证书颁发者”和“使用者标识符”复制的值粘贴到 Azure 门户中的联合凭据。

    Azure DevOps 和 Azure 门户中联合凭据比较的屏幕截图。

  11. 在 Azure 门户中,选择“更新”以保存更新后的凭据。

  12. 在 Azure DevOps 中,选择“验证并保存”。