Inloggen: eerste start, inlogscherm, offline en zakelijk inloggen
FAQ › EUZOS Desktop › Inloggen · English
Wat is het?
Als EUZOS Desktop is opgestart, toont het het inlogscherm. Er staat niets van een gebruiker onversleuteld op de pc: het profiel komt na het inloggen van de profielserver, staat alleen in het RAM en wordt gewist als je je afmeldt ("volledig online, niets lokaal"). Je kunt op vier manieren inloggen:
- QR-code met de EUZOS-app op je telefoon (de telefoon kiest het profiel, Werk of school of Privé, en je bevestigt met je vingerafdruk of Face ID);
- e-mailadres en wachtwoord (dezelfde als in de EUZOS-app);
- Inloggen met Microsoft (het werkaccount van je bedrijf in Entra ID, via de device-code-flow);
- Offline inloggen met het wachtwoord dat je het laatst op deze pc gebruikte, als er geen verbinding is.
Welke profielserver de pc vertrouwt, staat in \EOS\FW\PROFILE.TXT.
Hoe doe ik…?
Hoe kom ik na de installatie op het inlogscherm?
Start op vanaf de interne schijf (of de stick). Als netwerk, wifi en sshd zijn gestart, stopt het opstartscherm en toont screen::start_up het inlogscherm, met het opstartgeluid. Twee dingen houden je in plaats daarvan in de console:
\EOS\FW\SCREEN.TXTbevat het woordconsole(zie Schermbeveiliging › Configuratiebestanden);- er is geen bruikbare
PROFILE.TXT(profile::boot_check): geen bestand, een onleesbaar bestand, of een bestand waarmee deze pc niet kan inloggen. De console schrijft danScreen : console, because …. Een productiebuild heeft geen PROFILE.TXT nodig (de productieserver zit erin ingebouwd).
Typ screen login in de console om het inlogscherm toch te tonen.
Hoe log ik in met mijn telefoon?
Open de EUZOS-app en scan de QR-code. De app toont dezelfde koppelcode van zes cijfers die onder de QR-code staat; controleer dat ze gelijk zijn, kies het profiel (Werk of school / Privé) en bevestig. Zolang geen telefoon de code heeft opgehaald, komt er elke 30 s een nieuwe QR-code (een foto van het scherm is daarna waardeloos); zodra een telefoon hem heeft opgehaald, toont het scherm "Bevestig op je telefoon…" tot je bevestigt of weigert.
Hoe log ik in met e-mailadres en wachtwoord?
Typ je e-mailadres en wachtwoord in het formulier rechts van de QR-code en druk op Inloggen (of Enter). De QR-code blijft intussen werken. In een testbuild kun je in een andere omgeving inloggen door een voorvoegsel voor het adres te zetten: sbx:<e-mail> of prod:<e-mail> (zie Omgevingen).
Hoe maak ik een account aan op de pc?
Druk op Account maken onder het formulier: voornaam, achternaam, woonplaats, e-mailadres en een wachtwoord (minstens 10 tekens, twee keer). De profielserver stuurt per mail een code van 6 cijfers (24 uur geldig); typ die op de pc, waarna de pc je inlogt. Code opnieuw sturen vraagt een nieuwe code. Een QR-code op dat scherm opent de registratiepagina (https://<server>/registreer) op je telefoon. Als de server zelf registreren niet toestaat, zegt het scherm "Vraag de beheerder".
Hoe log ik in met mijn Microsoft-werkaccount?
Druk op Inloggen met Microsoft (alleen te zien als de pc een Entra-app heeft in \EOS\FW\MSAPP.TXT). Het scherm toont een adres (microsoft.com/devicelogin), een code in grote letters en een QR-code. Log in op je telefoon of een andere computer; de MFA en Conditional Access van je organisatie gelden. De pc stuurt daarna het ID-token naar de profielserver, die je inlogt met je zakelijke profiel. Je organisatie moet bij de profielserver bekend zijn (tenant en e-maildomein), anders zie je "Je organisatie gebruikt EUZOS nog niet". Mail en OneDrive werken daarna meteen met dezelfde Microsoft-aanmelding. Zie Profielserver › Organisaties.
Hoe log ik in zonder internet?
Als je eerder op deze pc met een wachtwoord hebt ingelogd (en het beleid van de server offline inloggen toestaat), bewaart de pc een offline-kluisje. Zonder verbinding toont het inlogscherm naast de kaart Wifi kiezen het formulier Offline inloggen: "Geen verbinding; inloggen met je laatst gebruikte wachtwoord op deze pc". Met het juiste wachtwoord gaat je profielmap open in offline-modus, met het label Offline in de balk. Zodra er weer internet is, maakt de pc vanzelf weer verbinding (elke 30 s) en verdwijnt het label.
Grenzen: 3 vrije pogingen, daarna een groeiende wachttijd (30 s, 60 s, 120 s, … hoogstens 15 min); na 10 fouten wordt het offline-kluisje gewist. Het kluisje verloopt na het aantal dagen dat de server toestaat (standaard 14, hoogstens 30, 0 = niet toegestaan). Inloggen met de QR-code of met Microsoft maakt geen offline-kluisje.
Hoe meld ik me af?
Op het bureaublad: de aan/uit-knop › Afmelden, en bevestig "Afmelden?". In de console, de terminal of via SSH: logout (zonder vraag). Afmelden meldt het token af bij de profielserver, wist het profiel en alles van de sessie uit het geheugen (browsergegevens, mail, Chromium, Microsoft-tokens, klembord, de terminalgeschiedenis en de shellgeschiedenis) en toont het inlogscherm met een nieuwe code.
Je wordt ook vanzelf afgemeld als:
- je deze pc op afstand afmeldt vanuit de EUZOS-app;
- de pc 15 minuten geen geldig antwoord van de server heeft gehad;
- je 12 uur bent ingelogd (ook offline).
Hoe kies ik de taal van het inlogscherm?
Tik op de kaart Taal onderaan en kies een van de 34 talen. Die geldt meteen en de pc onthoudt hem in \EOS\FW\LANG.TXT (geschreven zodra er 2 s niets meer gekozen is). Die keuze gaat boven language= in PROFILE.TXT. Na het inloggen geldt de taal van het profiel.
Hoe sta ik alleen zakelijke profielen toe op deze pc?
profile private off schrijft private=off in PROFILE.TXT (oud prive=uit wordt nog gelezen). Het inlogscherm biedt dan alleen "Werk of school", de pc vraagt de server om voorkeur=zakelijk en weigert een privéprofiel dat toch binnenkomt. profile private on draait het terug.
Hoe wissel ik tussen SBX en PROD?
Alleen in een testbuild:
environmenttoont de build, de standaardomgeving en de omgeving van de huidige sessie;environment sbx|prodschrijftenvironment=in PROFILE.TXT (met de ingebouwde server en sleutel;private=enlanguage=blijven); actief na een herstart;profile sandbox|production|local [sleutel]schrijft een nieuwe PROFILE.TXT voor die omgeving; actief vanaf de volgende inlogcode;- op het inlogscherm logt
sbx:<e-mail>ofprod:<e-mail>voor één sessie in op die omgeving.
Een oranje label SANDBOX staat op het inlogscherm zolang de standaard SBX is, en in de balk zolang de sessie SBX is. Een productiebuild kent alleen PROD en weigert deze opdrachten.
Waarom kan ik de console niet openen vanaf het inlogscherm?
In een productiebuild zijn de console (Ctrl+Alt+F1/T, screen console, de regel Console in het aan/uit-menu, de terminal), sshd, log en profile/environment beheeropdrachten: ze mogen alleen met een ondertekend beleid in je profiel (beheer=), dat de beheerder op de profielserver instelt. Zonder ingelogde sessie accepteert een productiebuild alleen help, reboot, poweroff, screen login, screen back, en battery, date, mem zonder argumenten. Een testbuild staat alles toe, tenzij een ondertekend beleid iets anders zegt. Zie Console.
Hoe registreer ik deze pc met een apparaatsleutel?
pckey create maakt een Ed25519-apparaatsleutel in \EOS\FW\PCKEY.TXT (alleen met sterke willekeur, nooit overschreven). pckey toont de publieke sleutel, de vingerafdruk ervan en de CLI-regel die de beheerder op de profielserver uitvoert (pc-register '<naam>' <sleutel> <organisatie>). De sleutel wordt gebruikt door Server Admin om opdrachten aan een werkplekserver te ondertekenen; het installatieprogramma kopieert hem nooit.
Details
Het inloggen met de QR-code (de sessie pollen)
- Per inlogcode maakt de pc een
LoginAttempt: een sessie-idS(in de QR-codehttps://<server>/l/<S>) en een pc-geheimG(128 bits, alleen in het RAM, nooit op het scherm of in het log). De koppelcode van zes cijfers wordt berekend uitSenSHA-256(G)met het domeinEUZOS-koppelcode-v1. - Thread
login(profile::wait_for_phone) pollt elke 2 sGET https://<server>/api/sessie/<S>?pc=<G>[&voorkeur=…]; de eerste poll maakt de sessie op de server aan. Zolang geen telefoon de code heeft opgehaald, pollt de pc na 30 s (euzos_profile::QR_MS) met&intrekken=1en toont een nieuwe code. - Bij
okcontroleerteuzos_profile::parse_responsehet antwoord: versie 2, de Ed25519-handtekening (handtekening=, overEUZOS-profiel-v2\0+ alles ervoor) met de sleutel uit PROFILE.TXT, enomgeving,server,sessie,pcgelijk aan de eigen waarden van de pc,verlooptin de toekomst (als de klok van NTP komt). Anders wordt het antwoord gewist en komt er een nieuwe code. profile::loginonthoudt server en token, start de statusthread en geeft het profiel aandesktop::start.
Na het inloggen
- Status: thread
statusvraagt elke 30 sGET /api/status?token=….afgemeld(op afstand afgemeld of verlopen) wist het profiel en toont het inlogscherm. 15 min geen geldig antwoord, of 12 uur ingelogd: afmelden. - Instellingen terugschrijven: wat je verandert (balk, thema, taal, kleur, toetsenbord, touchpad, screensaver, recente apps, browserfavorieten, …) gaat 2 s na de laatste wijziging in één
POST /api/profiel/instellingen?token=…. Mislukt dat (geen netwerk, 429, 5xx), dan opnieuw na het volgende geldige statusantwoord; afmelden stuurt eerst wat nog openstaat. In het log komen alleen de namen van de instellingen, nooit de waarden. - Beheerbeleid:
environment::set_policyneemtbeheer=uit het ondertekende profiel (in een productiebuild alleen uit een PROD-profiel dat met de ingebouwde productiesleutel is ondertekend). Het wordt op elke manier van afmelden gewist.
Offline inloggen
- Na een geslaagde login met wachtwoord leidt thread
login-pween sleutel af van het wachtwoord (Argon2id, 64 MiB, t=4, eigen salt;offline::after_login). Als de profielmap open is, gaat het kluisje naar partitie 2 (euzos_profiledir::offline, hoogstens 8 per pc) en het ondertekende profiel naarsysteem/offline/profielin de map. - Zonder verbinding (
offline::try_login, alleen bij een netwerkfout, nooit bij een foutantwoord van de server) gaan het kluisje, de map en het profiel open; de handtekening van de server wordt opnieuw gecontroleerd. De sessie heeft geen pc-token: geen kluis, DriverEnricher, BrowserFeedback of appcatalogus. - Thread
reconnect(elke 30 s) post het herverbindingstoken; 200 maakt de sessie online (profile::came_online), 403 (ingetrokken, geblokkeerd, gewist, verlopen, uit, onbekend) wist het kluisje en meldt af. - Instellingen die offline veranderden en niet verstuurd konden worden, gaan naar
systeem/offline/instellingen-<n>en worden door de volgende online sessie verstuurd.
Inloggen met Microsoft (Entra)
kernel/src/entra.rs: thread entra vraagt een device code aan (RFC 8628) met de client-id uit MSAPP.TXT, scopes openid profile email plus die van mail en OneDrive. Na de bevestiging gaat het ID-token naar POST /api/pc/entra (profile::entra_request) met een eigen sessie-id en pc-geheim; de server antwoordt met een ondertekend profiel (methode=microsoft), altijd het zakelijke profiel. entra::take_token maakt daarna van het Microsoft-token een account van crate::microsoft (mail, OneDrive). Tokens en codes blijven in het RAM.
Opbouw van het inlogscherm
libs/ui/src/login.rs: het logo linksboven; "INLOGGEN" met links de QR-kolom en rechts het formulier (e-mailadres, wachtwoord, Inloggen), met "of" ertussen (staand onder elkaar); onder het formulier Account maken en Inloggen met Microsoft. Onderaan een rij kaarten:
| Kaart | Toont | Tikken |
|---|---|---|
| Netwerk | kabel of wifi met naam en sterkte | het wifipaneel |
| Mobiel (alleen met een modem) | provider, generatie, signaal, of "PIN nodig", "Geen SIM-kaart" | het paneel Mobiel netwerk (pincodeveld) |
| Taal | wereldbol en naam van de taal | het taalpaneel |
| Batterij (alleen met een batterij) | percentage en laadtoestand | — |
| Tijd | tijd en datum | — |
| Aan/uit | pictogram | Herstarten, Uitschakelen, Console (Console niet in een productiebuild) |
Zonder netwerk of profielserver is er geen QR-code maar een uitleg en Wifi kiezen.
Naslag
Consoleopdrachten
| Opdracht | Argumenten | Wat het doet |
|---|---|---|
screen login | — (oude alias scherm inlog) | het inlogscherm met een nieuwe inlogcode |
screen off | — (oud uit) | terug naar de console; een ingelogd profiel wordt afgemeld en gewist |
screen desktop | [business|private] [<taalcode>] (oud zakelijk, prive, privé) | het bureaublad met een voorbeeldprofiel, zonder inloggen; geweigerd als iemand is ingelogd |
logout | — (oude aliassen afmelden, uitloggen) | afmelden: token af bij de server, profiel gewist, inlogscherm |
profile | — (oude alias profiel) | toont omgeving, server, sleutel (hex en sleutel-id), privé aan/uit, of inloggen kan, de server van de sessie |
profile sandbox | — | schrijft PROFILE.TXT voor de sandboxserver met de ingebouwde sandboxsleutel (testbuild) |
profile production | — (oud productie) | schrijft PROFILE.TXT voor de productieserver (testbuild) |
profile local | [sleutel] (oud lokaal) | PROFILE.TXT voor een lokale ontwikkelserver; sleutel = 64 hex uit euzos-profielserver key; de TLS-root komt uit \EOS\FW\EXTRA.PEM |
profile private | off|on (oud prive, privé; uit, aan) | zet of verwijdert private=off |
environment | — (oude alias omgeving) | toont build, standaardomgeving en omgeving van de sessie |
environment | sbx|sandbox|prod|production (oud productie) | zet environment= in PROFILE.TXT; na een herstart (alleen testbuild) |
offline | — | de offline-kluisjes op deze pc (dagen over, fouten, Argon2id-parameters; geen adressen) en of de sessie offline is |
offline wipe | — (oud wis) | wist alle offline-kluisjes op deze pc |
pckey | — (oude alias pcsleutel) | toont de apparaatsleutel, de vingerafdruk en de regel voor pc-register |
pckey create | — (oud maak) | maakt \EOS\FW\PCKEY.TXT (geweigerd als die bestaat of zonder RDRAND) |
Alle andere subopdrachten van screen (console, back, welcome, theme, lock, photo, hulpjes voor de testbuild) staan bij Schermbeveiliging › Consoleopdrachten.
profile, environment, log, sshd en het tonen van de console zijn beheeropdrachten (euzos_profile::console::Admin), zie Console.
Functies en modules
| Functie / module | Rol |
|---|---|
kernel::profile::config / config_for / active_config | PROFILE.TXT van deze start; config voor een omgeving; config van de ingelogde sessie |
kernel::profile::boot_check | is er een bruikbare PROFILE.TXT (beslist inlogscherm of console) |
kernel::profile::command, environment_command | de opdrachten profile en environment |
kernel::profile::LoginAttempt (qr, pairing_code) | één inlogcode: sessie-id, pc-geheim, koppelcode |
kernel::profile::wait_for_phone | thread login: pollt de sessie |
kernel::profile::login, login_offline, came_online, end_offline | een online/offline sessie starten, online komen, offline beëindigen |
kernel::profile::login_with_password, password_login | inloggen met wachtwoord vanaf het inlogscherm / het installatieprogramma |
kernel::profile::register, confirm, resend_request, registration_qr | een account maken op de pc |
kernel::profile::entra_request | ID-token naar de profielserver |
kernel::profile::logout, session_logout, clear_user, logout_at_server | afmelden en alles van de gebruiker wissen |
kernel::profile::setting_changed, recent_changed, favorites_changed, sites_changed, mail_accounts_changed | instellingen klaarzetten om terug te schrijven |
kernel::profile::unlock_check | wachtwoordcontrole voor het vergrendelscherm |
kernel::offline::{after_login, try_login, follow, check, command} | offline-kluisje: maken, inloggen, herverbinden, controle bij ontgrendelen, console |
kernel::entra::{start, take_token} | de device-code-flow van Microsoft |
kernel::device_key::{command, public_key, sign_command} | de apparaatsleutel van de pc |
kernel::environment::{PRODUCTION, set_policy, clear_policy, admin_allowed, shell_allowed} | soort build en beheerbeleid |
kernel::lang::{pc, current, set_pc, set_session, choice} | taal van de pc en van de sessie; LANG.TXT |
kernel::screen::{start_up, login_show} | het inlogscherm tonen bij het opstarten / op verzoek |
euzos_profile::Config::parse | PROFILE.TXT inlezen |
euzos_profile::parse_response, parse_status | de antwoorden op sessie en status controleren |
euzos_profile::pairing_code | koppelcode van zes cijfers |
euzos_profile::writeback::{KEYS, valid, Changes, parse_response} | toegestane sleutels en verzoek voor het terugschrijven van instellingen |
euzos_profile::console::{Admin, Policy, allowed, line_allowed, allowed_without_session, policy_for_build} | regels voor console en beheer |
euzos_profiledir::offline | de tabel met offline-kluisjes op partitie 2 |
euzos_oauth::MsApp | MSAPP.TXT inlezen |
euzos_ui::login | het inlogscherm en de kaarten tekenen |
Configuratiebestanden
Sinds 27-10-2026 schrijft EUZOS Engelse namen voor configuratiebestanden, sleutels, waarden en bevestigingswoorden (bijvoorbeeld
WIPE-…,environment=inPROFILE.TXT); de oude Nederlandse namen (hier oud genoemd) worden nog gelezen en geaccepteerd (docs/ENGLISH.md).
| Bestand | Sleutel | Waarden | Betekenis |
|---|---|---|---|
\EOS\FW\PROFILE.TXT (oude naam PROFIEL.TXT, wordt nog gelezen) | environment (oud omgeving) | local, sandbox, production (oud lokaal, productie) | omgeving (verplicht) |
server | host of host:poort | profielserver (standaard: ingebouwd voor de omgeving) | |
key (oud sleutel) | 64 hex | de publieke Ed25519-sleutel van de server | |
key-id (oud sleutel-id) | 16 hex | moet bij de sleutel passen (tegen tikfouten) | |
private (oud prive) | on, off (oud aan, uit) | off: alleen Werk of school | |
language (oud taal) | taalcode | taal van de pc (inlog- en opstartscherm) | |
| (andere sleutels) | — | overgeslagen; een sleutel twee keer is een fout (een Nederlandse sleutel en de Engelse tellen als dezelfde sleutel) | |
\EOS\FW\LANG.TXT (oud TAAL.TXT) | language (oud taal) | een van de 34 codes | taal gekozen op het inlogscherm; gaat boven language= in PROFILE.TXT |
\EOS\FW\MSAPP.TXT | client_id | GUID (verplicht) | Entra-app voor Inloggen met Microsoft |
tenant | common (standaard), organizations, consumers, tenant-id/domein | welke accounts mogen inloggen; onbekende sleutels zijn een fout | |
\EOS\FW\PCKEY.TXT | (één regel) | 64 hex | Ed25519-seed van de apparaatsleutel |
\EOS\FW\SCREEN.TXT (oud SCHERM.TXT) | eerste woord | console; login/inlog/graphical/grafisch of leeg | console: geen opstartscherm en geen inlogscherm |
\EOS\FW\EXTRA.PEM | — | PEM | eigen TLS-root voor profile local (genegeerd in een productiebuild) |
In een productiebuild tellen alleen private= en language= uit PROFILE.TXT; server en sleutel zijn ingebouwd (Config::production_only).
API-eindpunten (aangeroepen door de pc)
De kernel roept nog de oude Nederlandse routes aan; de Engelse routes draaien ernaast op de server, met byte-gelijke inhoud. Alle details: Profielserver › API.
| Methode | Pad dat de kernel gebruikt (oud) | Engelse route | Doel |
|---|---|---|---|
| GET | /api/sessie/<S>?pc=<G>[&voorkeur=…][&intrekken=1] | /api/session/{id} | het inloggen met QR pollen |
| GET | /api/status?token=… | /api/status | is de sessie nog geldig |
| GET | /api/afmelden?token=… | /api/logout | het pc-token afmelden |
| POST | /api/pc/inloggen | /api/pc/login | inloggen met wachtwoord (ook het vergrendelscherm) |
| POST | /api/pc/entra | /api/pc/entra | inloggen met een Microsoft-ID-token |
| POST | /api/pc/herverbind | /api/pc/reconnect | offline sessie weer online |
| POST | /api/pc/registreer | /api/pc/register | een account maken |
| POST | /api/pc/verifieer | /api/pc/verify | de code uit de mail bevestigen |
| POST | /api/pc/opnieuw | /api/pc/resend | nieuwe code per mail |
| POST | /api/profiel/instellingen?token=… | /api/profile/settings | instellingen terugschrijven |
Pagina-URL's: https://<server>/l/<S> (QR-code), https://<server>/registreer (registratie-QR).
Protocolberichten en formaten
Antwoord op het pollen van de sessie (eerste regel, dan regels sleutel=waarde):
| Eerste regel | Regels | Betekenis |
|---|---|---|
wacht | code=<6 cijfers>, gezien=1 | nog niet goedgekeurd (gezien=1: een telefoon heeft de code opgehaald) |
verlopen | reden=… | te laat, geweigerd, ingetrokken of gebruikt: nieuwe code |
ok | versie=2, omgeving, server, sessie, pc, verloopt, profielregels, token=, handtekening= (laatste) | het ondertekende profiel |
Profielregels (ondertekend, Nederlandse sleutels op de lijn): soort=zakelijk|prive, naam, weergavenaam, kleur, taal, item= (bestanden), recent=, instellingssleutels (hieronder), beheer= (beheerbeleid, alleen ondertekend), beleid-scherm= (schermbeleid, alleen ondertekend), en na een login met wachtwoord offline-dagen=, offline-token=, account=.
Sleutels voor het terugschrijven van instellingen (euzos_profile::writeback::KEYS): kleur, taal, balk (boven|onder), balk-verbergen, taskbar-hide-maximized (on|off), welkom, schermtoetsenbord (automatisch|altijd|nooit), toetsenbord (indeling), toetsenbord-tik, thema (donker|licht|automatisch), touchpad-natuurlijk, touchpad-tikken, touchpad-rechtsklik, touchpad-snelheid, touchpad-aanwijzer, muis-snelheid, muis-omwisselen, muis-wiel-omkeren, pointer-size, pointer-hide, aanraak-vegen, aanraak-doorrollen, aanraak-lang-drukken, screensaver, screensaver-wachttijd, screensaver-animatie, vergrendelen, recent, browser-zoekmachine, browser-favoriet, browser-engine, browser-site, mail-account. Aan/uit-waarden zijn aan|uit.
Antwoord op het terugschrijven (writeback::parse_response): 200 ok = opgeslagen; 401 = token weg; 400/413 = afgewezen (reden op regel 2); 404 = server te oud; anders opnieuw proberen.
Statusantwoord: ok (met verloopt=) of afgemeld (met reden=).
Regel met het beheerbeleid: beheer=console,sshd,log,profiel (elke deelverzameling; lokaal telt als profiel; leeg of geen = niets).
Ondertekende constanten: EUZOS-profiel-v2\0 (domein van de profielhandtekening), EUZOS-koppelcode-v1\0 (koppelcode).
Zie ook
- docs/PROFILE-PROTOCOL.md
- docs/OFFLINE-LOGIN.md
- docs/WORK-LOGIN.md
- docs/ENVIRONMENTS.md
- docs/DESKTOP-DESIGN.md (1. Login, 5. Console and admin)
- docs/LANGUAGES.md
- FAQ: Installatieprogramma, Bureaublad en apps, Schermbeveiliging, Opslag, Profielserver › Pc-login
EUZOS