Perché il tuo VPN su Mac chiede accesso al Keychain ogni volta
Identifica quale componente genera ogni avviso del VPN su Mac, interrompi i tentativi di connessione duplicati e ripara l'accesso al Keychain senza reimpostare l'intero portachiavi.
Un clic su Connect dovrebbe produrre una sola finestra di accesso. Su un Mac spesso ne produce tre, e raramente condividono lo stesso proprietario: il portachiavi possiede gli avvisi delle credenziali locali, il gateway VPN possiede l'autenticazione, e il client possiede i propri avvisi. Invece di cercare un interruttore che zittisca tutto, tratta ogni finestra come un difetto separato con la sua correzione. La guida qui sotto segue un tentativo di connessione deliberato e termina con un controllo che puoi ripetere.
Dai un nome al proprietario di ogni finestra prima di cambiare un'impostazione
Il primo passo è contabilità, non configurazione. Esegui un tentativo di connessione e, per ogni finestra che appare, annota quattro campi: il nome dell'app mostrato nella finestra, il testo esatto senza nulla di segreto, la fase in cui è apparso e cosa è successo quando l'hai annullato. Tre righe così coprono quasi tutti i rapporti che ho esaminato.
La proprietà decide la correzione giusta, e la correzione sbagliata è di solito quella che trasforma un avviso in tre:
| Window | Who owns it | Correct fix | What not to do |
|---|---|---|---|
| “wants to use your confidential information stored in…” | The item's access control list in your login keychain | Approve the specific client helper, once, after checking the name | Resetting the login keychain, or granting Always Allow to every application |
| “Sign in to <organization>” or an MFA push | The gateway's identity provider | Use the client's supported session renewal, or re-authenticate | Scripting a fixed password or code into the client |
| “Connection failed”, “Update required”, a policy banner | The client or your organization | Read the first error and fix its cause | Hiding notices by editing a preference file the client rewrites |
Un avviso che ritorna durante lo stesso tentativo è un segnale diverso da uno che ritorna al tentativo successivo. Il primo di solito significa che la connessione è stata riavviata sotto di te; il secondo di solito significa che viene richiesta di nuovo una credenziale salvata. Annota quale hai prima di toccare il portachiavi, perché i due non hanno quasi nulla in comune.
Scopri quante cose stanno avviando il tunnel
Quattro meccanismi possono avviare lo stesso VPN su un Mac: un'azione della barra dei menu, un elemento di login, una regola On Demand e uno script o un agente. Quando due di essi si attivano, il secondo avvio può arrivare mentre il primo attende ancora l'autenticazione, il che produce una finestra duplicata e nessun progresso. Elenca prima cosa è configurato: scutil --nc list stampa i servizi VPN conosciuti dalle Impostazioni di Sistema, con il loro stato attuale. I client che forniscono la propria estensione di rete tengono i profili dentro l'app e potrebbero non comparire lì, quindi controlla anche l'elenco delle connessioni del client.
Poi cerca gli avviatori concorrenti. scutil --nc show "Work VPN" stampa il dizionario di configurazione di un servizio integrato, comprese le regole On Demand; una regola che si riconnette a ogni cambio di interfaccia riavvierà il tunnel — e riaprirà l'avviso di autenticazione — ogni volta che il Wi-Fi si sposta o uno schermo sveglia lo stack di rete. Controlla gli elementi di login in Impostazioni di Sistema > Generali > Elementi di login, e lista gli agenti per utente con ls ~/Library/LaunchAgents. Lascia stare tutto ciò che appartiene a uno stack di sicurezza gestito da MDM; la rimozione di solito viene ripristinata al controllo successivo.
Per vedere cosa sta davvero girando durante un tentativo: ps -Ao pid,comm | grep -iE 'vpn|tunnel|extension'. Due ausiliari del client dove ne aspetti uno spiegano «perché ho ricevuto due avvisi» molto più spesso di qualsiasi problema di credenziali.
Ripara l'accesso al portachiavi senza reimpostare il portachiavi
L'avviso viene dall'elenco di controllo degli accessi dell'elemento salvato, non dal protocollo VPN. Ogni elemento registra quali applicazioni possono leggerlo senza chiedere. Dopo un aggiornamento del client, l'ausiliario che chiede può avere un altro nome o un'altra firma mentre l'elemento elenca ancora quello vecchio, così macOS chiede di nuovo a ogni connessione. Approvare il nuovo ausiliario per quell'unico elemento è tutta la correzione; approvare ogni applicazione non lo è.
Puoi confermare che l'ACL è la causa senza toccare il VPN: security find-generic-password -s "service-name" -g legge lo stesso elemento da un terminale. Se anche quel comando fa comparire l'avviso, la finestra appartiene al portachiavi e il tunnel è solo il grilletto. Le indicazioni di Apple sui tre pulsanti — Consenti una volta, Consenti sempre, Nega — meritano una lettura, perché Nega è ciò che fa riapparire l'avviso subito invece che al tentativo successivo.
Se hai approvato l'ausiliario sbagliato, apri l'elemento in Accesso Portachiavi, passa a Controllo accessi ed elimina quella voce; questo è il rollback. Cancellare il portachiavi di login, o eseguire uno strumento di riparazione che lo ricostruisca, scarta anche password non correlate ed è un cambiamento molto più grande del problema.
Mantieni i passaggi di accesso e di policy nei flussi che li possiedono
Un accesso via browser o una sfida MFA appartengono al gateway. Se la tua organizzazione offre la persistenza di sessione o l'autenticazione basata su certificati, usala, perché è il modo supportato per autenticarsi meno spesso. Digitare un codice fisso in un client, o salvare una password in uno script perché l'avviso non compaia mai, sostituisce un fattore interattivo con un segreto statico e fallisce alla successiva rotazione della policy.
Gli avvisi dell'organizzazione sono l'unica categoria che non dovresti sopprimere. Di solito impongono un controllo di postura o un'accettazione dell'uso accettabile, e nasconderli può mettere il dispositivo fuori conformità anche mentre il tunnel funziona. Le finestre di errore sono l'altra categoria: conserva il testo del primo errore, perché una seconda finestra è spesso solo lo stesso guasto segnalato dopo un nuovo tentativo.
Verifica con un tentativo, poi dopo un riavvio
Con gli avviatori duplicati rimossi e la voce del portachiavi riparata, esegui un solo tentativo: chiudi ogni istanza del client, incluso l'ausiliario della barra dei menu, connettiti una volta e conta le finestre. Vuoi l'approvazione del portachiavi, se l'elemento è stato ricostruito, e un solo passaggio di autenticazione. Niente di più. scutil --nc status "Work VPN" dovrebbe riportare Connected per un servizio integrato.
Poi riavvia una volta e ripeti. Un avviso che torna solo dopo un riavvio punta a un elemento di login o a una regola On Demand, non alle credenziali; uno che torna dentro la sessione punta all'ACL o a un secondo avviatore. Se si ripete ancora dopo entrambi i passaggi, la cosa utile da consegnare al tuo amministratore è la tabella di tre righe del primo tentativo — proprietario, testo esatto, fase — non uno screenshot della finestra.
Meno avvisi è l'obiettivo, non avvisi silenziosi. Una connessione che nasconde i suoi passaggi di autorizzazione è una connessione che non puoi più verificare, e la prossima rotazione dei certificati ti troverà senza idea di quale componente stia fallendo.