Nel blog di questa settimana ci concentreremo sul tema cruciale dell’autenticazione. Per illustrare la nostra discussione, utilizzeremo l’esempio di un’applicazione progettata per la stesura delle valutazioni annuali delle prestazioni dei dipendenti. Questa applicazione consente agli utenti di accedere in modo sicuro ai propri account autenticandosi con la propria e-mail e password.
Applicazione per la valutazione delle prestazioni
Panoramica sull’autenticazione
L’autenticazione è un elemento fondamentale di qualsiasi applicazione web, in quanto garantisce che solo gli utenti autorizzati possano accedere a informazioni sensibili o eseguire azioni specifiche. Nel nostro esempio, il processo di login è semplice ma efficace, a dimostrazione di come 4D Qodly Pro gestisca l’autenticazione in modo sicuro ed efficiente.
Il processo di login
Il modulo di login si trova nella pagina “login” e consiste in:
- Due campi di input: collegati all’e-mail e alla password della fonte dei dati.
- Un pulsante “Accedi”: attiva il processo di autenticazione.
In Qodly Studio, nella sezione dedicata ai modelli, sono disponibili altri modelli di modulo precostituiti per la funzionalità di login. Questi modelli possono essere personalizzati per soddisfare i requisiti specifici della vostra applicazione.
Funzione: authentify()
Quando l’utente fa clic sul pulsante “Accedi”, viene richiamata la funzione “ds.authentify()” con l’e-mail e la password come parametri.
Le informazioni dell’utente, come l’e-mail e la password, sono memorizzate nel database all’interno della tabella “Employee”. Nella funzione “authentify()”, viene eseguita una semplice interrogazione del database per verificare le informazioni.
Ecco un codice che illustra questo processo:
exposed Function authentify($email: Text; $password: Text) : Text
$employee :=This.Employee.query("Email = :1"; $email).first()
If ($employee#Null)
If (Verify password hash($password; $employee.Password))
Session.setPrivileges("utente")
Web Form .setMessage("Autenticazione riuscita")
Else
Web Form .setError("Autenticazione fallita")
End if
Else
Web Form .setError("Autenticazione fallita")
End if
Gestione dei privilegi dell’utente
Prima di autenticare un utente, è fondamentale limitare l’accesso ai dati e alle funzioni sensibili. Questa sicurezza è garantita dalla gestione dei privilegi.
Innanzitutto, abbiamo un privilegio denominato “nessuno”, che possiede tutti i diritti sull’origine dati (ds), garantendo un accesso completo al database. In particolare, questo privilegio non viene assegnato a nessun utente, mantenendo così un ambiente sicuro. Quando i diritti vengono concessi a un privilegio, vengono automaticamente revocati a tutti gli altri, rendendo il sistema efficacemente sicuro.
Poi, abbiamo aggiunto un privilegio chiamato “authentify”. Il permesso “promuovere” è assegnato alla funzione “ds.authentify()”. Ciò significa che ogni volta che questa funzione viene chiamata, il privilegio “authentify” viene applicato automaticamente.
Quindi, ci assicuriamo che i permessi richiesti per l’autenticazione siano aggiunti alla classe di dati o alle funzioni in uso. Nel nostro esempio, assegniamo i permessi “Read” e “Execute” alla classe di dati “Employee”.
Infine, si attiva l’opzione“Forza il login“. Questa opzione consente di controllare il numero di sessioni web aperte che richiedono licenze 4D Client. È anche possibile disconnettere l’utente in qualsiasi momento per diminuire il numero di licenze conservate.
Questo sistema di privilegi a più livelli aiuta a prevenire gli accessi non autorizzati e garantisce un funzionamento sicuro dell’applicazione.
Per saperne di più, consultate il nostro blog post: L ‘accesso forzato diventa predefinito per tutte le autorizzazioni REST.
Aggiunta di una funzione di logout
Per migliorare l’esperienza dell’utente e la sicurezza, è importante fornire un’opzione di logout. Nel nostro esempio:
- Un pulsante di logout è posizionato nell’angolo superiore destro della pagina “Principale”.
- L’azione “logout” viene aggiunta a questo pulsante nell’evento “On Click”.
In questo modo gli utenti possono terminare la loro sessione in modo sicuro, cancellando tutti i privilegi attivi e proteggendo i dati sensibili.
Passi successivi
L’autenticazione e la gestione dei privilegi sono fondamentali per costruire applicazioni web sicure. Per approfondire le funzionalità di autenticazione e gestione dei privilegi, consultate le seguenti risorse:
- Documentazione su:
- Blog su:
Vi invitiamo a provare a implementare questi concetti nelle vostre applicazioni. Avete domande o approfondimenti? Partecipate alla discussione nel forum o condividete il vostro feedback nei commenti qui sotto. Restate sintonizzati per il prossimo articolo della nostra serie!