2

我正在开发一个应用程序,该应用程序需要运行 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?

4

1 回答 1

3

我认为令牌凭证是更好的方法。我在这里有一个完整的示例,您可以从中获取灵感。您将需要设置一个服务主体,您可以通过 Azure 应用设置将其提供给您的应用。

于 2016-03-10T20:47:20.727 回答