Home Assistant normalmente non crea un sistema di autenticazione per la LAN e un altro per l'accesso remoto. L'utente si autentica sull'istanza di Home Assistant, le applicazioni ricevono token e questi token autenticano le sessioni API o WebSocket, indipendentemente dal fatto che la richiesta arrivi tramite un URL locale, Home Assistant Cloud, una VPN o un proxy inverso.
Ciò che cambia tra l'uso locale e quello remoto è principalmente il percorso di rete: DNS, TLS, proxy, tunneling e raggiungibilità pubblica. Mantenere separati percorso e identità è importante, perché un URL remoto non funzionante può sembrare un problema di accesso anche quando le credenziali e i token dell'utente Home Assistant sono ancora validi.
Le applicazioni si autenticano una volta e ricevono token di accesso e di aggiornamento
Il flusso di autenticazione delle applicazioni di Home Assistant genera un codice di autorizzazione, quindi un token di accesso e un token di aggiornamento. Il token di accesso, con durata limitata, viene utilizzato per le chiamate API; il token di aggiornamento consente all'applicazione di richiedere un nuovo token di accesso senza chiedere all'utente di effettuare l'accesso a ogni sessione.
L'attuale documentazione dell'API di autenticazione descrive il flusso di autorizzazione, token di accesso, token di aggiornamento e token Bearer HTTP. Quando un token di accesso diventa non valido, una richiesta API HTTP restituisce 401 e il client deve aggiornare il token o effettuare nuovamente l'autorizzazione.
In questo modo l'autorizzazione a lungo termine dell'utente resta separata dalla breve durata di una specifica credenziale API.
Le sessioni WebSocket si autenticano prima dell'inizio dello streaming dello stato in tempo reale
Il frontend e molte applicazioni mantengono aperta una connessione WebSocket, così Home Assistant può trasmettere aggiornamenti sullo stato e sugli eventi senza interrogare il server a ogni modifica.
L'API WebSocket di Home Assistant definisce una fase di autenticazione esplicita: il server invia auth_required, il client restituisce un token di accesso e solo una risposta auth_ok porta la connessione alla fase dei comandi.
Un token non valido termina la sessione. Un timeout di rete prima dell'inizio dello scambio di autenticazione è un errore diverso da una risposta auth_invalid dopo che il server ha ricevuto il token.
L'accesso remoto cambia il modo in cui il client raggiunge Home Assistant
Per impostazione predefinita, Home Assistant è accessibile localmente. L'accesso remoto può essere fornito tramite Home Assistant Cloud, una VPN, un proxy inverso o un percorso diretto adeguatamente protetto. Ogni opzione modifica il routing e l'esposizione, ma la destinazione resta la stessa istanza di Home Assistant.
L'attuale guida all'accesso remoto distingue i percorsi tramite Cloud, VPN, proxy inverso e port forwarding. I proxy inversi introducono inoltre un confine di fiducia, perché Home Assistant deve sapere quale proxy è autorizzato a fornire le informazioni inoltrate nelle richieste.
Per questo una modifica al router, al DNS, al certificato o al proxy può interrompere l'accesso remoto senza rendere necessario ricreare gli utenti.
Le sessioni locali e remote possono avere rischi di rete diversi
Una connessione LAN può restare all'interno di una rete domestica considerata affidabile, mentre una connessione remota può attraversare Internet o una rete overlay. Un design remoto sicuro aggiunge quindi crittografia, rafforzamento del proxy, criteri VPN e autenticazione a più fattori allo stesso sistema di account di Home Assistant.
Non interpretare “stesso modello di autenticazione” come “stessa esposizione di rete”. Una porta pubblica diretta, un tunnel cloud gestito e una VPN privata presentano superfici di attacco diverse, anche quando tutti e tre inviano infine token di accesso di Home Assistant.
La guida alla sicurezza dell'accesso remoto di ZimaSpace fornisce il contesto più ampio sul confine di rete, utile per decidere quale percorso debba trasportare queste sessioni autenticate.
Separa i problemi di routing da quelli di autenticazione
| Sintomo | Livello probabile | Prima distinzione |
|---|---|---|
| Il nome host remoto non viene risolto | DNS / routing | L'autenticazione non è iniziata |
| Errore TLS o del proxy prima dell'accesso | Percorso di accesso remoto | Verifica l'accesso locale diretto |
| HTTP 401 dall'API di Home Assistant | Token/autenticazione | Aggiorna il token o autorizza nuovamente il client |
| Il WebSocket restituisce auth_invalid | Token/autenticazione | Convalida l'autorizzazione del client |
| Il locale funziona, il percorso remoto non funziona | DNS/VPN/proxy/NAT | Non reimpostare prima gli utenti |
Il modello mentale più chiaro è: prima l'identità, poi il token di sessione e infine il percorso di rete. I client locali e remoti possono accedere attraverso percorsi di rete molto diversi, ma hanno comunque bisogno di un'autorizzazione Home Assistant valida una volta raggiunta l'istanza.
Domande frequenti
L'accesso remoto a Home Assistant richiede una password o un account diverso?
No. Normalmente i client remoti si autenticano sullo stesso sistema di utenti di Home Assistant. Il metodo di accesso remoto cambia il modo in cui il client raggiunge l'istanza, non quale database degli utenti gestisce l'account.
Devo eliminare i token se smette di funzionare solo l'URL remoto?
Non come primo passo. Verifica innanzitutto che DNS, VPN, proxy, TLS o NAT raggiungano Home Assistant. Reimposta o autorizza nuovamente i token quando è Home Assistant a rifiutare l'autenticazione, non semplicemente perché il percorso di rete non è disponibile.
Hub Tecnologico e AI
Altro da leggere

Stato di runtime vs stato persistente in Home Assistant: cosa deve sopravvivere al riavvio?
Home Assistant non conserva ogni valore in tempo reale; la configurazione, i registri, gli stati selezionati ripristinati, la cronologia e i dati di distribuzione...

Perché le query della cronologia di Home Assistant possono rallentare man mano che crescono i dati del Recorder?
La crescita del registratore può aumentare il costo delle query della cronologia quando l’intervallo richiesto coinvolge più righe, aumentano i cache miss o le...

Perché Home Assistant ricostruisce uno stato diverso dopo il riavvio del container?
Il riavvio del container non equivale alla perdita dello stato: Home Assistant ricostruisce lo stato di runtime a partire dalla configurazione persistente, dalle integrazioni,...

