2

メッセージが AzureQueue に配置されたときに、AzureWebJob を実行してサイトの新しいインスタンスを展開する必要があるアプリケーションを開発しています。リクエストを認証するために 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 をアップロードすると、管理クライアント インスタンスでリクエストを作成しようとすると例外が発生します。例外メッセージには、「Message:ForbiddenError: サーバーは要求を認証できませんでした。証明書が有効であり、このサブスクリプションに関連付けられていることを確認してください。」

コードを実行するマシンに証明書をインストールする必要があるようですが、これは Azzure WebApplication で実行されている WebJob であるため、どうすればこれを達成できますか?

管理 API のもう 1 つの認証オプションは TokenCredentials を使用することですが、私のローカル環境ではそれらを機能させることができませんでした。このガイドを試してみましたが、役に立ちませんhttps://msdn.microsoft.com/en-us/library/dn722415.aspx。また、トークンを取得するには Azzure アカウントでログオンする必要があるため、うまくいくとは思えません。

だから.. ¿WebJob 内から管理 API を使用するにはどうすればよいですか?

4

1 に答える 1