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

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

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

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

设置工作负荷标识服务连接

若要为 Azure 管道手动设置托管标识身份验证,请执行以下步骤,在 Azure 门户中创建托管标识,在 Azure DevOps 中建立服务连接,添加联合凭据,并授予必要的权限。 你将需要按此顺序执行以下步骤:

  1. 在 Azure 门户中创建托管标识。
  2. 在 Azure DevOps 中创建服务连接并另存为草稿。
  3. 在 Azure 门户中将联合凭据添加到托管标识。
  4. 在 Azure 门户中向托管标识授予权限。
  5. 在 Azure DevOps 中保存服务连接。

还可以将 REST API 用于此过程。

托管标识身份验证的先决条件

在 Azure 门户中创建托管标识

  1. 登录到 Azure 门户

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

  3. 选择创建

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

    • 订阅:选择要在其中创建用户分配的托管标识的订阅。
    • 资源组:选择要在其中创建用户分配的托管标识的资源组,或选择“新建”来创建新资源组。
    • 区域:选择用于部署用户分配的托管标识的区域(示例:美国东部)。
    • 名称:这是用户分配的托管标识的名称(示例:UADEVOPS)。
  5. 选择“查看 + 创建”以创建新的托管标识。 完成部署后,选择“转到资源”。

  6. 复制托管标识的“订阅”、“订阅 ID”和“客户端 ID”值,供日后使用。

  7. 在 Azure 门户中的托管标识中,转到设置>属性

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

在 Azure DevOps 中为托管标识身份验证创建服务连接

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

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

  3. 选择“Azure 资源管理器”。

  4. 选择标识类型应用注册或托管标识(手动)工作负荷联合身份验证凭据。

    显示为托管标识选择工作负荷标识服务连接的屏幕截图。

  5. 对于“服务连接名称”,输入一个值,例如 uamanagedidentity。 你将在联合凭据主题标识符中使用此值。

  6. 选择下一步

  7. 步骤 2:应用注册详细信息中:

    步骤 2:应用注册详细信息包含以下参数。 你可以输入或选择以下参数:

    参数 说明
    颁发者 必需。 DevOps 会自动创建颁发者 URL。
    使用者标识符 必需。 DevOps 会自动创建使用者标识符。
    环境 必需。 选择要连接到的云环境。 如果选择 Azure Stack,请输入环境 URL,如下所示:https://management.local.azurestack.external
    1. 选择范围级别。 选择订阅管理组机器学习工作区管理组是一些容器,可以帮助跨多个订阅管理访问权限、策略和符合性。 机器学习工作区用于创建机器学习项目。

      • 对于订阅范围,请输入以下参数:

        参数 说明
        订阅 ID 必需。 输入 Azure 订阅 ID。
        订阅名称 必需。 输入 Azure 订阅名称。
      • 对于管理组范围,请输入以下参数:

        参数 说明
        管理组 ID 必需。 输入 Azure 管理组 ID。
        管理组名称 必需。 输入 Azure 管理组名称。
      • 对于机器学习工作区范围,请输入以下参数:

        参数 说明
        订阅 ID 必需。 输入 Azure 订阅 ID。
        订阅名称 必需。 输入 Azure 订阅名称。
        资源组 必需。 选择包含工作区的资源组。
        ML 工作区名称 必需。 输入现有 Azure 机器学习工作区的名称。
        ML 工作区位置 必需。 输入现有 Azure 机器学习工作区的位置。
    2. 身份验证部分中,输入或选择以下参数:

      参数 说明
      应用程序(客户端) ID 必需。 输入你的托管标识的客户端 ID。
      目录(租户)ID 必需。 输入托管标识中的租户 ID。
    3. 安全性部分中,选择向所有管道授予访问权限以允许所有管道使用此服务连接。 如果未选择此选项,则必须手动授予对使用此服务连接的每个管道的访问权限。

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

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

  9. 选择“保留为草稿”以保存草稿凭据。 在托管标识在 Azure 门户中具有联合凭据之前,无法完成设置。

在 Azure 门户中添加联合凭据

  1. 在新的浏览器窗口中,在 Azure 门户中的托管标识中,转到设置>联合凭据

  2. 选择“添加凭据”。

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

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

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

  5. 输入输入联合凭据的“名称”

  6. 选择 添加

在 Azure 门户中向托管标识授予权限

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

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

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

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

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

保存 Azure DevOps 服务连接

  1. 在 Azure DevOps 中,返回到草稿服务连接。

  2. 选择“完成设置”

  3. 选择验证并保存。 此步骤成功完成后,将完全配置托管标识。