Otter Guardian è una Web Application Boilerplate realizzata in React e PHP che offre diverse funzionalità come la gestione di autenticazioni, autorizzazioni, profilazioni e notifiche. Nel repository del backend puoi trovare la documentazione per invocare i servizi e la struttura del database. Nel repository Otter Guardian Authenticator puoi trovare la seconda applicazione React necessaria per eseguire l'autenticazione a due fattori.
Di seguito è presente la documentazione della sola componente di frontend.
$ npm install
$ npm start
Per accedere all'applicativo esistono diversi metodi di autenticazione che impiegano anche l'utilizzo di un secondo dispositivo fisico (vedi documentazione):
L'utente tramite la Web Application Authenticator precedentemente configurata scansionerà il codice generato a schermo e autorizzerà l'accesso. Verrà in automatico eseguito il redirect alla homepage con l'utente loggato.
In alternativa è possibile inserire il proprio indirizzo email e scegliere una delle seguenti modalità:
Dalla pagina delle impostazioni utente è possibile generare dei codici di backup monouso che possono essere utilizzati se non si ha a portata di mano il secondo dispositivo o la casella di posta.
Dopo aver inserito correttamente la password, accedendo all'authenticator verrà mostrato un codice di verifica di 6 cifre da inserire per proseguire
Dopo aver inserito correttamente la password, verrà inviata un'email con il codice di verifica di 6 cifre da inserire per proseguire
Dopo aver inserito correttamente la password, dovrai aprire l'authenticator e autorizzare l'accesso
Dovrai aprire l'authenticator e inserire il codice che verrà mostrato.
Dovrai aprire l'authenticator e autorizzare l'accesso
Ogni autenticazione andata a buon fine invaliderà tutte le sessioni precedentemente create.
Per recuperare la password bisogna inserire il proprio indirizzo email e scegliere una delle seguenti modalità:
Dovrai aprire l'authenticator e inserire il codice che verrà mostrato insieme alla nuova password.
Dovrai inserire la nuova password insieme al codice che ti verrà inviato via email
Dalla pagina delle impostazioni è possibile eseguire le seguenti operazioni:
- Abilitare o disabilitare specifici metodi di autenticazione
- Abilitare o disabilitare specifici metodi di recupero password
- Generare i codici di backup
- Aggiungere un nuovo dispositivo fisico
- Visualizzare lo storico dei dispositivi associati
- Visualizzare lo storico degli accessi effettuati
Dalla lista utenti è possibile aggiungere un nuovo utente, modificarlo, bloccarlo temporaneamente oppure eliminarlo
Per creare un nuovo utente è necessario inserire nome, cognome, email e password.
Dalla lista ruoli è possibile inserire un nuovo ruolo, modificarne uno esistente oppure eliminarlo. I ruoli AMM e USER sono ruoli di default presenti nel sistema.
Per aggiungere un ruolo è necessario inserire un codice identificativo e una descrizione
Le risorse sono i singoli metodi (servizi REST) invocati (vedi la questione del nomeMetodo nella documentazione del backend). Dalla lista risorse è possibile creare una nuova risorsa, modificare oppure eliminare una risorsa esistente.
Per aggiungere una nuova risorsa (oltre alla scrittura del codice sorgente sul backend) è necessario scegliere un identificativo, indicare il nome del metodo scelto e una descrizione.
Dalla pagina di modifica ruolo è possibile:
- Abilitare o disabilitare gli utenti al ruolo
- Abilitare o disabilitare le risorse al ruolo
- Abilitare o disabilitare le voci di menu al ruolo
Dalla lista delle voci di menu è possibile inserire una nuova voce oppure modificare o eliminare una voce esistente.
Per inserire una nuova voce di menu bisogna specificare l'eventuale voce padre, scegliere una descrizione, un path, un'icona (vedi documentazione Font Awesome) e un numero d'ordine.
Dalla pagina di gestione notifiche è possibile inserire una nuova notifica, gestire gli invii, modificarla oppure eliminarla.
Per inserire una notifica è necessario scegliere il titolo e il testo.
Dalla pagina di dettaglio della notifica è possibile modificare il titolo e il testo, decidere la modalità di invio (tutti, dato un ruolo specifico oppure singolo utente), vedere lo stato della notifica e se è stata letta.
Dalla lista dei dispositivi fisici è possibile vedere tutti i dispositivi fisici abilitati agli utenti ed è possibile eliminare quelli non più utilizzati.
Dalla pagina di gestione degli indirizzi ip è possibile bloccare determinati indirizzi e visualizzare il numero di alert sospetti (password inserite errate, tentativi di accessi non autorizzati etc...) ed eventualmente azzerarli.
Dalla gestione accessi è possibile vedere gli utenti attualmente connessi, lo storico e troncare eventuali sessioni in corso.
Esiste una gestione dei logs suddivisa per livello di criticità che mostra alcune informazioni utili alla diagnostica. Abilitando la modalità tail la tavola si aggiornerà automaticamente con i nuovi record.
Il codice da me scritto viene rilasciato con licenza MIT. Framework, temi e librerie di terze parti mantengono le loro relative licenze.