Azure Web App-如何使用流畅的API更新MinTlsVersion

时间:2018-08-16 14:02:04

标签: c# azure web azure-web-sites

我正在尝试使用Fluent Management API更新Azure Web App的 MinTlsVersion 设置:

app.Inner.SiteConfig.MinTlsVersion = SupportedTlsVersions.OneFullStopZero;

但是, SiteConfig 属性始终为NULL,我无法找到加载它的方法。

我可以更新其他设置,例如 HttpsOnly ,但不能更新 SiteConfig 属性下方的设置。

app.Inner.HttpsOnly = true;

有人知道如何使用Fluent API更改 MinTlsVersion 吗?

2 个答案:

答案 0 :(得分:1)

AFAIK,Azure fluent API中没有MinTlsVersion属性。您可以参考Azure SDK来检查SiteConfig类。

此外,如果要为Azure Web应用设置MinTlsVersion,则可以使用rest api来实现。

先决条件

为Azure Resource Manager设置设置租户ID,客户端ID和客户端密钥。您可以参考此article以获得所需的一些参数。

然后,您可以参考以下工作代码:

var appId = "xxxxxxxxxxxxxxxxxxxxxxx";
var secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var tenantId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
ClientCredential clientCredential = new ClientCredential(appId, secretKey);
var tokenResponse = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result;
var accessToken = tokenResponse.AccessToken;
using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
    var baseUrl = new Uri($"https://management.azure.com/");
    var requestURl = baseUrl + @"subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/xxxxxxxx/providers/Microsoft.Web/sites/xxxxxxx/config/web?api-version=2016-08-01";
    string body = "{\"properties\": {\"minTlsVersion\":\"1.0\"}";
    var stringContent = new StringContent(body, Encoding.UTF8, "application/json");
    var response = client.PutAsync(requestURl, stringContent).Result;
}

输出: enter image description here

答案 1 :(得分:0)

我能够使用以下代码更新 MinTlsVersion

SiteConfigResourceInner siteConfig = new SiteConfigResourceInner();                
siteConfig.MinTlsVersion = SupportedTlsVersions.OneFullStopZero;         
await azure.WebApps.Inner.CreateOrUpdateConfigurationAsync(resourceGroup, app.Name, siteConfig);

虽然仍然无法获取/加载当前值。