Passkey (accesso senza password)


Un passkey è una coppia di chiavi conservata nel dispositivo (o nel portachiavi di Apple, Google, Microsoft, Bitwarden, 1Password …).
Si sblocca con impronta digitale, volto o PIN del dispositivo. Tulz memorizza solo la parte pubblica – non è un segreto.
Un passkey non si può digitare, non si può farsi dire al telefono e non si può inserire su un sito falso: funziona solo sul
dominio per cui è stato creato.
Configurare: Il mio profilo → Passkey → Configura passkey su questo dispositivo. Assegna un nome (ad es. "iPhone di Luca",
"Tablet officina 2", "YubiKey"), conferma sul dispositivo – fatto. Fino a 10 passkey per utente, ognuno si può rinominare ed eliminare.
Accedere: nella pagina di accesso tocca Accedi con passkey. In Chrome, Edge e Safari il passkey compare anche direttamente come
suggerimento nel campo "Nome utente". Se nel campo è inserito un nome utente, vengono proposte anche le chiavi di sicurezza senza memoria propria.
Dopo un accesso con passkey il dispositivo resta connesso automaticamente (dalla 2.26.1, come "Resta connesso" – la durata si imposta in
Impostazioni → Accesso), anche senza la spunta. Chi usa i passkey su un tablet condiviso disattiva questa opzione lì ("Resta connesso
dopo l'accesso con passkey"); allora decide di nuovo la spunta. Se un passkey è stato configurato con impronta, volto o PIN,
Tulz richiede questa conferma a ogni accesso – il semplice possesso di un dispositivo sbloccato non basta.
Requisiti: HTTPS (con Plesk tramite Let's Encrypt in due clic), l'estensione PHP openssl, un browser aggiornato.
Sono supportati gli algoritmi ES256, RS256 ed Ed25519 – quindi tutto, da Face ID a Windows Hello fino a YubiKey.
Dominio: i passkey sono legati al dominio (Impostazioni → Accesso → Dominio passkey). Se lasciato vuoto, Tulz prende il dominio
dall'indirizzo dell'applicazione e toglie un eventuale www. iniziale – per https://tulz.work o https://www.tulz.work il
dominio passkey è quindi tulz.work, e lo stesso passkey funziona con entrambi gli indirizzi e con ogni sottodominio
(app.tulz.work). Se Tulz deve valere solo per un determinato sottodominio, inseriscilo qui. Dopo un vero cambio di dominio
i passkey vanno configurati di nuovo – la password continua a funzionare.
Dispositivo perso? Senza il dispositivo sbloccato il passkey non vale nulla. Comunque: *Utenti → modifica → Rimuovi passkey e
dispositivi* elimina tutti i passkey del dipendente e disconnette tutti i dispositivi. Ognuno può anche eliminare i propri passkey nel profilo.
App: nell'app Android (WebView) e nel programma desktop (Electron) i passkey sono disponibili solo se la piattaforma di sistema
li inoltra. Nel normale browser e nell'app nella schermata Home (PWA) funzionano sempre.
Messaggio di errore di un gestore di password? I componenti aggiuntivi dei gestori di password (Bitwarden, Proton Pass, 1Password …) gestiscono
le richieste di passkey nel browser. Se il componente fallisce – noto ad es. per Bitwarden in Firefox per Android – Tulz mostra un avviso
con il messaggio tecnico del componente in piccolo sotto. Rimedio: disattiva nel componente il salvataggio dei passkey oppure mettilo in pausa
per questo sito; se ne occupano allora il browser o il sistema operativo. La password funziona comunque.
Resta connesso
La spunta nella pagina di accesso salva un cookie aggiuntivo: il dispositivo resta connesso per 30 giorni (impostazione predefinita) e non
viene più disconnesso per inattività. Pensato per il proprio telefono e il proprio computer d'ufficio – non per il tablet che tutti
condividono in officina.
- Nel database c'è solo l'hash del segreto; il cookie stesso è
HttpOnly,SameSite=Laxe con HTTPSSecure. - Se viene presentato un cookie vecchio o falsificato, vengono eliminati tutti i dispositivi memorizzati di questo account (nota nel registro).
- Il mio profilo → Resta connesso elenca i dispositivi connessi (browser, sistema, ultimo utilizzo) – disconnettibili singolarmente o tutti insieme.
- Cambio password, disattivazione di un account e "Password dimenticata" disconnettono automaticamente tutti gli altri dispositivi.
- Disattivare o cambiare la durata: Impostazioni → Accesso. Il cron job rimuove le voci scadute.