Home Assistant maakt normaal gesproken niet één authenticatiesysteem voor het LAN en een ander voor externe toegang. De gebruiker autoriseert zich bij de Home Assistant-instantie, applicaties ontvangen tokens en die tokens authenticeren API- of WebSocket-sessies, ongeacht of het verzoek binnenkomt via een lokale URL, Home Assistant Cloud, een VPN of een reverse proxy.
Wat er verandert tussen lokaal en extern gebruik, is voornamelijk het netwerkpad: DNS, TLS, proxying, tunneling en publieke bereikbaarheid. Het is belangrijk om route en identiteit gescheiden te houden, omdat een defecte externe URL eruit kanzien als een inlogprobleem, zelfs wanneer de inloggegevens en tokens van de Home Assistant-gebruiker nog steeds geldig zijn.
Applicaties autoriseren één keer en ontvangen toegangs- en vernieuwingstokens
De authenticatiestroom voor applicaties van Home Assistant genereert een autorisatiecode en vervolgens een toegangstoken plus een vernieuwingstoken. Het kortstondige toegangstoken wordt gebruikt voor API-aanroepen; met het vernieuwingstoken kan de applicatie een nieuw toegangstoken aanvragen zonder de gebruiker voor elke sessie opnieuw te laten inloggen.
De actuele Authentication API documenteert de autorisatie-, toegangs-token-, vernieuwingstoken- en HTTP Bearer-tokenstroom. Wanneer een toegangstoken ongeldig wordt, retourneert een HTTP API-verzoek 401 en moet de client het token vernieuwen of opnieuw autoriseren.
Hiermee wordt de langdurige autorisatie van een gebruiker gescheiden van de korte levensduur van een specifieke API-referentie.
WebSocket-sessies worden geauthenticeerd voordat live statusstreaming begint
De frontend en veel applicaties houden een WebSocket open, zodat Home Assistant status- en gebeurtenisupdates kan streamen zonder de server voor elke wijziging te pollen.
De WebSocket-API van Home Assistant definieert een expliciete authenticatiefase: de server verstuurt auth_required, de client retourneert een toegangstoken en alleen een auth_ok-antwoord brengt de verbinding naar de opdrachtfase.
Een ongeldig token beëindigt die sessie. Een netwerktime-out voordat de authenticatie-uitwisseling begint, is een andere fout dan een auth_invalid-antwoord nadat de server het token heeft ontvangen.
Externe toegang verandert de manier waarop de client Home Assistant bereikt
Standaard is Home Assistant lokaal. Externe toegang kan worden geboden via Home Assistant Cloud, een VPN, een reverse proxy of een bewust beveiligd direct pad. Elke optie verandert de routering en blootstelling, maar de bestemming blijft dezelfde Home Assistant-instantie.
De actuele handleiding voor externe toegang onderscheidt Cloud-, VPN-, reverse-proxy- en port-forwardingroutes. Reverse proxies introduceren ook een vertrouwensgrens, omdat Home Assistant moet weten welke proxy doorgestuurde verzoekinformatie mag aanleveren.
Daarom kan een wijziging aan router, DNS, certificaat of proxy externe toegang verbreken zonder dat gebruikers opnieuw hoeven te worden aangemaakt.
Lokale en externe sessies kunnen verschillende netwerk risico's hebben
Een LAN-verbinding kan binnen een vertrouwd thuisnetwerk blijven, terwijl een externe verbinding het openbare internet of een overlaynetwerk doorkruist. Een veilig ontwerp voor externe toegang voegt daarom versleuteling, proxybeveiliging, VPN-beleid en meervoudige authenticatie toe rond hetzelfde Home Assistant-accountsysteem.
Interpreteer “hetzelfde authenticatiemodel” niet als “dezelfde netwerkblootstelling”. Een directe openbare poort, een beheerde cloudtunnel en een privé-VPN hebben verschillende aanvalsoppervlakken, ook al dienen ze uiteindelijk alle drie Home Assistant-toegangstokens in.
De handleiding voor veilige externe toegang tot een thuisserver van ZimaSpace biedt de bredere netwerkgrens voor het bepalen welk pad deze geauthenticeerde sessies moet dragen.
Maak onderscheid tussen route- en authenticatiefouten
| Symptoom | Waarschijnlijke laag | Eerste onderscheid |
|---|---|---|
| Externe hostnaam wordt niet opgelost | DNS / route | Authenticatie is nog niet gestart |
| TLS- of proxyfout vóór het inloggen | Extern toegangspad | Test directe lokale toegang |
| HTTP 401 van de Home Assistant-API | Token/authenticatie | Vernieuw het token of autoriseer de client opnieuw |
| WebSocket retourneert auth_invalid | Token/authenticatie | Controleer de autorisatie van de client |
| Lokaal werkt, externe route mislukt | DNS/VPN/proxy/NAT | Reset niet meteen de gebruikers |
Het juiste mentale model is: eerst identiteit, daarna sessietoken en vervolgens netwerkroute. Lokale en externe clients kunnen via heel verschillende netwerkpaden binnenkomen, maar ze hebben nog steeds een geldige Home Assistant-autorisatie nodig zodra ze de instantie bereiken.
Veelgestelde vragen
Heb ik voor externe Home Assistant-toegang een ander wachtwoord of account nodig?
Nee. Externe clients authenticeren zich normaal gesproken bij hetzelfde gebruikerssysteem van Home Assistant. De externe methode verandert de manier waarop de client de instantie bereikt, niet welke gebruikersdatabase het account beheert.
Moet ik tokens verwijderen wanneer alleen de externe URL niet meer werkt?
Niet als eerste stap. Controleer eerst of DNS, VPN, proxy, TLS of NAT Home Assistant kan bereiken. Reset tokens of autoriseer opnieuw wanneer Home Assistant de authenticatie zelf afwijst, niet alleen omdat het netwerkpad niet beschikbaar is.
Tech & AI HUB
Meer om te lezen

Runtime-status versus persistente status in Home Assistant: wat moet een herstart overleven?
Home Assistant bewaart niet elke actuele waarde; configuratie, registers, geselecteerde herstelde statussen, geschiedenis en implementatiegegevens spelen verschillende rollen bij het herstarten.

Waarom kunnen geschiedenisquery's van Home Assistant trager worden naarmate de Recorder-gegevens groeien?
Groei van de recorder kan de kosten van geschiedenisquery's verhogen wanneer het aangevraagde bereik meer rijen omvat, cachemissers toenemen of opslag- en indexbewerkingen trager...

Waarom bouwt Home Assistant na een herstart van de container een andere status op?
Het opnieuw starten van een container betekent niet dat de status verloren gaat: Home Assistant bouwt de runtime-status opnieuw op vanuit persistente configuratie, integraties,...

