是否可以使用存储密钥清除Azure CDN端点?

时间:2019-06-03 15:21:03

标签: c# azure-active-directory azure-cdn

我想创建一个函数来清除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提供的。 因此,我需要使用clientIdsecretId(从这里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;

我徘徊有没有办法使用存储密钥而不是clientIdsecretId发出清除请求?

1 个答案:

答案 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还向服务提供信息,从而使其可以验证客户端并执行所需的任何授权。