J'appelle le Azure REST List Subscription Operation.Opération d'abonnement à la liste: 403 interdite
Sur mon ordinateur dev j'ai installé le certificat dans Current User \ Personal. Je peux appeler l'API avec succès et obtenir une réponse. Code de réponse = 200
Sur un test, j'ai installé le même certificat dans Current Use \ Personal. Je ne peux pas appeler l'API. Je reçois un 403 interdit. erreur complète ci-dessous:
<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>
Je vérifie le certificat, il est valable à partir plus tôt aujourd'hui (comme il a été importé aujourd'hui) et valide pour Janvier 2040. Je présume qu'il est valide?
Questions:
- Le même code/projet/service fonctionne sur ma machine locale, mais pas sur la boîte d'essai. Pourquoi?
- L'empreinte du certificat est la même, les certificats sont les mêmes. Le certificat est associé au compte Azur abonnement car il fonctionne localement! Pourquoi?
Quoi d'autre dois-je vérifier? Je sais que le service de boîte locale et de test attache le certificat à la demande Web (je le sais par la journalisation détaillée) mais au point de
HttpWebResponse webResponse = webRequest.GetResponse() en tant que HttpWebResponse;
Je reçois l'erreur 403 interdite.
Je ne suis plus d'accord avec ça.
Mise à jour:
Dans la réponse que je considère en Fiddler, le début de la réponse est:
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
Maintenant, je me demande si la partie de la date est la question. Je me souviens avoir lu que la date doit être dans les 15 minutes de la demande. Sur la boîte de test, l'heure actuelle est 12h49, il semble donc que la date de retour est "en avance" de 2 heures. Serait-ce pourquoi? Ou est-ce juste une interprétation de Fiddlers d'une date?
L'erreur 403 signifie généralement un problème avec le certificat. Par votre autre fil posté plus tôt, je me souviens que vous avez eu des problèmes avec certs sur votre boîte de test. Une chose que vous pourriez faire est de créer un tout nouveau certificat sur votre boîte de test au lieu d'importer depuis la boîte de dev et d'utiliser ce certificat pour authentifier les demandes d'API. –
Oui, j'ai pensé faire cela mais la boîte est verrouillée et makecert n'est pas installé. – andrewb
Encore une pensée - créer un certificat sur une autre machine, puis l'importer sur la boîte de dev comme vous l'avez fait sur la boîte de test. De cette façon, vous serez en mesure de recréer l'environnement de test (aussi loin que le certificat va) sur votre boîte de dev. En outre, vous ne savez pas si IIS a installé votre boîte de test, mais vous pouvez également créer un certificat en utilisant IIS. –