Come autentica Home Assistant le sessioni locali e remote?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

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

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.