重复问题?
我不相信它。如上所述,这是在本地部署中使用我的用户,并且所有(据我所知)权限已授予服务主体和本地也失败的测试用户。
我有一个ARM模板,用于配置和部署Web应用程序,其中一部分是将证书绑定应用于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用户对KeyVault中的密钥和机密有Read,List
,并且在订阅中是Contributor
。我在本地工作的帐户是co-admin
。
有关需要添加哪些权限的任何想法?
更新
我添加了另一个用户testuser
,该用户与服务主体具有相同的权限,现在它在本地失败。我想添加权限并查看哪些有效会有一些试验和错误。
答案 0 :(得分:1)
这不是一个重复的问题 - 正如所提到的那样,即使设置了权限,它也指向了帐户之间的奇怪权限问题。事实证明,出于某种原因,尽管存在以下问题,共同管理员仍然可以工作 - 可能是ARM /权限基础设施中的潜在错误?
这适用于共同管理员用户,但不适用于其他任何人。
虽然这适用于较低特权的用户/委托人。
请注意架构版本更改。 public class MeButton
: Button
{
List<TextBox> m_DependantOn = new List<Control>();
[Browsable(true)]
public List<TextBox> DependantOn
{
get { return m_DependantOn; }
set { RemoveEvents(); m_DependantOn = value; AssignEvents(); }
}
void RemoveEvents()
{
foreach(TextBox ctrl in m_DependantOn)
ctrl.TextChanged -= WhenTextChanged;
}
void AssignEvents()
{
foreach(TextBox.ctrl in m_DependantOn)
ctrl.TextChanged += WhenTextChanged;
}
void WhenTextChanged(object sender, TextChangedEventArgs e)
{
this.Enabled = true;
}
}
的原始架构实际上并未包含有关2014-04-01
的任何内容,而更新的架构Microsoft.Web/Certificates
确实包含此信息。
使用具有与VSTS服务主体相同权限的2015-08-01
的本地测试可以正常进行此更改。
对于试图实现SSL绑定的其他人的旁注:
我的示例中的资源位置完全相同。我怀疑如果保险库位于不同的位置,那么它的资源组也可能需要指定为同样的工作 - 我还没有测试过这个理论。