De desktop-kiosk vergrendelen
De desktop-kiosk-app handelt af wat het kan vanuit zijn eigen proces. Leg voor onbeheerde openbare kiosken een profiel op OS-niveau onder de app, zodat het besturingssysteem zelf de ontsnappingsroutes blokkeert die de app fundamenteel niet kan sluiten.
Wat de app zelf afhandelt
Section titled “Wat de app zelf afhandelt”Wanneer gestart als de kiosk-client, doet de desktop-app het volgende:
- Opent zonder rand en schermvullend, en bedekt de volledige schermgeometrie inclusief de menubalkstrook.
- Op macOS verbergt het de menubalk en het dock via native
NSApplicationPresentationOptions(.hideMenuBar | .hideDock) en herbevestigt deze telkens wanneer de app weer focus krijgt. - Blokkeert ⌘+Q (en de “Quit” in het app-menu) op macOS via de AWT QuitHandler.
- Probeert andere veelvoorkomende sneltoetsen te onderdrukken — Alt+F4, ⌘+W, Alt+Tab, ⌘+Tab, de Windows-/Super-toets, F11 en Escape — voor die toetsen die het besturingssysteem aan de app doorgeeft voordat het er zelf op reageert.
- Beveiligt het afsluiten achter een beheerpincode. Het beheermenu opent met vijf snelle tikken in de rechterbovenhoek (voor touchscreens) of vijf keer F12 drukken (voor fysieke toetsenborden), en de pincode-invoer heeft een brute-force-blokkade. Een toezichthoudende operator stelt de pincode in bij de eerste start. Zie Kioskvergrendeling verlaten en de pincode herstellen voor de volledige operatorflow, inclusief het herstellen van de pincode.
De balie-app is niet vergrendeld — het is een hulpmiddel voor personeel en behoudt normale vensterbediening.
Windows — Assigned Access / Shell Launcher
Section titled “Windows — Assigned Access / Shell Launcher”Windows biedt twee kioskmechanismen. De desktop-kiosk is een klassieke Win32-desktopapplicatie, dus Shell Launcher is de juiste keuze — Assigned Access (single-app-kiosk) accepteert alleen UWP-/MSIX-apps of Microsoft Edge.
Shell Launcher v2
vervangt de standaard Windows-shell (explorer.exe) door het uitvoerbare
bestand van de Jonot-kiosk voor een aangewezen account. Zonder
Verkenner-shell is er geen bureaublad, Startmenu of taakbalk; als de app
afsluit, herstart Shell Launcher deze. Vereist Windows 10/11 Enterprise,
Education of IoT Enterprise.
- Schakel de optionele functie Shell Launcher in
(
Enable-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncher), of push deze vanuit je MDM. - Maak een toegewijd standaard (niet-beheerders) lokaal account aan voor de kiosk.
- Configureer Shell Launcher om de aangepaste shell van dat account in te stellen op de Jonot-kioskstarter, met de herstart-bij-afsluiten-actie — via de Shell Launcher CSP vanuit je MDM, of lokaal met het WMI-brug-PowerShell-voorbeeld gedocumenteerd in de Shell Launcher-gids.
- Stel het kioskaccount in op automatisch inloggen en schakel het vergrendelingsscherm, slaapstand en snel gebruikers wisselen uit.
Voor een snelle, begeleide instelling zonder Enterprise-licentie kan de
Assigned Access “kiosk browser”
direct wijzen naar https://kiosk.jonot.io — maar dit draait de SPA in Edge
zonder de native brug (geen lokaal afdrukken, geen offline-host-failover),
dus het is een terugvaloptie, geen vervanging voor de native app.
macOS — draaiboek voor ontsnappingspreventie op OS-niveau
Section titled “macOS — draaiboek voor ontsnappingspreventie op OS-niveau”De app verbergt de menubalk en het dock en blokkeert ⌘+Q aan de app-kant. Het profiel op OS-niveau dekt de routes die de app niet kan sluiten: Force Quit, Mission Control, Spaces wisselen, hot corners, Spotlight en app wisselen.
Gebruik een toegewijd beheerd of beperkt account met automatisch inloggen. Rol uit vanuit een MDM (Jamf Pro, Kandji, Mosyle, of Intune):
-
Toegewijd standaardaccount + automatisch inloggen. Maak een niet-beheerders lokaal account aan dat alleen voor de kiosk wordt gebruikt. Schakel automatisch inloggen in voor dat account en schakel systeemslaapstand uit met een energieprofiel. Een Managed Login Items-payload zorgt ervoor dat de kiosk-app start bij het begin van de sessie.
-
Schakel Force Quit uit (⌘+⌥+Esc). Force Quit is de belangrijkste ontsnappingsroute die de app niet kan blokkeren. Schakel dit uit met een aangepaste managed-preferences-payload voor
com.apple.loginwindow:DisableForceQuitCombinedKey = true -
Schakel Mission Control en Spaces wisselen uit. Gebruik
com.apple.symbolichotkeysom de Mission Control-sneltoets (toets 32) en de Spaces-wisselsneltoetsen (toetsen 79–81, 118–123) uit te schakelen. -
Schakel hot corners uit. Push een
com.apple.dock-voorkeurspayload met alle vier dewvous-*-corner-sleutels ingesteld op0(uitgeschakeld). -
Schakel Spotlight uit. Schakel de Spotlight-sneltoets uit via
com.apple.symbolichotkeys(toets 64 voor Spotlight-zoeken). Let op: de Spotlight-sleutel van de standaard Restrictions-payload onderdrukt alleen internet-resultaten, niet Spotlight zelf — gebruik in plaats daarvan de symbolichotkeys-aanpak. -
Schakel app wisselen uit (⌘+Tab). Schakel de Applicatiewisselaar-sneltoets uit via
com.apple.symbolichotkeys(toets 27).
Linux — GNOME-kiosksessie
Section titled “Linux — GNOME-kiosksessie”Op Linux is de schoonste vergrendeling een toegewijde GNOME Kiosk-sessie die de Jonot-kiosk-app als enige venster van de sessie draait — geen paneel, geen Activiteiten-overzicht en geen applicatiewisselaar.
- Installeer het pakket
gnome-kiosk(beschikbaar op recente Fedora- en Debian/Ubuntu-releases). Het biedt een minimale Wayland-compositor die één schermvullende app draait. - Maak een aangepaste sessie die het uitvoerbare bestand van de Jonot-kiosk start als shellcommando, zodat de kiosk-app de sessie is.
- Configureer GDM automatisch inloggen voor een toegewijde standaardgebruiker in die kiosksessie.
- Verhard het omringende systeem: schakel VT-wisselen en Ctrl+Alt+Backspace
uit, blokkeer TTY-toegang in
logind, en schakel automatisch scherm-dimmen en energiebeheer uit.
Omdat de GNOME Kiosk-compositor nooit een wisselaar of overzicht toont, is er geen route binnen de sessie naar een andere applicatie — het OS dwingt af wat de onderdrukking van sneltoetsen door de app in zijn eigen proces alleen kan proberen.
Aanbevolen gelaagdheid
Section titled “Aanbevolen gelaagdheid”| Laag | Beschermt tegen |
|---|---|
| Vergrendeling in de app | Menubalk/dock (macOS), ⌘+Q, onbedoeld afsluiten, sneltoetsen die in het proces te vangen zijn |
| Kioskprofiel op OS-niveau | Force Quit, Mission Control, Spaces, hot corners, Spotlight, app wisselen op OS-niveau |
| Fysieke behuizing | Fysieke toegang — USB-poorten, aan-uitknop, het toetsenbord |
Draai voor onbeheerde openbare plaatsingen altijd de vergrendeling in de app en een profiel op OS-niveau samen. Een fysieke behuizing is de derde laag voor volledig manipulatiebestendige uitrollen.