Ga naar inhoud

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.

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.

  1. Schakel de optionele functie Shell Launcher in (Enable-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncher), of push deze vanuit je MDM.
  2. Maak een toegewijd standaard (niet-beheerders) lokaal account aan voor de kiosk.
  3. 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.
  4. 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):

  1. 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.

  2. 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
  3. Schakel Mission Control en Spaces wisselen uit. Gebruik com.apple.symbolichotkeys om de Mission Control-sneltoets (toets 32) en de Spaces-wisselsneltoetsen (toetsen 79–81, 118–123) uit te schakelen.

  4. Schakel hot corners uit. Push een com.apple.dock-voorkeurspayload met alle vier de wvous-*-corner-sleutels ingesteld op 0 (uitgeschakeld).

  5. 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.

  6. Schakel app wisselen uit (⌘+Tab). Schakel de Applicatiewisselaar-sneltoets uit via com.apple.symbolichotkeys (toets 27).

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.

  1. Installeer het pakket gnome-kiosk (beschikbaar op recente Fedora- en Debian/Ubuntu-releases). Het biedt een minimale Wayland-compositor die één schermvullende app draait.
  2. Maak een aangepaste sessie die het uitvoerbare bestand van de Jonot-kiosk start als shellcommando, zodat de kiosk-app de sessie is.
  3. Configureer GDM automatisch inloggen voor een toegewijde standaardgebruiker in die kiosksessie.
  4. 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.

LaagBeschermt tegen
Vergrendeling in de appMenubalk/dock (macOS), ⌘+Q, onbedoeld afsluiten, sneltoetsen die in het proces te vangen zijn
Kioskprofiel op OS-niveauForce Quit, Mission Control, Spaces, hot corners, Spotlight, app wisselen op OS-niveau
Fysieke behuizingFysieke 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.