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:
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:
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
:
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:
407 Proxy Authentication Required
und zurück Proxy-Authenticate: NTLM
, was meiner Erwartung entspricht, da unser Proxy NTLM verwendet.NTLMSSP_NEGOTIATE
Antwort zurück.NTLMSSP_CHALLENGE
Anfrage zurückNTLMSSP_AUTH
und meinem Benutzernamen, den er irgendwoher bekommen haben muss.200 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.
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.
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.
Connection Established
!= Access Granted
. Die Personen, die bestätigen können , dass dies funktioniert, sind Ihre System-/Netzwerkadministratoren in Ihrer IT-Abteilung.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.
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.security
Ihnen aufgelisteten Befehl ausprobiert - er findet nichts. Es tut, wenn ich den find-generic-password
Befehl zu find-internet-password
ändere, da der Schlüsselbund den Eintrag als Art "Internet-Passwort" auflistet.
Winkler
Allan
Stan Repetta
Winkler
eNca