0

重复的问题?

我不相信它是。如前所述,这是使用本地部署中的我的用户工作的,并且所有(据我所知)权限都已授予服务主体和在本地也失败的测试用户。

我有一个配置和部署 Web 应用程序的 ARM 模板,其中一部分是将证书绑定应用到 Web 应用程序。模板的那部分如下所示:

{
  "type": "Microsoft.Web/sites",
  "kind": "api",
  "name": "[parameters('name')]",
  "apiVersion": "2015-08-01",
  "location": "[resourceGroup().location]",
  "properties": {
    "name": "[parameters('name')]",
    "serverFarmId": "[resourceId(parameters('servicePlanGroup'), 'Microsoft.Web/serverFarms', parameters('servicePlanName'))]"
  },
  "resources": [
    {
      "name": "[parameters('certificateName')]",
      "apiVersion": "2014-04-01",
      "type": "Microsoft.Web/certificates",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
      ],
      "properties": {
        "keyVaultId": "[parameters('keyVaultId')]",
        "keyVaultSecretName": "[parameters('keyVaultSecretName')]"
      }
    }
   ]
  }

当我从我的 PC 本地运行它时,它工作正常,当我从 VSTS 运行它时,部署失败,如下所示:

在此处输入图像描述

错误在哪里:

"operationName": {
    "localizedValue": "Microsoft.Web/certificates/write",
    "value": "Microsoft.Web/certificates/write"
},
"properties": {
    "statusCode": "Unauthorized",
    "statusMessage": "{\"error\":{\"code\":\"BadRequest\",\"message\":\"\"}}"
}

SSL 证书和 KeyVault 都为该版本运行 VSTS 的服务主体添加了权限。

Release Principal 用户拥有Read,ListKeyVault 中的密钥和机密,并且Contributor在订阅中。我在本地工作的帐户是co-admin.

关于需要添加哪些权限的任何想法?

更新

我添加了另一个testuser与服务主体具有相同权限的用户,但它现在在本地失败。我想添加权限并查看有效的方法将是一些试验和错误。

4

1 回答 1

1

这不是一个重复的问题 - 如前所述,它指出了跨帐户的奇怪权限问题,即使设置了权限。事实证明,尽管存在以下问题,但由于某种原因,共同管理员仍然可以工作 - 也许是 ARM/权限基础架构中的潜在错误?

这适用于共同管理员用户,但不适用于其他任何人。

在此处输入图像描述

而这适用于特权较低的用户/委托人。

在此处输入图像描述

请注意架构版本更改。的原始模式2014-04-01实际上不包含任何关于Microsoft.Web/Certificates,而更新的模式2015-08-01确实包含此信息。

testuser使用与 VSTS 服务主体相同的权限进行本地测试可以很好地适应此更改。

其他任何尝试实现 SSL 绑定的人的旁注:

在我的示例中,资源的位置都是一样的。我怀疑如果保管库位于不同的位置,则可能还需要指定其资源组才能使其正常工作-尽管我尚未测试该理论。

于 2017-02-21T11:26:47.477 回答