我正在开发一个应用程序,该应用程序需要运行 AzureWebJob 以在将消息放置在 AzureQueue 上时部署站点的新实例。我正在使用 CertificateCloudeCredentials 对请求进行身份验证。我正在使用以下代码创建凭据:
var certificateString = "<the certificate string>";
var certificateString = ConfigurationManager.AppSettings["Base64Certificate"];
var certificate = new X509Certificate2(Convert.FromBase64String(certificateString));
var credentials = new CertificateCloudCredentials("67baa805-e391-4e9a-a26e-aa76d33f6475", certificate);
var managementClient = new WebSiteManagementClient(credentials);
在我的开发机器上这工作正常,但是当我在 azure 上上传 WebJob 时,当我尝试使用管理客户端实例发出请求时出现异常。异常消息显示:“消息:ForbiddenError:服务器未能验证请求。验证证书有效并与此订阅相关联。”
显然我需要在运行代码的机器上安装证书,但由于这是在 Azzure WebApplication 上运行的 WebJob,我该如何实现呢?
管理 API 的另一个身份验证选项是使用 TokenCredentials,但我无法在我的本地环境中使这些工作。我试过这个指南无济于事https://msdn.microsoft.com/en-us/library/dn722415.aspx。我也怀疑它是否会起作用,因为您需要使用 Azzure 帐户登录才能获得令牌。
所以.. ¿我如何在 WebJob 中使用管理 API?