Wie speichere ich Proxy-Anmeldeinformationen unter macOS, damit sie von Systemdiensten verwendet werden?

Ich verwende macOS Sierra 10.12.6 hinter einem NTLM-Proxy des Unternehmens. Mein Browser und andere Anwendungen verwenden die System-Proxy-Einstellungen, in denen ich meinen Benutzernamen und mein Passwort für die Authentifizierung beim Proxy gespeichert habe. Das funktioniert gut.

Es gibt ein anhaltendes Problem mit Systemdiensten, die versuchen, auf Informationen im Internet zuzugreifen und keinen Zugriff auf die Proxy-Anmeldeinformationen in meinem Benutzerkonto haben. Ich sehe alle paar Minuten das folgende Popup, und was auch immer ich tue (aktualisiere meine Anmeldeinformationen in den Systemeinstellungen oder drücke „Nicht jetzt“), das Popup erscheint immer wieder:

Proxy-Authentifizierung erforderlich

Der Text im Popup lautet:

Proxy-Authentifizierung erforderlich

Geben Sie das Passwort für den HTTP-Proxy http://xxx.xxx.xxx.xxx:yyyy in den Systemeinstellungen ein.

Was kann ich tun, damit dieses Popup nicht mehr angezeigt wird?

Dinge, die ich bisher ausprobiert habe:

  • Ich habe meine Anmeldeinformationen in den Systemeinstellungen aktualisiert ( Netzwerk > Erweitert > Proxy )
  • Ich habe die Anmeldeinformationen von meinem Anmeldeschlüsselbund in den Systemschlüsselbund kopiert, da ich in einem Blogbeitrag oder einer Forumsfrage eine Empfehlung dazu gelesen habe .

Keines davon hat funktioniert, ich bekomme dieses Popup alle paar Minuten, und es scheint kein Muster zu geben, wann es auftaucht.

Aktualisierung 1:

Sobald ich meine Zugangsdaten eingebe, indem ich im obigen Dialog auf die Schaltfläche „Systemeinstellungen “ klicke (was ich erzwingen kann, indem ich z. B. Safari öffne und mit der Eingabe einer URL in das Adressfeld beginne), werden im Login -Schlüsselbund zwei Datensätze erstellt , beide mit identischen Inhalt:

@ xxx.xxx.xxx.xxx (Benutzername) Internet-Passwort Heute, 09:10 -- Login

Beide Datensätze sehen identisch aus, mit demselben Namen und denselben Attributen. Beide zeigen, dass die Anwendung, die dies angefordert hat, Folgendes ist AuthBrokerAgent:

Schlüsselbund-Zugriffskontrolle

Aktualisierung 2:

Ich habe auch diesen Vorschlag ausprobiert: https://discussions.apple.com/message/23848961#message23848961 , die Authentifizierungseinträge vom Anmeldeschlüsselbund in den Systemschlüsselbund kopieren und dann neu starten, aber das Problem wurde nicht behoben. Tatsächlich tauchte das gefürchtete Feld "Proxy-Authentifizierung erforderlich" erneut auf, während Sie dies eingaben ...

Aktualisierung 3:

Ich habe Wireshark verwendet, um einen Blick auf den Datenverkehr zwischen meinem Computer und unserem Proxy zu werfen:

  • Der Proxy gibt mit a 407 Proxy Authentication Requiredund zurück Proxy-Authenticate: NTLM, was meiner Erwartung entspricht, da unser Proxy NTLM verwendet.
  • Einige Beispiele, die ich im Datenverkehr gesehen habe (z. B. iCloud), senden dann eine NTLMSSP_NEGOTIATEAntwort zurück.
  • Der Proxy kommt mit einer NTLMSSP_CHALLENGEAnfrage zurück
  • Der Dienst antwortet mit NTLMSSP_AUTHund meinem Benutzernamen, den er irgendwoher bekommen haben muss.
  • Der Proxy antwortet schließlich mit a200 Connection established

Für mich zeigt dies, dass die Proxy-Authentifizierung im Allgemeinen gut funktioniert, wenn das System den Benutzernamen und den Proxy von irgendwoher bekommen kann. Bleibt die Frage, wie/wo der Benutzername/das Passwort gespeichert wird, damit alle Systemdienste es finden können. Einige Systemdienste (nehme ich an) haben keine Möglichkeit, die Proxy-Anmeldeinformationen zu finden, wo ich sie gerade speichere.

Welchen Proxy verwendest du? Ich erinnere mich (aus einem anderen früheren Leben), dass ein von uns verwendeter Proxy die Fähigkeit hatte, das Speichern von Passwörtern zu verbieten, wodurch der Benutzer gezwungen wurde, sich jedes Mal zu authentifizieren. Dies könnte der Fall sein.
Haben Sie dieses Problem jemals gelöst, weil ich gelegentlich auf dasselbe Problem stoße und ich eine Verbindung zu einer Citrix VPN-Lösung herstelle. Sobald das Popup erscheint, passiert es einfach immer und immer wieder und schließlich wird mein AD-Konto gesperrt. Ich habe noch keine Lösung gefunden, die dies behebt. Da ich ein MacBook Pro verwende und der Großteil der IT-Abteilung auf Windows basiert, konnte ich keine nützlichen Informationen von der IT erhalten. Sobald ich mich mit dem VPN verbinde, arbeite ich an Oracle-Anwendungen, die auf Solaris SPARC-Servern laufen. Ich hoffe sehr, dass Sie einen Weg finden, dieses Problem zu lösen. Stan
Habe leider noch keine Lösung dafür gefunden. Am Ende verschiebe ich das Fenster, das nach den Proxy-Anmeldeinformationen fragt, an die Seite des Bildschirms, ohne eine der Tasten zu drücken - das hält es zumindest ruhig ...
In meinem Fall erscheinen auch zwei fast identische Elemente im Login-Schlüsselbund, aber es gibt einen kleinen Unterschied - eines davon ist für das HTTP-Protokoll und das zweite für HTTPS.

Antworten (3)

Dies ist höchstwahrscheinlich das erwartete Verhalten, wenn Ihr System-/Netzwerkadministrator die Proxy-Force-Authentifizierung konfiguriert hat, die mehr als nur ein einfaches Authentifizierungsschema erfordert.

Von der Microsoft-Seite Handling Authentication im Abschnitt About HTTP Authentication :

Es gibt zwei allgemeine Arten von Authentifizierungsschemata:

  • Einfaches Authentifizierungsschema, bei dem der Benutzername und das Kennwort im Klartext an den Server gesendet werden.
  • Challenge-Response-Schemata, die ein Challenge-Response-Format ermöglichen.

Challenge-Response-Schemata ermöglichen eine sicherere Authentifizierung. Wenn eine Anforderung eine Authentifizierung mit einem Challenge-Response-Schema erfordert, werden der entsprechende Statuscode und die Authentifizierungs-Header an den Client zurückgegeben. Der Client muss dann die Anfrage mit einer Verhandlung erneut senden. Der Server würde einen entsprechenden Statuscode mit einer Aufforderung zurückgeben, und der Client müsste dann die Anforderung mit der richtigen Antwort erneut senden, um den angeforderten Dienst zu erhalten.

Wenn der von Ihnen verwendete Proxy das grundlegende Authentifizierungsschema verwendet, reicht das, was in Ihrem Schlüsselbund gespeichert ist, aus, um Sie zu authentifizieren. Wenn ein Challenge-Response -Schema verwendet wird, müssen Sie höchstwahrscheinlich weitere Informationen angeben – in diesem Fall – Ihr Passwort erneut eingeben – um sich zu authentifizieren; und das ist, was Sie sehen.

NTLM-Authentifizierungsprozess

Dies ist viel mehr als nur das Speichern von Anmeldeinformationen. Der Client muss basierend auf einer generierten Anfrage vom Server eine Antwort generieren . Es folgt eine sehr gekürzte Beschreibung des Authentifizierungsprozesses aus der Client/Server-Perspektive gemäß der Microsoft-Dokumentation

  • Der Client sendet den Benutzernamen (im Klartext) an den Server.

  • Der Server generiert eine 16-Byte-Zufallszahl, die als Challenge oder Nonce bezeichnet wird, und sendet sie an den Client.

  • Der Client verschlüsselt diese Challenge mit dem Hash des Passworts des Benutzers und gibt das Ergebnis an den Server zurück. Dies wird als Antwort bezeichnet.

  • Der Server sendet die folgenden drei Elemente an den Domänencontroller:

    • Nutzername
    • Herausforderung an den Client gesendet
    • Antwort vom Client erhalten
  • Der DC validiert die verschlüsselte Abfrage und Antwort. Bei Authentifizierung wird der Zugriff gewährt.

Im dritten Schritt oben muss der Client eine Zufallszahl hashen, die er vom Server erhalten hat. Dies bedeutet von Natur aus, dass auf Ihrem macOS-Client nichts gespeichert werden muss.

Sie müssen mindestens der Active Directory-Domäne beigetreten sein. Das bedeutet, dass die Kerberos- Unterstützung für Ihre spezifische Organisation aktiviert und richtig konfiguriert sein muss.

Es gibt einen Schlüsselsatz im Dokument "Handling Authentication", das ich oben verlinkt habe:

Wenn eine Authentifizierung erforderlich ist, sollte das Flag INTERNET_FLAG_KEEP_CONNECTION im Aufruf von HttpOpenRequest verwendet werden. Das Flag INTERNET_FLAG_KEEP_CONNECTION ist für NTLM und andere Authentifizierungstypen erforderlich, um die Verbindung aufrechtzuerhalten, während der Authentifizierungsprozess abgeschlossen wird. Wenn die Verbindung nicht aufrechterhalten wird, muss der Authentifizierungsprozess mit dem Proxy oder Server neu gestartet werden.

(Hervorhebung von mir)

Basierend auf den angezeigten Symptomen scheint es, dass Ihre Organisation eine Authentifizierung beim Proxy erfordert; Ihr Benutzername/Passwort sind gültig, aber es wird (erneut) nach einer Authentifizierung gefragt. Es liegt wahrscheinlich daran, dass Sie den Verbindungsstatus verlieren und dies noch einmal tun müssen. Was den Punkt noch unterstreicht....

Um dieses Problem zu lösen, müssen Sie sich an Ihren Netzwerkadministrator wenden, um Sie bei den Authentifizierungsproblemen zu unterstützen.

Wie kann ich herausfinden, welches Authentifizierungsschema verwendet wird? Gibt es einen HTTP-Header, den ich mir ansehen kann, wenn eine Anwendung mit dem Proxy kommuniziert? Kann ich dies in der Netzwerkkonsole von Chrome tun oder muss ich etwas wie Wireshark verwenden?
Höchstwahrscheinlich müssen Sie Wireshark verwenden. Denken Sie daran, dass es sich auch um verschlüsselten Datenverkehr handeln kann.
Ich habe der Frage einige Informationen aus dem hinzugefügt, was ich in Wireshark gesehen habe.
Vielen Dank, dass Sie Ihrer Antwort weitere Informationen zu NTLM hinzugefügt haben. Ich verstehe NTLM, und nach dem, was ich aus der Wireshark-Ausgabe entnehmen kann, funktioniert es - die von Ihnen beschriebene Herausforderung/Antwort wird ausgeführt, z. B. für Dropbox- oder iCloud-Dienste. Ich bin mir immer noch nicht sicher, welcher Dienst die wiederholten Proxy-Anmeldedialoge anzeigt. Ihre Antwort enthält viele Informationen, hilft mir aber bisher nicht wirklich weiter.
Connection Established!= Access Granted. Die Personen, die bestätigen können , dass dies funktioniert, sind Ihre System-/Netzwerkadministratoren in Ihrer IT-Abteilung.

Hinweis: Aktivieren Sie das Optionsfeld, um allen Anwendungen die Verwendung des Proxys zu erlauben

durch Authentifizierung der Schlüsselanhänger-App-Änderungseinstellung

Es funktioniert für mich eine Weile (einige Minuten) und dann wird diese Einstellung automatisch wieder auf "Bestätigen, bevor Zugriff gewährt wird" umgeschaltet und Anwendungen zeigen wieder Popups an. Ich habe den Verdacht, dass das Element entfernt und mit einigen Standardoptionen erneut erstellt wird. Nicht sicher, welche Anwendung dies tut und warum.

Führen Sie den folgenden Befehl aus Console.app:

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

Sie werden nach dem Zugriff auf den Schlüsselbund gefragt. Stimmen Sie zu, den Datensatz zum Schlüsselbund hinzuzufügen, und Sie haben jederzeit Zugriff ohne Passwort, wenn Ihr Schlüsselbund geöffnet ist.

Ich habe dies versucht, aber es behebt das Problem nicht. Der Befehl legt die Proxy-Konfiguration für meinen Benutzer fest und speichert die Authentifizierung im Schlüsselbund meines Benutzers login. Unmittelbar nachdem ich dies getan habe, wurde der oben angezeigte Proxy-Authentifizierungsdialog erneut angezeigt. Ihre vorgeschlagene Lösung behebt das Problem für mich nicht.
weil Ihr Login-Schlüsselbund gesperrt ist oder Sie doppelte Aufzeichnungen haben
Der Login-Schlüsselbund ist entsperrt, das habe ich noch einmal überprüft. Der Punkt über doppelte Aufzeichnungen könnte jedoch gültig sein. Ich habe alle Datensätze für die Proxy-Authentifizierung gelöscht, die ich im Login- und System-Schlüsselbund gefunden habe, aber sobald ich mein Passwort einmal in den Dialog in meinem ursprünglichen Beitrag eingebe, lande ich bei zwei Datensätzen im Login-Schlüsselbund, beide mit genau dieselben Daten. Wenn ich eines lösche, kommt es zurück, wenn ich meine Anmeldeinformationen erneut eingebe.
Hast du Wireshark installiert? Könnten Sie bitte alle Verhandlungen zwischen Ihrem OSX- und Proxy-Server und einem Schlüsselbund löschen (security find-generic-password -g -s your_proxy_definition)? Ich habe das starke Gefühl, dass die Proxy-Authentifizierung über https und nicht über http erfolgt. Haben Sie versucht, Ihre Proxy-URL als https zu definieren?
Ich habe den von securityIhnen aufgelisteten Befehl ausprobiert - er findet nichts. Es tut, wenn ich den find-generic-passwordBefehl zu find-internet-passwordändere, da der Schlüsselbund den Eintrag als Art "Internet-Passwort" auflistet.
Die Proxy-URL ist als xxx.xxx.xxx.xxx eingerichtet, so funktioniert es zB von der Kommandozeile aus. Ich werde versuchen, etwas mit Wireshark zu erfassen.
Ich habe der Frage einige Informationen aus dem hinzugefügt, was ich in Wireshark gesehen habe.
Sieht so aus, als wäre es ein ähnlicher Fehler in 10.10
Es sieht so aus, als wäre es ein ähnlicher Fehler in 10.10 support.apple.com/kb/DL1785?locale=en_US . Also, haben Sie versucht, die Firefox-Proxy-Einstellungen zu verwenden, das Verhalten ist anders? (Sie können den systemweiten Proxy verwenden und dort die Proxy-Einstellungen manuell eingeben
Firefox probiert, keine Änderung...
Beide Varianten, systemweiter Proxy in Firefox und interne Firefox-Einstellungen für http-Proxy?
Ja, beides - beides hat nicht funktioniert.