Wie werden Proxy-Anmeldeinformationen auf macOS gespeichert, damit sie von Systemdiensten verwendet werden?

13

Ich verwende macOS Sierra 10.12.6 hinter einem NTLM-Proxy eines Unternehmens. Mein Browser und andere Anwendungen verwenden die System-Proxy-Einstellungen, in denen ich meinen Benutzernamen und mein Passwort zur 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 zu haben. Ich sehe das folgende Popup alle paar Minuten, und was immer ich tue (Aktualisierung meiner Anmeldeinformationen in den Systemeinstellungen oder Drücken von "Not Now"), das Popup-Fenster erscheint immer wieder:

Proxy Authentication Required

Der Text im Popup lautet:

Proxy-Authentifizierung erforderlich

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

Was kann ich tun, um zu verhindern, dass dieses Popup erscheint?

Dinge, die ich bisher ausprobiert habe:

  • Meine Anmeldeinformationen in den Systemeinstellungen aktualisiert ( Netzwerk & gt; Erweitert & gt; Proxy )
  • Die Anmeldeinformationseinträge von my kopiert Anmeldung Schlüsselbund an die System Schlüsselbund, da ich in einem Blogbeitrag oder in einer Forumfrage eine Empfehlung dazu gelesen habe.

Nichts davon hat funktioniert, ich bekomme dieses Popup alle paar Minuten, und es scheint kein Muster zu geben, wenn es erscheint.

Update 1:

Sobald ich meine Zugangsdaten eingebe, klicken Sie auf die Schaltfläche Systemeinstellungen Schaltfläche im obigen Dialogfeld (die ich erzwingen kann, indem Sie z. B. Safari öffnen und beginnen, eine URL in das Adressfeld einzugeben), zwei Datensätze werden im erstellt Anmeldung Schlüsselbund, beide mit identischem Inhalt:

@ xxx.xxx.xxx.xxx (Benutzername) Internet Password Heute, 09:10 Uhr - anmelden

Beide Datensätze sehen identisch aus und haben denselben Namen und dieselben Attribute. Beide zeigen, dass die Anwendung, die dies angefordert hat, ist AuthBrokerAgent:

Keychain Access Control

Update 2:

Ich habe auch diesen Vorschlag ausprobiert: https://discussions.apple.com/message/23848961#message23848961 , Kopieren der Authentifizierungseinträge aus der Anmeldung Schlüsselbund an die System Schlüsselbund und dann neu gestartet, aber es nicht behoben. Tatsächlich wurde das gefürchtete Feld "Proxy Authentication Required" (Proxy-Authentifizierung erforderlich) wieder angezeigt.

Update 3:

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

  • Der Proxy kehrt mit einem zurück 407 Proxy Authentication Required und Proxy-Authenticate: NTLM, was meiner Erwartung entspricht, da unser Proxy NTLM verwendet.
  • Einige Beispiele, die ich im Verkehr gesehen habe (z. B. iCloud), senden Sie dann zurück NTLMSSP_NEGOTIATE Antwort.
  • Der Proxy kommt mit einem zurück NTLMSSP_CHALLENGE anfordern
  • Der Dienst antwortet mit NTLMSSP_AUTH und meinen Benutzernamen, den er irgendwo bekommen hat.
  • Der Proxy antwortet schließlich mit einem 200 Connection established

Für mich zeigt dies, dass die Proxy-Authentifizierung im Allgemeinen einwandfrei funktioniert, wenn das System den Benutzernamen und den Proxy von irgendwoher abrufen kann. Es bleibt die Frage, wie / wo der Benutzername / das Passwort gespeichert werden soll, damit alle Systemdienste es finden können. Einige Systemdienste (ich gehe davon aus) haben keine Möglichkeit, die Proxy-Anmeldeinformationen zu finden, an denen ich sie gerade ablege.

nwinkler
quelle
Welchen Proxy benutzen Sie? Ich erinnere mich (aus einem anderen früheren Leben), dass ein von uns genutzter Proxy die Speicherung von Passwörtern dadurch verhindern konnte zwingen Der Benutzer kann sich jedes Mal authentifizieren. Das könnte der Fall sein.
Allan

Antworten:

9

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 Umgang mit Authentifizierung unter Über die HTTP-Authentifizierung Sektion:

Es gibt zwei allgemeine Arten von Authentifizierungsschemata:

  • Standardauthentifizierungsschema, bei dem Benutzername und Kennwort gesendet werden   Klartext an den Server.
  • Challenge-Response-Schemata, die eine   Challenge-Response-Format.

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

Wenn der von Ihnen verwendete Proxy das verwendet grundlegende Authentifizierung Was in Ihrem Schlüsselbund gespeichert ist, genügt, um Sie zu authentifizieren. Wenn eine Antwort herausfordern Schema verwendet wird, müssen Sie höchstwahrscheinlich mehr Informationen angeben - in diesem Fall - geben Sie Ihr Kennwort erneut ein -, um sich zu authentifizieren; und das sehen Sie.

NTLM-Authentifizierungsprozess

Das ist viel mehr als nur Speicherung Referenzen. Der Kunde muss generieren eine Antwort basierend auf a generiert Anfrage vom Server. Folgendes ist ein sehr gekürzt Beschreibung des Authentifizierungsprozesses aus der Client / Server-Perspektive pro Dokumentation von Microsoft

  • Der Client sendet den Benutzernamen an den Server (im Klartext).
  • Der Server generiert eine 16-Byte-Zufallszahl (Challenge oder Nonce) und sendet diese an den Client.
  • Der Client verschlüsselt diese Challenge mit dem Hash des Benutzerkennworts und gibt das Ergebnis an den Server zurück. Dies nennt man das   Antwort.
  • Der Server sendet die folgenden drei Elemente an den Domänencontroller:

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

Der dritte Schritt oben, erfordert Der Client muss eine Zufallszahl anhängen, die er vom Server erhalten hat. Dies bedeutet von Natur aus, dass auf Ihrem macOS-Client nichts gespeichert werden muss.

Sie müssen mindestens Mitglied der Active Directory-Domäne sein. Das heißt, Sie brauchen Kerberos Support aktiviert und für Ihre Organisation ordnungsgemäß konfiguriert.

Das oben verlinkte Dokument "Handling Authentication" enthält eine Schlüsselphrase:

Wenn eine Authentifizierung erforderlich ist, wird das Flag INTERNET_FLAG_KEEP_CONNECTION angegeben   sollte beim Aufruf von HttpOpenRequest verwendet werden. Das   Das Flag INTERNET_FLAG_KEEP_CONNECTION ist für NTLM und andere erforderlich   Arten der Authentifizierung, um die Verbindung aufrechtzuerhalten   Abschluss des Authentifizierungsvorgangs. Wenn die Verbindung nicht besteht   beibehalten, muss der Authentifizierungsprozess mit der gestartet werden   Proxy oder Server.

(Betonung Mine)

Anhand Ihrer dargestellten Symptome scheint es, dass Ihre Organisation eine Authentifizierung beim Proxy erfordert. Ihr Benutzername und Ihr Passwort sind gültig, aber Sie werden immer wieder zur Authentifizierung aufgefordert. Wahrscheinlich, weil Sie den Verbindungsstatus verlieren und dies noch einmal tun müssen. Was den Punkt weiter unterstreicht ....

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

Allan
quelle
1
Wie kann ich herausfinden, welches Authentifizierungsschema verwendet wird? Gibt es einen HTTP-Header, den ich betrachten könnte, wenn eine Anwendung mit dem Proxy spricht? Kann ich dies in der Netzwerkkonsole von Chrome tun oder muss ich etwas wie Wireshark verwenden?
nwinkler
Wahrscheinlich müssten Sie Wireshark verwenden. Denken Sie daran, dass es sich auch um verschlüsselten Datenverkehr handeln kann.
Allan
1
Ich habe der Frage einige Informationen aus dem, was ich in Wireshark gesehen habe, hinzugefügt.
nwinkler
1
Vielen Dank, dass Sie Ihrer Antwort weitere Informationen zu NTLM hinzugefügt haben. Ich verstehe NTLM, und aus dem, was ich an der Wireshark-Ausgabe sehen kann, funktioniert es - die Herausforderung / Antwort, die Sie beschreiben, wird durchgeführt, z. für Dropbox- oder iCloud-Dienste. Ich bin immer noch nicht sicher, welcher Dienst die wiederholten Proxy-Berechtigungsdialogfelder aufruft. Ihre Antwort enthält viele Informationen, hilft mir aber bisher nicht wirklich.
nwinkler
1
Connection Established ! = Access Granted. Die Leute, die können bestätigen dass dies funktioniert, sind Ihre System- / Netzwerkadministratoren in Ihrer IT-Abteilung.
Allan
1

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

durch Authentifizierung der Key-Chain-App-Einstellung

Rahul Kumar
quelle
-2

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 in den Schlüsselbund aufzunehmen, und Sie haben jederzeit Zugriff auf das Kennwort, wenn Ihr Schlüsselbund ist öffnen.

Siarhei Karatkevich
quelle
1
Ich habe es versucht, aber das Problem wird dadurch nicht behoben. Der Befehl legt die Proxy-Konfiguration für meinen Benutzer fest und speichert die Authentifizierung im Benutzer login Schlüsselbund. Gleich nachdem ich dies getan hatte, wurde wieder der Proxy-Authentifizierungsdialog angezeigt. Ihr vorgeschlagener Fix behebt das Problem nicht für mich.
nwinkler
weil Ihr Login-Schlüsselbund gesperrt ist oder Sie doppelte Datensätze haben
Siarhei Karatkevich
1
Der Login-Schlüsselbund ist nicht gesperrt. Ich habe das noch einmal überprüft. Der Punkt über doppelte Datensätze kann jedoch gültig sein. Ich habe alle Datensätze für die Proxy-Authentifizierung gelöscht, die ich in den Login- und System-Schlüsselbunden gefunden habe. Sobald ich jedoch mein Passwort einmal in meinem ursprünglichen Beitrag eingebe, habe ich zwei Einträge im Login-Schlüsselbund, beide genau die gleichen Daten. Wenn ich eine lösche, wird sie wieder angezeigt, wenn ich meine Anmeldeinformationen erneut eingebe.
nwinkler
1
Ich habe das ausprobiert security Befehl, den Sie aufgelistet haben - er findet nichts. Es tut, wenn ich das ändern find-generic-password Befehl an find-internet-password, da der Schlüsselbund den Eintrag als "Internet-Passwort" aufführt.
nwinkler
1
Die Proxy-URL ist als eingerichtet xxx.xxx.xxx.xxx , so hat es gearbeitet, z.B. von der Kommandozeile. Ich werde versuchen, etwas mit Wireshark aufzunehmen.
nwinkler