Azure REST List Subscription Operationを呼び出しています。
私の開発マシンでは、証明書を Current User\Personal にインストールしました。API を正常に呼び出して、応答を返すことができます。応答コード = 200
テスト ボックスで、同じ証明書を Current Use\Personal にインストールしました。API を呼び出すことができません。403 禁止されています。以下の完全なエラー:
<Error>
<Code>AuthenticationFailed</Code>
<Message>The server failed to authenticate the request.
Verify that the certificate is valid and is associated with this subscription.
</Message>
</Error>
証明書を確認すると、今日から有効であり (今日インポートされたため)、2040 年 1 月まで有効です。有効だと思いますか?
質問:
- 同じコード/プロジェクト/サービスがローカル マシンでは機能しますが、テスト ボックスでは機能しません。なんで?
- 証明書の拇印は同じで、証明書も同じです。証明書はローカルで機能するため、サブスクリプションの azure アカウントに関連付けられています。なんで?
他に何をチェックすればよいですか?ローカル サービスとテスト ボックス サービスの両方が Web 要求に証明書を添付することはわかっています (これは詳細なログ記録でわかっています)。
HttpWebResponse webResponse = webRequest.GetResponse() as HttpWebResponse;
403 禁止エラーが表示されます。
これで頭がおかしくなる。
アップデート:
Fiddler で表示した応答では、応答の先頭は次のとおりです。
HTTP/1.1 403 Forbidden
Content-Length: 294
Content-Type: application/xml; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 27 Sep 2013 02:49:59 GMT
今、日付の部分が問題なのかどうか疑問に思っています。日付はリクエストから 15 分以内でなければならないということを読んだことを覚えています。テスト ボックスの現在の時刻は午後 12 時 49 分なので、返された日付は 2 時間「進んでいる」ようです。これが理由でしょうか?それとも、その応答はフィドラーの日付の解釈ですか?