Je rencontre un problème où Siri ne peut pas se connecter à ses serveurs derrière notre connexion proxy d'entreprise. Ce qui est intéressant, c'est que ce n'est pas un problème sur nos iPhones derrière le même proxy.
Des idées ?
Je rencontre un problème où Siri ne peut pas se connecter à ses serveurs derrière notre connexion proxy d'entreprise. Ce qui est intéressant, c'est que ce n'est pas un problème sur nos iPhones derrière le même proxy.
Des idées ?
Je gère un proxy Squid pour mon organisation et lorsque j'essaie d'utiliser Siri dans Sierra, les entrées de journal suivantes sont enregistrées :
1474540244.610 0 macos-sierra-host.local TAG_NONE/400 4410 NONE error:invalid-request - HIER_NONE/- text/html
Je ne suis pas tout à fait sûr de ce qu'il demande, donc c'est le moment de sortir le marteau tcpdump je suppose. Je reviendrai si j'ai d'autres informations.
MODIFICATION 1 - 22-Sep-2016 10:58 UTC
On dirait que Siri n'utilise pas une URL valide lorsqu'il demande via un proxy. Voici les en-têtes HTTP de Squid après une tentative de connexion Siri :
HTTP/1.1 400 Requête incorrecte
Server: squid/3.5.20
Mime-Version: 1.0
Date: Thu, 22 Sep 2016 10:42:01 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 4064
X-Squid-Error: ERR_INVALID_REQ 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from proxy.local
Via: 1.1 proxy.local (squid/3.5.20)
Connection: close
Les détails dans le message d'erreur (envoyé par Squid mais jamais vu par l'utilisateur) sont :
Une erreur de requête invalide a été rencontrée lors de la tentative de traitement de la demande :
&# 22;&# 3;&# 1;
Quelques problèmes possibles sont :
- Méthode de requête manquante ou inconnue.
- Identifiant HTTP manquant (HTTP/1.0).
- La requête est trop grande.
- Longueur du contenu manquante pour les requêtes POST ou PUT.
- Caractère illégal dans le nom d'hôte ; les tirets bas ne sont pas autorisés.
- La fonction Expect: HTTP/1.1 est demandée à partir d'un logiciel HTTP/1.0.
Donc - il semble que je vais devoir utiliser encore plus de tcpdump pour essayer de trouver à quoi ressemble cette demande originale (où elle va, etc.). Restez à l'écoute.
MODIFICATION 2 - 22-Sep-2016 11:16 UTC
Le problème est que Siri utilise TCP/443 mais n'utilise pas HTTPS. Par conséquent, un proxy HTTP comme Squid va bloquer ces connexions. La bonne nouvelle c'est que j'ai identifié que les connexions sortantes de Siri résolvent un enregistrement A pour origin.guzzoni-apple.com.akadns.net
puis se connectent à celui-ci sur le port 443. À ce stade, il initie un handshake TLS et le reste est chiffré. Donc, merci Apple de l'avoir chiffré, mais pour utiliser un port réservé pour du trafic non-HTTPS. Sérieusement - quoi ?!
Voici une solution
J'ai fouillé dans de nombreuses (beaucoup) requêtes DNS et il semble qu'elles résolvent toutes origin.guzzoni-apple.com.akadns.net
dans la plage d'adresses 17.252.0.0/16
- c'est une partie de la plage plus large d'Apple 17.0.0.0/8
. Cela devrait vous permettre d'envoyer tout ce qui est destiné à 17.252.0.0
directement (soit via une configuration de proxy, soit PAC/WPAD). Malheureusement, cela risque également de capturer d'autres trafics que vous ne voulez pas contourner votre proxy aussi :-/
Jusqu'à ce qu'Apple décide d'utiliser un protocole HTTPS réel pour Siri sur Sierra ou d'utiliser un port différent (contrairement à l'actuel détournement de TCP/443 !!!), on est pratiquement fichus.
Pas de soucis Coby. J'ai essayé plusieurs mécanismes différents pour envoyer directement les clients (fichier WPAD/PAC, ACL, même des exceptions de proxy côté client) mais Siri semble utiliser le proxy de toute façon. La seule façon que j'ai de faire fonctionner Siri sur Sierra est de désactiver complètement la configuration du proxy sur le client. J'ai parlé avec un ami qui a travaillé sur l'implémentation de Siri chez Apple et ils sont au courant (apparemment)... que cela se traduise par une "action" nous devrons attendre pour voir.
Voici cette solution pour le fichier pac :
if ( (shExpMatch(url, "*guzzoni.apple.com*")) || (shExpMatch(url, "*.guzzoni-apple.com.akadns.net*")) ) return "DIRECT";
Source : http://blog.mansshardt.net/siri-ios-macos-hinter-squid-proxy-zum-laufen-bringen/
Pas vraiment une réponse mais plutôt un "point de départ"...
Il y a une liste complète des numéros de port utilisés par Apple sur
Apple KB : Ports TCP et UDP utilisés par les produits logiciels Apple
[trop long à copier ici]
Vous pouvez également ouvrir pratiquement tout l'espace d'adresse 17.x.x.x, car il est entièrement détenu par Apple.
Il affirme que Siri n'a besoin que du port 443, https/SSL [qui serait probablement déjà ouvert de toute façon]
Je peux confirmer les conclusions de James dans mon organisation : Siri (macOS) ne fonctionne qu'avec le proxy désactivé. Nous utilisons un produit proxy différent (via un fichier PAC, FYI), mais les résultats sont les mêmes. Testé avec la version publique de macOS Sierra 10.12.2 (16C68).
@Tetsujin - Malgré le "8 janv. 2017", Apple ne l'a pas mis à jour pour inclure "Siri (macOS)"; ils spécifient actuellement uniquement "Siri (iOS)". Pour paraphraser le commentaire de James, "ce n'est pas le Siri de votre iPhone".
Aussi, si les journaux Squid de lui sont corrects et que origin.guzzoni-apple.com.akadns.net
est ce que Siri (macOS) utilise ; alors l'exemption de wildcard pour le 17.0.0.0/8 d'Apple serait inutile (pour le domaine "akadns.net").
J'ai réussi à le faire fonctionner en mettant privoxy devant squid. Je n'ai aucune idée pourquoi ça fonctionne, remarquez, mais ça fonctionne de manière fiable. Je peux partager les fichiers de configuration si vous le souhaitez. J'ai essayé WPAD/PAC avant, mais Siri ne respecte pas et passe quand même par squid.
Pas une réponse, juste essayer d'aller dans la bonne direction... cela pourrait aider quelqu'un d'autre ? J'ai passé 3 jours à essayer de comprendre cela (Siri + proxy squid). J'ai même configuré squid pour autoriser toutes les adresses IP et les ports (1-65k), et Siri est la seule chose qui ne fonctionne pas. Je suis intéressé par la solution de Phtagn qui consiste à utiliser privoxy. J'aimerais voir les fichiers de configuration s'il/elle est toujours présent(e).
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.
0 votes
Je suppose qu'ils contactent des serveurs différents et que ceux de macOS sont bloqués quelque part dans le réseau de votre organisation. Cependant, je n'en suis pas certain.
0 votes
D'accord avec @tubedogg. Votre iPhone peut ne pas pouvoir l'utiliser en wifi, il passe donc en cellulaire pour contacter les serveurs Apple.