我想创建一个函数来清除Azure CDN上的文件。 文档中的Here表示如何清除指定路径的内容。
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/purge?api-version=2017-10-12
但是安全性是由Azure Active Directory OAuth2 Flow提供的。
因此,我需要使用clientId
,secretId
(从这里https://blogs.msdn.microsoft.com/maheshk/2017/04/01/azure-cdn-how-to-purge-cdn-content-from-c-code/)
var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/microsoft.onmicrosoft.com");
ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);
Task<AuthenticationResult> resultstr = authenticationContext.AcquireTokenAsync("https://management.core.windows.net/", clientCredential);
WebClient client = new WebClient();
//authentication using the Azure AD application
var token = resultstr.Result.AccessToken;
我徘徊有没有办法使用存储密钥而不是clientId
,secretId
发出清除请求?
答案 0 :(得分:0)
否,这是不可能的。 Azure Rest API Endpoints - Purge Content
与Azure AD身份验证集成在一起,它需要您的有效凭据才能获取访问令牌。
查看此链接:Getting Started with REST - Register your client application with Azure AD。
大多数Azure服务(例如Azure Resource Manager providers和经典部署模型)都要求您的客户端代码使用有效的凭据进行身份验证,然后才能调用该服务的API。身份验证通过Azure AD在各个参与者之间进行协调,并为您的客户端提供access token作为身份验证的证明。然后,令牌将在后续REST API请求的HTTP授权标头中发送到Azure服务。令牌的claims还向服务提供信息,从而使其可以验证客户端并执行所需的任何授权。