我正在尝试使用Fluent Management API更新Azure Web App的 MinTlsVersion 设置:
app.Inner.SiteConfig.MinTlsVersion = SupportedTlsVersions.OneFullStopZero;
但是, SiteConfig 属性始终为NULL,我无法找到加载它的方法。
我可以更新其他设置,例如 HttpsOnly ,但不能更新 SiteConfig 属性下方的设置。
app.Inner.HttpsOnly = true;
有人知道如何使用Fluent API更改 MinTlsVersion 吗?
答案 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;
}
答案 1 :(得分:0)
我能够使用以下代码更新 MinTlsVersion 。
SiteConfigResourceInner siteConfig = new SiteConfigResourceInner();
siteConfig.MinTlsVersion = SupportedTlsVersions.OneFullStopZero;
await azure.WebApps.Inner.CreateOrUpdateConfigurationAsync(resourceGroup, app.Name, siteConfig);
虽然仍然无法获取/加载当前值。