Comment stocker les informations d'identification du proxy sur macOS afin qu'elles soient utilisées par les services système?

13

J'utilise macOS Sierra 10.12.6 derrière un proxy NTLM d'entreprise. Mon navigateur et d'autres applications utilisent les paramètres de proxy du système, dans lesquels j'ai enregistré mon nom d'utilisateur et mon mot de passe pour l'authentification avec le proxy. Cela fonctionne bien.

Il existe un problème persistant avec les services système qui essaient d'accéder à des informations sur Internet et ne souhaitent pas avoir accès aux informations d'identification du proxy de mon compte d'utilisateur. Je vois la fenêtre contextuelle suivante toutes les deux minutes environ, et quoi que je fasse (en mettant à jour mes informations d'identification dans les préférences système ou en appuyant sur «Pas maintenant»), la fenêtre contextuelle continue de s'afficher encore et encore:

Proxy Authentication Required

Le texte dans le popup se lit comme suit:

Authentification proxy requise

Entrez le mot de passe pour le proxy HTTP http://xxx.xxx.xxx.xxx:yyyyy dans les préférences système.

Que puis-je faire pour empêcher ce popup d'apparaître?

Ce que j'ai essayé jusqu'à présent:

  • Mise à jour mes informations d'identification dans les Préférences Système ( Réseau & gt; Avancé & gt; Procuration )
  • Copié les informations d'identification de mon s'identifier porte-clés à la Système porte-clés, car je lis une recommandation à ce sujet dans un article de blog ou une question de forum.

Aucune de ces méthodes n'a fonctionné, je reçois ce message toutes les deux minutes et il ne semble pas y avoir de tendance à ce qu'il apparaisse

Mise à jour 1:

Dès que je saisis mes identifiants en cliquant sur le bouton Préférences de système dans la boîte de dialogue ci-dessus (que je peux forcer, par exemple, en ouvrant Safari et en commençant à taper une URL dans la zone Emplacement), deux les enregistrements sont créés dans le s'identifier porte-clés, les deux avec un contenu identique:

@ xxx.xxx.xxx.xxx (nom d'utilisateur) Mot de passe Internet Aujourd'hui, 09h10 - connexion

Les deux enregistrements semblent identiques, avec le même nom et les mêmes attributs. Les deux montrent que l'application qui a demandé cela est AuthBrokerAgent:

Keychain Access Control

Mise à jour 2:

J'ai aussi essayé cette suggestion: https://discussions.apple.com/message/23848961#message23848961 , en copiant les entrées d’authentification du s'identifier porte-clés à la système trousseau puis redémarrage, mais cela ne le répare pas. En fait, la boîte redoutée "Authentification requise du proxy" apparaît à nouveau lors de la frappe

Mise à jour 3:

J'ai utilisé Wireshark pour examiner le trafic entre ma machine et notre proxy:

  • Le proxy retourne avec un 407 Proxy Authentication Required et Proxy-Authenticate: NTLM, ce qui est conforme à mes attentes, car notre proxy utilise NTLM.
  • Quelques exemples que j'ai vus dans le trafic (par exemple, iCloud), puis renvoyez un NTLMSSP_NEGOTIATE réponse.
  • Le mandataire revient avec un NTLMSSP_CHALLENGE demande
  • Le service répond avec NTLMSSP_AUTH et mon nom d'utilisateur, qui doit provenir de quelque part.
  • Le proxy répond enfin avec un 200 Connection established

Pour moi, cela montre qu'en général, l'authentification du proxy fonctionne correctement si le système peut obtenir le nom d'utilisateur et le proxy de quelque part. La question reste de savoir comment / où stocker le nom d'utilisateur / mot de passe afin que tous les services système puissent le trouver. Certains services système (je suppose) n'ont aucun moyen de trouver les informations d'identification du proxy où je les stocke actuellement.

nwinkler
la source
Quel proxy utilisez-vous? Je me souviens (d'une vie passée différente) qu'un proxy que nous utilisions avait la capacité d'empêcher l'enregistrement de mots de passe forcer l'utilisateur d'authentifier chaque fois. Cela pourrait être le cas.
Allan

Réponses:

9

Ceci est probablement le comportement attendu si votre administrateur système / réseau a configuré l'authentification forcée du proxy qui nécessite plus qu'un schéma d'authentification de base.

De la page de Microsoft Gestion de l'authentification sous À propos de l'authentification HTTP section:

Il existe deux types généraux de schémas d'authentification:

  • Schéma d'authentification de base, où le nom d'utilisateur et le mot de passe sont envoyés   texte en clair sur le serveur.
  • Les schémas challenge-réponse, qui permettent une   format défi-réponse.

Les schémas de réponse par défi permettent une authentification plus sécurisée Si un   demande nécessite une authentification à l'aide d'un schéma d'interrogation-réponse, le   le code de statut et les en-têtes d’authentification appropriés sont renvoyés au   client. Le client doit ensuite renvoyer la demande avec une négociation.   Le serveur renverrait un code d’état approprié avec un défi,   et le client aurait alors besoin de renvoyer la demande avec le   réponse appropriée pour obtenir le service demandé.

Si le proxy que vous utilisez utilise le authentification de base schéma, ce qui est enregistré dans votre trousseau suffira à vous authentifier. Si un réponse de défi schéma est utilisé, vous devrez probablement fournir plus d’informations - dans ce cas - saisissez votre mot de passe - pour vous authentifier; et c'est ce que vous voyez.

Processus d'authentification NTLM

C'est beaucoup plus que juste stocker lettres de créance. Le client doit produire une réponse basée sur un généré demande du serveur. Ce qui suit est un très abrégé description du processus d'authentification du point de vue client / serveur pour Documentation de Microsoft

  • Le client envoie le nom d'utilisateur au serveur (en texte brut).
  • Le serveur génère un nombre aléatoire de 16 octets, appelé challenge ou nonce, et l'envoie au client.
  • Le client chiffre cette tâche avec le hachage du mot de passe de l'utilisateur et renvoie le résultat au serveur. Ceci est appelé le   réponse.
  • Le serveur envoie les trois éléments suivants au contrôleur de domaine:

    • Nom d'utilisateur
    • Défi envoyé au client
    • Réponse reçue du client
  • Le contrôleur de domaine valide le défi et la réponse chiffrés. Si authentifié, l'accès est accordé.

La troisième étape ci-dessus, a besoin le client à hacher un nombre aléatoire qu'il a obtenu du serveur. Cela signifie que rien ne doit être stocké sur votre client MacOS.

Au minimum, vous devez rejoindre le domaine Active Directory. Cela signifie que vous avez besoin Kerberos support activé et configuré correctement pour votre organisation spécifique.

Il y a une phrase clé dans le document "Handling Authentication" que j'ai lié ci-dessus:

Si l'authentification est requise, l'indicateur INTERNET_FLAG_KEEP_CONNECTION   doit être utilisé dans l'appel à HttpOpenRequest. le   INTERNET_FLAG_KEEP_CONNECTION est obligatoire pour NTLM et autres   types d'authentification afin de maintenir la connexion tout en   terminer le processus d'authentification. Si la connexion n'est pas   maintenu, le processus d’authentification doit être redémarré avec le   proxy ou serveur.

(Mon accentuation)

Selon les symptômes présentés, il semble que votre organisation nécessite une authentification auprès du proxy; votre nom d'utilisateur / mot de passe sont valides, mais il continue de (re) demander l'authentification. C'est probablement parce que vous perdez l'état de connexion et que vous devez recommencer. Ce qui souligne encore le point ....

Pour résoudre ce problème, vous devrez contacter votre administrateur réseau pour qu'il vous aide à résoudre les problèmes d'authentification.

Allan
la source
1
Comment savoir quel schéma d'authentification est utilisé? Existe-t-il un en-tête HTTP que je pourrais consulter lorsqu'une application parle au proxy? Puis-je faire cela dans la console réseau de Chrome ou dois-je utiliser quelque chose comme Wireshark?
nwinkler
Plus que probablement, vous auriez besoin d'utiliser Wireshark. N'oubliez pas qu'il peut également s'agir d'un trafic crypté.
Allan
1
J'ai ajouté quelques informations de ce que j'ai vu dans Wireshark à la question.
nwinkler
1
Merci d'avoir ajouté plus d'informations sur NTLM à votre réponse. Je comprends NTLM, et d'après ce que je peux voir dans les résultats de Wireshark, cela fonctionne: le défi / réponse que vous décrivez est en cours, par exemple. pour les services Dropbox ou iCloud. Je ne sais toujours pas quel service affiche les boîtes de dialogue répétées d'identification du proxy. Votre réponse contient beaucoup d’informations, mais ne m’aide pas vraiment jusqu’à présent.
nwinkler
1
Connection Established ! = Access Granted. Les personnes qui peuvent confirmer que cela fonctionne est le (s) administrateur (s) système / réseau de votre service informatique.
Allan
1

Note: check radio button to allow all application to use proxy

par authentification du paramètre de modification de l'application de chaîne de clés

Rahul Kumar
la source
-2

Exécutez la commande suivante à partir de Console.app:

networksetup -setwebproxy "Your Interface Name" "web proxy hostname or IP" 
8080 on username password

Vous serez interrogé sur l'accès au trousseau. Acceptez d’ajouter l’enregistrement dans le trousseau et vous aurez un accès sans mot de passe tout le temps lorsque votre trousseau est ouvrir.

Siarhei Karatkevich
la source
1
J'ai essayé cela, mais cela ne résout pas le problème. La commande définit la configuration du proxy pour mon utilisateur et stocke l’authentification dans le répertoire de mon utilisateur. login porte-clés. Juste après cela, la boîte de dialogue d’authentification du proxy que j’ai montrée ci-dessus a de nouveau été affichée. Votre solution suggérée ne résout pas le problème pour moi.
nwinkler
parce que votre trousseau de connexion est verrouillé ou que vous avez deux enregistrements
Siarhei Karatkevich
1
Le trousseau de connexion est déverrouillé, je l'ai vérifié deux fois. Le point à propos des enregistrements doubles peut être valide, cependant. J'ai supprimé tous les enregistrements d'authentification proxy que j'ai trouvés dans les trousseaux de connexion et système, mais dès que je saisis mon mot de passe une fois dans la boîte de dialogue de mon message d'origine, je me retrouve avec deux enregistrements dans le trousseau de les mêmes données. Si j'en supprime un, il revient lorsque je ressais mes identifiants.
nwinkler
1
J'ai essayé le security commande que vous avez énuméré - il ne trouve rien. C'est le cas si je change de find-generic-password commande à find-internet-password, puisque le trousseau indique l’entrée comme étant de type "mot de passe Internet".
nwinkler
1
L’URL du proxy est configuré comme xxx.xxx.xxx.xxx , c’est comme ça que ça fonctionne, par exemple depuis la ligne de commande. Je vais essayer de capturer quelque chose en utilisant Wireshark.
nwinkler