====== Istruzioni per l'attivazione del secondo fattore di autenticazione ======
**AVVISO IMPORTANTE** \\
E' possibile che queste istruzioni vengano modificate per introdurre miglioramenti e precisazioni. Le principali differenze con le versioni precedenti verranno opportunamente evidenziate. Consigliamo di controllarle periodicamente.
**ATTENZIONE** \\
Una volta attivato il secondo fattore, ogni autenticazione effettuata via IdP INFN-AAI, richiederà due fattori. Potete scegliere il primo nel solito modo (username/password; X.509; Kerberos-GSSAPI; SPiD; CIE) ed il secondo sarà sempre il codice TOTP (Time-based One Time Password) generato dall'applicazione che avete scelto e nella quale memorizzato il token in fase di attivazione del secondo fattore.
**ATTENZIONE** \\
Dopo 10 tentativi di autenticazione con OTP falliti, il sistema impedisce l'accesso. È necessario richiedere un reset del contatore di tentativi falliti inviando un mail ad aai-support@infn.it. \\
Anche l'eliminazione di un token va richiesta via mail al supporto.
===== Prerequisiti =====
- Ruolo attivo
- Applicazione per la generazione di una Time-based One Time Password (TOTP)
==== Ruolo attivo ====
Solo dipendenti, associati ed ospiti possono richiedere il secondo fattore.
==== Applicazione ====
È indispensabile, **prima di iniziare** il processo di acquisizione del token, aver **installato** ed opportunamente **configurato** una applicazione che sia compatibile con la nostra infrastruttura e che sia **in esecuzione su un device che segni l'orario corretto** cioè sincronizzato con le sorgenti di tempo ufficiale. Se il device è fuori tempo anche solo per mezzo minuto, la TOTP generata potrebbe essere già scaduta o non ancora valida. La maggior parte dei device è configurata per sincronizzarsi in automatico con sorgenti ufficiali via rete, ma potreste trovarvi in una rete che taglia il protocollo NTP facendo così andare alla deriva l'orologio del device.
Le sole applicazioni compatibili sono:
* **privacyIDEA Authenticator**: disponibile solo per mobile (iOS ed Android).
* **[[https://ente.io/auth/|Ente Auth]]**: multi piattaforma. È consigliata anche del CERN, cosa che può rendere la vita meno difficile, almeno per gli utenti CERN
* **[[https://bitwarden.com|Bitwarden]]**: disponibile sia per mobile, che per desktop **solo se collegata ad un account di tipo "self-hosted" definito su https://vault.infn.it/ **
**ATTENZIONE:** Google Authenticator **NON** è supportata. Microsoft Authenticator **NON** deve essere usata (entrambe salvano la chiave in chiaro nelle loro cloud)
**ATTENZIONE:** Bitwarden collegata al "vault" INFN è consentita **solo se usata per uno solo dei fattori di autenticazione**. In altri termini, è **VIETATA** come generatore di TOTP se lì dentro memorizzate le vostre credenziali INFN-AAI.
Istruzioni dettagliate su come installare e configurare queste tre applicazioni sono disponibili [[cn:ccr:aai:doc:2fa:app|in questa pagina wiki]]
----
===== Abilitazione del secondo fattore =====
Il processo di abilitazione del secondo fattore è composto da due azioni apparentemente disgiunte, ma intimamente connesse:
- Generazione di un **token** (operazione che viene effettuata dal server MFA);
- Memorizzazione del **token** nell'applicativo.
Prima di procedere alla generazione del token verificate in quale modo la vostra app ne permette la memorizzazione, se tramite lettura del QR-code (note relative: [[cn:ccr:aai:doc:2fa:req#importare_il_qr| Importare il QR Code]] o tramite importazione da stringa (note relative: [[cn:ccr:aai:doc:2fa:req#configurazione_manualeimportare_otp_key|Configurazione manuale: Importare OTP Key]]).
**Nota Bene**\\
Siccome nella prima settimana di abilitazione facoltativa del secondo fattore abbiamo notato un significativo numero di memorizzazioni di token non andate a buon fine, abbiamo modificato il processo ed inserito uno step di verifica dell'acquisizione del token e del suo relativo utilizzo, in modo da abilitare il secondo fattore solo a verifica superata.
==== Generazione del token ====
Per avviare la generazione di un token è necessario accedere, usando le proprie credenziali INFN-AAI, al servizio web:
https://mfa.app.infn.it/
Dopo aver inserito le proprie credenziali nella classica finestra di Login INFN
{{ :cn:ccr:aai:doc:2fa:loginaai.png?200 | Login AAI}}
Verrà chiesta la conferma di accesso
{{ :cn:ccr:aai:doc:2fa:login.png?200 |Login}}
Al primo accesso, l'unica azione disponibile è la richiesta di un token.
Nella finestra selezionate: **Enroll Token** (**Registra token**)
{{ :cn:ccr:aai:doc:2fa:enrolltoken01.png?400 |Enroll Token}}
Succesivamente specificare i seguenti valori:
Enroll a new token
- TOTP: Time based One Time Password
Token data
- OTP length: 6
- Timestep: 30
e premere il pulsante **Enroll Token** (**Registra token**) \\
{{ :cn:ccr:aai:doc:2fa:enrolltoken02.png?400 |Enroll Token}}
La videata successiva vi mostrerà il QR-code da importare nella vostra app.
{{ :cn:ccr:aai:doc:2fa:verify_token.png?400 |Enroll Token}}
Clickando sul link "The OTP Key" (La chiave OTP) è possibile visualizzare il "secret" o "seed" codificato in un paio di modi, per la configurazione manuale in applicazioni che non sono in grado di utilzzare il QR-code.
{{ :cn:ccr:aai:doc:2fa:view_otp_key.png?400 |View OTP key}}
**ATTENZIONE:** il secret/seed è solo **UNO** dei dati presenti nel QR-code e non è sufficiente, da solo, per la configurazione manuale. In ogni caso, se l'applicazione che utilizzerete per generare la TOTP non è in grado di importare i dati dal QR code, salvate **SUBITO** la chiave codificata in Base32
Se avete scelto una applicazione che è in grado di "leggere" un QR-code, potete importare le informazioni in esso contenute semplicemente inquadrandolo (in ogni caso, [[cn:ccr:aai:doc:2fa:req#importare_il_qr|qui di seguito, ]]alcune istruzioni per alcune applicazioni)
==== Verifica dell'enrollment ====
In questa finestra è possibile individuare un pulsante **"Verify Token"** sotto ad un campo **"Please enter a valid OTP value of the new token"** che serve per verificare che il token sia stato correttamente registrato nella vostra app e che essa produca un TOTP valido.
Il processo di acquisizione del token infatti terminerà solo se la verifica introdotta in quest'ultimo passaggio andrà a buon fine.
Il timeout della sessione su questa pagina web è di 15 minuti. È essenziale che salviate le informazioni presenti in questa pagina prima della scadenza del timeout.
Se il TOTP prodotto dalla vostra applicazione non dovesse essere corretto (o se sbagliate a trascriverlo) otterrete un pop-up di errore come mostrato in figura e potrete correggere il valore di TOTP o cambiare la vostra app con una supportata.
{{ :cn:ccr:aai:doc:2fa:verify_token_ko.png?400 |Verify Token KO}}
Se non riuscite ad inserire il TOTP corretto in questa pagina **ma avete salvato le informazioni** potete ripartire con un login su https://mfa.app.infn.it/ e completare la verifica del token, clickando sul seriale del token da verificare
{{ :cn:ccr:aai:doc:2fa:my_tokens.png?400 |My Tokens}}
ed inserendo il corretto valore di una TOTP nel campo sopra al pulsante blu "Verify Token"
{{ :cn:ccr:aai:doc:2fa:verify_enroll.png?400 |Verify Enrollment}}
completerete il processo di acquisizione di token
{{ :cn:ccr:aai:doc:2fa:verify_enroll_ok.png?400 |Verify Enrollment OK}}
e riceverete l'e-mail di conferma
===== Importare il QR =====
Il modo più semplice per registrare il token nella propria app è usare una app su smartphone (o tablet) che sia quindi in grado di usare la telecamera per poter importare i dati presenti nel QR-code
==== PrivacyIdea ====
Per importare il QR nell'app di PrivacyIdea è sufficiente clickare sull'icona al centro ed inquadrare il QR Code
{{ :cn:ccr:aai:doc:2fa:privacyideaapp.png?200 |PrivacyIdeaApp}}
[[cn:ccr:aai:doc:2fa:req#verifica_dell_enrollment| ritorna alla verifica dell'enrollment]]
==== Ente Auth ====
L'app per smartphone Ente Auth presenta una pagina iniziale con un bel bottone "Scan a QR Code".
{{ :cn:ccr:aai:doc:2fa:enteauthapp1.png?200 |}}
Tale bottone fornisce un accesso diretto alla telecamera e, appena inquadrato il QR-code, produce un TOTP
{{ :cn:ccr:aai:doc:2fa:enteauthapp2.png?200 |}}
Se avete configurato un account su ente.io tutte le istanze di Ente Auth collegate a tale account, genereranno lo stesso TOTP.
[[cn:ccr:aai:doc:2fa:req#verifica_dell_enrollment| ritorna alla verifica dell'enrollment]]
==== Bitwarden (app su mobile, con accesso alla telecamera) ====
Selezionare: Set up TOTP
{{ :cn:ccr:aai:doc:2fa:bitwaredapp1.png?200 | App Bitwarden}}
Permettere all'app di usare la fotocamera
{{ :cn:ccr:aai:doc:2fa:bitwaredapp2.png?200 | App Bitwarden - Utilizzo fotocamera}}
Assegnare un nome al token e salvare
{{ :cn:ccr:aai:doc:2fa:bitwaredapp3.png?200 | App Bitwarden - Salvataggio token}}
Successivamente il token salvato sarà visualizzato un questo modo:
{{ :cn:ccr:aai:doc:2fa:bitwaredapp4.png?200 | App Bitwarden - Visualizzazione Token}}
[[cn:ccr:aai:doc:2fa:req#verifica_dell_enrollment| ritorna alla verifica dell'enrollment]]
----
===== Configurazione manuale: Importare OTP Key =====
Il QR-code contiene una serie di informazioni tutte necessarie alla corretta configurazione del generatore di TOTP. Se volete utilizzare un generatore di TOTP che non supporta la lettura di QR-code (come ad esempio le app per PC supportate o l'interfaccia web al "vault" INFN) dovete formattare opportunamente la stringa per la sua configurazione.
La stringa dovrà essere formata dalla concatenazione di:
* %%otpauth://totp/?secret=%%
*
* &algorithm=sha256&period=30&digits=6&issuer=INFN-AAI
La stringa così formata dovrà assomigliare quindi a:
otpauth://totp/?secret=2UCHU2WHNR3S52W7Z6DRQ5XCGWQZ5XAFB6C3JD5F6DSJZ53TL5FA&algorithm=sha256&period=30&digits=6&issuer=INFN-AAI
Ovviamente, se nella generazione del token avete selezionato il periodo di 60 secondi o il numero di cifre dell'OTP pari a 8, dovete modificare coerentemente l'ultima parte della stringa
* &period=60
* &digit=8
Di seguito il dettaglio della configurazione manuale per le due app supportate
==== Ente Auth ====
Ente Auth può importare una chiave da un file in formato testo.
Dovete quindi creare un file di tipo testo ed inserire in una riga la stringa ottenuta dalla concatenazione delle informazioni di cui sopra.
Dopo aver creato e salvato il file
- aprite l'applicazione
- premente sulle tre righe in alto a sx (apri il menu di navigazione)
- aprite la freccia verso il basso accanto alla voce "Dati"
- selezionate: "Importa codici"
- scegliete: "Testo in chiaro"
- premete: Seleziona file"
- selezionate il file creato in precedenza.
Se l'operazione è andata a buon fine comparirà una fnestra con scritto:
Evviva
Hai importato 1 codici
[[cn:ccr:aai:doc:2fa:req#verifica_dell_enrollment| ritorna alla verifica dell'enrollment]]
==== vault INFN via web o Bitwarden (app su desktop)====
Aprire Bitwarden installato del proprio browser e premere: + (Aggiungi elemento)
{{ :cn:ccr:aai:doc:2fa:bitwaredweb1.png?200 |Bitwarden Web}}
Assegnare un nome al nuovo elemento (per esempio OTP INFN) ed inserire campo: Chiave di autenticazione (TOTP)
infine premere: Salva
Ovviamente se nel passaggio descritto nella sezione "Token data" si sceglie un tempo di vita di 60 secondi, bisogna usare "period=60" nella stringa di cui sopra.
NOTA BENE: bitwarden NON supporta lunghezze del TOTP maggiori di 6
{{ :cn:ccr:aai:doc:2fa:bitwaredweb2.png?200 |Bitwarden Web}}
Successivamente per utilizzare, direttamente in una pagina web il secondo fattore di autenticazione, sarà sufficiente cercare il nome dell'elemento creato in precedenza, una volta trovato, premendo sul pulsante a forma di orologio, sarà possibile copiare il codice del secondo fattore per inserirlo dove richiesto.
{{ :cn:ccr:aai:doc:2fa:bitwaredweb2.png?200 |Bitwarden Web}}
[[cn:ccr:aai:doc:2fa:req#verifica_dell_enrollment| ritorna alla verifica dell'enrollment]]
===== Sicurezza =====
MAI E POI MAI effettuare screen-shot del QR-code in quanto contiene il “seme” con il quale si genera la OPT (il token collegato al QR-code che vedete in queste slides è stato cancellato dal sistema) \\
NON usare le app che registrano il “seme” in chiaro nella loro cloud \\
- Google Authenticator
- Microsoft Authenticator
Proteggere il proprio smartphone con PIN o con accesso biometrico \\
Al momento del rilascio di un nuovo token il sistema avvisa il proprietario dell’account INFN-AAI inviando mail a tutti gli indirizzi e-mail registrati.\\
Se ricevete un mail e non siete stati voi a richiedere il token, qualcuno sta usando le vostre credenziali INFN-AAI