【问题标题】:Can't use Managed Service identity (MSI) for App Service deployment with hosted Microsoft agent?无法将托管服务标识 (MSI) 用于托管 Microsoft 代理的应用服务部署?
【发布时间】:2021-09-13 23:01:31
【问题描述】:

我们有一个发布管道失败并显示以下消息:

资源类型“Microsoft.Web/Sites”的资源 ID 和资源名称 '应用服务名称'。错误:无法获取托管的访问令牌 服务负责人。请配置托管服务标识 (MSI) 虚拟机“https://aka.ms/azure-msi-docs”。状态码:400, 状态消息:错误请求

我们有 2 个不同的服务连接:

  • 使用服务主体身份验证的 Azure 资源管理器
  • 使用托管标识身份验证的 Azure 资源管理器

第一个,就像一个魅力。但是,由于开发人员想要限制 Azure AD 上的管理员访问权限,因此他尝试创建托管身份验证服务连接,乍一看,由于它允许我们选择应用服务,因此似乎表明它正在工作,直到实际部署完成触发并根据上面的错误消息失败。

经过多次在线搜索,我认为this 的答案可能是为什么托管身份验证服务连接失败但服务主体连接成功的原因。

我只是想确认一下,真的是这样吗?托管代理不支持基于 MSI 的身份验证,而这正是我们正在使用的……或者已经变了吗?

我们确实在使用微软代理池

此时我们的应用服务使用虚拟机没有意义。该用例不适用于我们拥有的仪表板。

【问题讨论】:

    标签: azure-devops azure-pipelines azure-resource-manager azure-managed-identity


    【解决方案1】:

    正如the docs所写:

    您需要在 Azure VM 上使用自托管代理才能使用托管服务标识

    我认为它总是这样。在这里,我们谈论的是分配给用作构建代理的 VM 的 MSI。不是 MSI,它是应用服务的标识。为什么?服务连接是一种抽象,可以轻松地对您的 Azure 订阅进行身份验证。因此,它为 VM 提供身份,然后当您对 Azure 执行某些操作时,感谢 MSI Azure 知道可以执行该操作。另一个选项是通过服务主体进行身份验证,但可以从任何 VM(包括 MS 托管)完成,因为它依赖于服务连接中保存的客户端 ID 和客户端密码。并且必须将 MSI 分配给特定的 VM,而这无法通过 MS 托管代理完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多