我正在寻找一个简单的验证解决方案并使用WebSiteManagementClient
。我见过的examples使用Azure AD应用程序来创建所需的SubscriptionCloudCredentials
。我更喜欢在不使用AD应用程序的情况下创建SubscriptionCloudCredentials
。
如果可能的话,我更愿意只使用发布配置文件设置XML中的Web Deploy un / pw凭证(因为我已经有使用这些凭据与基本身份验证的kudu api进行交互的代码)
我找到this可能的解决方案而是使用management certificate(more info)。但同样,如果可能的话,我宁愿只使用Web部署un / pw。
(我知道管理证书处于订阅级别,Web部署un / pw处于App Service / WebSite实例级别。我只是说明我想要的解决方案的样子。)
答案 0 :(得分:1)
管理证书允许您仅使用经典部署(Azure服务管理)模型进行身份验证,而不是Azure资源管理部署模型。
如果您的网络应用程序不是使用经典部署模型创建的,那么您需要TokenCloudCredential
而不是CertificateCloudCredential
。
从技术上讲,您仍然可以创建Certificate-based SubscriptionCloudCredentials
,但它只适用于使用经典部署模型创建的Azure Web应用。
答案 1 :(得分:0)
我更愿意使用Web Deploy un / pw。
如果要在Web Deploy期间将证书上载到Azure WebApp,那么我们可以使用ARM模板,更多详细信息,请参阅document。
{
"name": "[parameters('certificateName')]",
"apiVersion": "2014-04-01",
"type": "Microsoft.Web/certificates",
"location": "[resourceGroup().location]",
"properties": {
"pfxBlob": "pfx base64 blob",
"password": "some pass"
}
}
关于如何使用证书创建subscriptionCloudCredentials以及如何创建自定义证书,我做了一个演示。更多详情请参阅另一个SO thread。
如果我们尝试在Azure上运行该项目。请参阅文档Using Certificates in Azure Websites Applications。添加名为WEBSITE_LOAD_CERTIFICATES且其值设置为证书指纹的应用设置将使您的Web应用程序可以访问该设置
因此我们还需要在ARM模板中添加AppSetting,更多详细信息请参考document。
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[concat('Microsoft.Web/sites/', variables('webSiteName'))]"
],
"tags": {
"displayName": "WebAppSettings"
},
"properties": {
" WEBSITE_LOAD_CERTIFICATES ": "thumbprint "
}