1

我正在寻找一个简单的解决方案来验证和使用WebSiteManagementClient. 我看到的示例SubscriptionCloudCredentials利用 Azure AD 应用程序来创建所需的。我更愿意在SubscriptionCloudCredentials不使用 AD 应用程序的情况下创建。

如果可能的话,我宁愿只使用在发布配置文件设置 XML 中找到的 Web Deploy un/pw 凭据(因为我已经有代码使用这些来与具有基本身份验证的 kudu api 交互)

我发现这个潜在的解决方案改为使用管理证书更多信息)。但同样,如果可能的话,我宁愿只使用 Web Deploy un/pw。

(我知道管理证书处于订阅级别,Web Deploy un/pw 处于应用服务/网站实例级别。我只是在说明我想要的解决方案是什么样的。)

4

2 回答 2

1

管理证书允许您仅使用经典部署(Azure 服务管理)模型而不是 Azure 资源管理部署模型进行身份验证。

如果您的 Web 应用程序不是使用经典部署模型创建的,您将需要一个TokenCloudCredential而不是CertificateCloudCredential.

从技术上讲,您仍然可以创建Certificate-based SubscriptionCloudCredentials,但它仅适用于使用经典部署模型创建的 Azure Web 应用。

于 2017-01-28T01:17:11.777 回答
0

我宁愿只使用 Web Deploy un/pw。

如果您想在 Web Deploy 期间将证书上传到 Azure WebApp,那么我们可以使用 ARM 模板,更多详细信息请参阅文档

{
    "name": "[parameters('certificateName')]",
    "apiVersion": "2014-04-01",
    "type": "Microsoft.Web/certificates",
    "location": "[resourceGroup().location]",
    "properties": {
        "pfxBlob": "pfx base64 blob",
        "password": "some pass"
    }
}

关于如何创建带有证书的subscriptionCloudCredentials 以及如何创建自定义证书,我为它做了一个demo。更多细节请参考另一个SO 线程

如果我们尝试在 Azure 上运行该项目。请参阅文档 在 Azure 网站应用程序中使用证书。添加一个名为 WEBSITE_LOAD_CERTIFICATES 的应用程序设置,并将其值设置为证书的指纹,这将使您的 Web 应用程序可以访问它

所以我们还需要在ARM模板中添加AppSetting,更多详细信息请参考文档

  

{
   "name": "appsettings",
    "type": "config",
    "apiVersion": "2015-08-01",
    "dependsOn": [
        "[concat('Microsoft.Web/sites/', variables('webSiteName'))]"
    ],
    "tags": {
        "displayName": "WebAppSettings"
    },
    "properties": {
        " WEBSITE_LOAD_CERTIFICATES ": "thumbprint "
    }
于 2017-01-30T05:47:58.110 回答