Come archiviare le credenziali proxy su macOS in modo che vengano utilizzate dai servizi di sistema?


14

Sto usando macOS Sierra 10.12.6 dietro un proxy NTLM aziendale. Il mio browser e altre applicazioni utilizzano le impostazioni del proxy di sistema, in cui ho salvato il nome utente e la password per l'autenticazione con il proxy. Funziona benissimo.

Esiste un problema persistente con i servizi di sistema che tentano di accedere alle informazioni su Internet e non vedono di avere accesso alle credenziali del proxy nel mio account utente. Vedo il seguente popup ogni paio di minuti e qualunque cosa io faccia (aggiornando le mie credenziali nelle Preferenze di Sistema o premendo "Non ora"), il popup continua a comparire ancora e ancora:

Autenticazione proxy richiesta

Il testo nel popup recita:

Autenticazione proxy richiesta

Immettere la password per il proxy HTTP http://xxx.xxx.xxx.xxx:yyyy in Preferenze di Sistema.

Cosa posso fare per impedire la visualizzazione di questo popup?

Cose che ho provato finora:

  • Aggiornate le mie credenziali in Preferenze di Sistema ( Rete> Avanzate> Proxy )
  • Ho copiato le voci delle credenziali dal mio portachiavi di accesso al portachiavi di sistema , poiché ho letto una raccomandazione per questo in un post sul blog o in una domanda sul forum.

Nessuno di questi ha funzionato, ricevo questo popup ogni paio di minuti e non sembra esserci uno schema a quando si presenta.

Aggiornamento 1:

Non appena inserisco le mie credenziali facendo clic sul pulsante Preferenze di Sistema nella finestra di dialogo sopra (che posso forzare aprendo Safari e iniziando a digitare un URL nella casella della posizione), vengono creati due record nel portachiavi di accesso , entrambi con identici soddisfare:

@ xxx.xxx.xxx.xxx (nome utente) Internet Password Oggi, 09:10 - login

Entrambi i record sembrano identici, con lo stesso nome e gli stessi attributi. Entrambi mostrano che l'applicazione che lo ha richiesto è AuthBrokerAgent:

Controllo accessi portachiavi

Aggiornamento 2:

Ho anche provato questo suggerimento: https://discussions.apple.com/message/23848961#message23848961 , copiando le voci di autenticazione dal portachiavi di accesso al portachiavi di sistema e quindi riavviando, ma non è stato risolto. In effetti, la temuta casella "Autenticazione proxy richiesta" si è mostrata di nuovo mentre si digita questo ...

Aggiornamento 3:

Ho usato Wireshark per dare un'occhiata al traffico tra la mia macchina e il nostro proxy:

  • Il proxy ritorna con un 407 Proxy Authentication Requirede Proxy-Authenticate: NTLM, che è in linea con le mie aspettative, poiché il nostro proxy utilizza NTLM.
  • Alcuni esempi che ho visto nel traffico (ad esempio iCloud) quindi rispediscono una NTLMSSP_NEGOTIATErisposta.
  • Il proxy torna con una NTLMSSP_CHALLENGErichiesta
  • Il servizio risponde con il NTLMSSP_AUTHmio nome utente, che deve aver ottenuto da qualche parte.
  • Il proxy infine risponde con a 200 Connection established

Per me, questo dimostra che in generale l'autenticazione proxy funziona bene, se il sistema può ottenere il nome utente e il proxy da qualche parte. La domanda rimane come / dove memorizzare il nome utente / password in modo che tutti i servizi di sistema possano trovarlo. Alcuni servizi di sistema (presumo) non hanno alcun mezzo per trovare le credenziali del proxy in cui le sto attualmente archiviando.



Quale proxy stai usando? Ricordo (da una vita passata diversa) che un proxy che stavamo usando aveva la capacità di impedire la memorizzazione di password costringendo così l'utente ad autenticarsi ogni volta. Questo potrebbe essere il caso.
Allan,

1
Hai mai risolto questo problema perché ho riscontrato occasionalmente lo stesso problema e mi collego a una soluzione Citrix VPN. Una volta che appare il pop-up, succede e si ripete ancora e alla fine il mio account AD si bloccherà. Devo ancora trovare una soluzione che risolva questo. Da quando utilizzo un MacBook Pro e la maggior parte del reparto IT è basato su Windows, non sono stato in grado di ricevere alcuna informazione utile dall'IT. Una volta che mi collego alla VPN, lavoro su applicazioni Oracle in esecuzione su server Solaris SPARC. Spero davvero che troverai un modo per risolvere questo problema. Stan
Stan Repetta,

Spiacenti, non ho ancora trovato una soluzione per questo. Quello che finisco per fare è che sposto la finestra che richiede le credenziali del proxy sul lato dello schermo senza premere alcun pulsante - che lo tace almeno ...
Nwinkler

Risposte:


9

Questo è probabilmente il comportamento previsto se l'amministratore di sistema / di rete ha configurato l'autenticazione della forza proxy che richiede più di un semplice schema di autenticazione.

Dalla pagina Microsoft Gestione dell'autenticazione nella sezione Informazioni sull'autenticazione HTTP :

Esistono due tipi generali di schemi di autenticazione:

  • Schema di autenticazione di base, in cui il nome utente e la password vengono inviati in chiaro al server.
  • Schemi di risposta alla sfida, che consentono un formato di risposta alla sfida.

Gli schemi di risposta alle sfide consentono un'autenticazione più sicura. Se una richiesta richiede l'autenticazione utilizzando uno schema di risposta alla sfida, il codice di stato appropriato e le intestazioni di autenticazione vengono restituiti al client. Il client deve quindi inviare nuovamente la richiesta con una negoziazione. Il server restituirebbe un codice di stato appropriato con una sfida e il client richiederebbe quindi di inviare nuovamente la richiesta con la risposta appropriata per ottenere il servizio richiesto.

Se il proxy che stai utilizzando utilizza lo schema di autenticazione di base , ciò che è salvato nel tuo portachiavi sarà sufficiente per autenticarti. Se viene utilizzato uno schema di risposta alla sfida , molto probabilmente dovrai fornire ulteriori informazioni - in questo caso - reinserire la password - per autenticarti; e questo è quello che stai vedendo.

Processo di autenticazione NTLM

Questo è molto più di una semplice memorizzazione delle credenziali. Il client deve generare una risposta basata su una richiesta generata dal server. Di seguito è riportata una descrizione molto ridotta del processo di autenticazione dal punto di vista client / server secondo la documentazione di Microsoft

  • Il client invia il nome utente al server (in testo normale).
  • Il server genera un numero casuale di 16 byte, chiamato challenge o nonce, e lo invia al client.
  • Il client crittografa questa sfida con l'hash della password dell'utente e restituisce il risultato al server. Questa è chiamata la risposta.
  • Il server invia i seguenti tre elementi al controller di dominio:

    • Nome utente
    • Sfida inviata al cliente
    • Risposta ricevuta dal client
  • Il controller di dominio convalida la sfida e la risposta crittografate. Se autenticato, l'accesso è concesso.

Il terzo passaggio precedente richiede che il client esegua l'hashing di un numero casuale ottenuto dal server. Ciò significa intrinsecamente che non c'è nulla da archiviare sul tuo client macOS.

Come minimo, è necessario far parte del dominio Active Directory. Ciò significa che è necessario il supporto Kerberos abilitato e configurato correttamente per l'organizzazione specifica.

C'è una frase chiave nel documento "Gestione dell'autenticazione" che ho linkato sopra:

Se è richiesta l'autenticazione, il flag INTERNET_FLAG_KEEP_CONNECTION dovrebbe essere usato nella chiamata a HttpOpenRequest. Il flag INTERNET_FLAG_KEEP_CONNECTION è necessario per NTLM e altri tipi di autenticazione al fine di mantenere la connessione durante il completamento del processo di autenticazione. Se la connessione non viene mantenuta, è necessario riavviare il processo di autenticazione con il proxy o il server.

(Enfasi mia)

In base ai sintomi presentati, sembra che l'organizzazione richieda l'autenticazione al proxy; il tuo nome utente / password sono validi, ma continua a (ri) chiedere l'autenticazione. Probabilmente è perché stai perdendo lo stato della connessione e devi ripetere tutto da capo. Il che sottolinea ulteriormente il punto ....

Per risolvere questo problema, dovrai contattare l'amministratore di rete per aiutarti con i problemi di autenticazione.


1
Come posso sapere quale schema di autenticazione viene utilizzato? Esiste un'intestazione HTTP che potrei guardare quando un'applicazione sta parlando con il proxy? Posso farlo nella console di rete di Chrome o devo usare qualcosa come Wireshark?
nwinkler,

Molto probabilmente, dovresti usare Wireshark. Tieni presente che potrebbe anche essere un traffico crittografato.
Allan,

1
Ho aggiunto alcune informazioni da quello che ho visto in Wireshark alla domanda.
nwinkler,

1
Grazie per aver aggiunto ulteriori informazioni su NTLM alla tua risposta. Capisco NTLM, e da quello che posso vedere dall'output di Wireshark, sta funzionando: la sfida / risposta che descrivi viene eseguita, ad esempio per i servizi Dropbox o iCloud. Non sono ancora sicuro di quale servizio stia spuntando le finestre di dialogo delle credenziali proxy ripetute. La tua risposta contiene molte informazioni, ma finora non mi aiuta molto.
nwinkler

1
Connection Established! = Access Granted. Le persone che possono confermare che questo funziona sono i tuoi amministratori di sistema / rete nel tuo reparto IT.
Allan,

1

Nota: selezionare il pulsante di opzione per consentire a tutte le applicazioni di utilizzare il proxy

mediante l'autorizzazione dell'impostazione di modifica dell'app della catena chiave


-2

Eseguire il comando seguente da Console.app:

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

Ti verrà chiesto di accedere al portachiavi. Accetta di aggiungere il record nel portachiavi e avrai accesso senza password per tutto il tempo in cui il portachiavi è aperto.


1
Ho provato questo, ma non risolve il problema. Il comando imposta la configurazione proxy per il mio utente e memorizza l'autenticazione nel loginportachiavi del mio utente . Subito dopo averlo fatto, la finestra di dialogo di autenticazione proxy mostrata sopra è riapparsa di nuovo. La correzione suggerita non risolve il problema per me.
nwinkler

perché il tuo portachiavi di accesso è bloccato o hai doppi record
Siarhei Karatkevich

1
Il portachiavi di accesso è sbloccato, l'ho verificato due volte. Tuttavia, il punto sui doppi record potrebbe essere valido. Ho eliminato tutti i record per l'autenticazione proxy che ho trovato nel login e nei keychain di sistema, ma non appena inserisco la mia password una volta nella finestra di dialogo nel mio post originale, finisco con due record nel keychain di login, entrambi con esattamente gli stessi dati. Se ne elimino uno, torna quando inserisco di nuovo le mie credenziali.
nwinkler,

1
Ho provato il securitycomando che hai elencato: non trova nulla. Lo fa se cambio il find-generic-passwordcomando in find-internet-password, poiché il Portachiavi elenca la voce come di tipo "Password Internet".
nwinkler,

1
L'URL proxy è impostato come xxx.xxx.xxx.xxx , è così che funzionava, ad esempio dalla riga di comando. Proverò a catturare qualcosa usando Wireshark.
nwinkler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.