22.1. Panoramica del sistema di autenticazione

../../../_images/auth-system-overview.png

Fig. 22.1 Anatomia del sistema di autenticazione

22.1.1. Database di autenticazione

Il nuovo sistema di autenticazione memorizza le configurazioni di autenticazione in un file database SQLite memorizzato, in modo predefinito, nel <profile directory>/qgis-auth.db.

Questo database di autenticazione può essere spostato fra le installazioni di QGIS senza che vengano coinvolte altre preferenze utente di QGIS correnti, dato che è completamente separato dalle normali impostazioni utente di QGIS. Un ID di configurazione (una stringa casuale alfanumerica di 7 caratteri) viene generata quando viene scritta la configurazione iniziale nel database. Ciò rappresenta la configurazione, permettendo così che l’ID venga memorizzato in componenti dell’applicazione come testo normale, (come progetto, plugin o files di impostazioni) senza divulgazione delle relative credenziali associate.

Nota

La cartella genitore di qgis-auth.db può essere impostata usando la seguente variabile d’ambiente, QGIS_AUTH_DB_DIR_PATH, oppure impostata sulla linea di comando durante il lancio con l’opzione -authdbdirectory.

22.1.2. Password master

Per memorizzare o accedere ad informazioni sensibili all’interno del database, un utente deve definire una master password. Una nuova master password viene richiesta e verificata quando si memorizzano inizialmente tutti i dati crittografati nel database. Quando si accede ad informazioni sensibili, viene richiesta all’utente la master password. La password viene quindi memorizzata nella cache per il resto della sessione (fino a quando l’applicazione viene chiusa), a meno che l’utente scelga manualmente un’azione per cancellare il suo valore memorizzato nella cache. Alcune istanze di utilizzo del sistema di autenticazione non richiedono l’immissione della master password, ad esempio quando si seleziona una configurazione di autenticazione esistente o si applica una configurazione ad una configurazione del server (ad esempio quando si aggiunge un livello WMS).

Puoi scegliere di salvare la password nel Wallet/Keyring del tuo computer.

../../../_images/auth-password-new_enter.png

Fig. 22.2 Inserisci la nuova master password

Nota

Un percorso di un file contenente la master password può essere impostato utilizzando la seguente variabile d’ambiente, QGIS_AUTH_PASSWORD_FILE.

22.1.2.1. Gestione della master password

Una volta impostata, la master password può essere reimpostata; la master password attuale sarà necessaria prima di reimpostarla. Durante questo processo, c’è un’opzione per generare un backup completo del database attuale.

../../../_images/auth-password-reset.png

Fig. 22.3 Ripristino della master password

Se l’utente dimentica la master password, non c’è modo di recuperarla o sovrascriverla. Non vi è inoltre alcun mezzo per recuperare informazioni criptate senza conoscere la master password.

Se un utente inserisce la password esistente in modo errato tre volte, la finestra di dialogo offrirà la possibilità di cancellare il database.

../../../_images/auth-password-invalid-3times.png

Fig. 22.4 Richiesta di password dopo tre tentativi non validi

22.1.3. Configurazioni di Autenticazione

Puoi gestire le configurazioni di autenticazione da Configurazioni nella scheda Autenticazione della finestra di dialogo Opzioni QGIS (Impostazioni ► Opzioni).

../../../_images/auth-editor-configs2.png

Fig. 22.5 Editor delle configurazioni

Usa il pulsante symbologyAdd per aggiungere una nuova configurazione, il pulsante symbologyRemove per rimuovere le configurazioni e il pulsante symbologyEdit per modificare quelle esistenti.

../../../_images/auth-config-create_authcfg-id.png

Fig. 22.6 Aggiunta di configurazione dall’interno dell’editor di Configurazione

Lo stesso tipo di operazioni per la gestione della configurazione dell’autenticazione (Aggiungi, Modifica e Rimuovi) può essere fatto durante la configurazione di una connessione di servizio, come ad esempio la configurazione di una connessione di un servizio OWS. Per far ciò, ci sono pulsanti di azione all’interno del selettore di configurazione per la gestione completa delle configurazioni presenti nel database di autenticazione. In questo caso, non c’è bisogno di andare alla scheda Configurazioni in Autenticazione delle opzioni QGIS a meno che non sia necessario eseguire una gestione della configurazione più completa.

../../../_images/auth-selector-wms-connection.png

Fig. 22.7 Finestra di dialogo di connessione WMS che mostra i pulsanti Aggiungi, Modifica, e Rimuovi di configurazione dell’autenticazione

Quando si crea o si modifica una configurazione di autenticazione, le informazioni richieste sono un nome, un metodo di autenticazione e qualsiasi altra informazione richiesta dal metodo di autenticazione (vedi maggiori informazioni sui tipi di autenticazione disponibili in Metodi di Autenticazione).

22.1.4. Metodi di Autenticazione

Le autenticazioni disponibili sono fornite dai plugin C++ nello stesso modo in cui i plugin dei fornitori di dati sono supportati da QGIS. Il metodo di autenticazione che può essere selezionato è relativo all’accesso necessario per la risorsa/provider, ad es. HTTP(S) o database, e qualora ci sia supporto sia nel codice QGIS che in un plugin. Come tale, alcuni plugin dei metodi di autenticazione potrebbero non essere applicabili ovunque venga mostrato un selettore di configurazione dell’autenticazione. Si può accedere a un elenco dei plugin disponibili per il metodo di autenticazione e delle risorse/provider compatibili andando a Impostazioni ► Opzioni e, nella scheda Autenticazione, fai clic sul pulsante options Plugins Installati.

../../../_images/auth-method-listing.png

Fig. 22.8 Elenco dei plugin dei metodi disponibili

I plugin possono essere creati per nuovi metodi di autenticazione che non richiedono la ricompilazione di QGIS. Dal momento che il supporto per i plugin è attualmente solo C++, QGIS dovrà essere riavviato per rendere il nuovo plugin disponibile all’utente. Assicurati che il plugin sia compilato con la stessa versione di QGIS se intendi aggiungerlo ad una installazione di destinazione esistente.

../../../_images/auth-config-create_basic-auth.png

Fig. 22.9 Configurazione di autenticazione HTTP di base

../../../_images/auth-config-create_esritoken.png

Fig. 22.10 Configurazioni di autenticazione token ESRI

../../../_images/auth-config-create_oauth2.png

Fig. 22.11 Configurazioni di autenticazione Oauth2

../../../_images/auth-config-create_pem-der-paths.png

Fig. 22.12 Percorso delle configurazioni di autenticazione PKI

../../../_images/auth-config-create_pkcs12-paths.png

Fig. 22.13 Configurazioni dei percorsi del file PKI PKCS#12 di autenticazione

../../../_images/auth-config-create_stored-identity2.png

Fig. 22.14 Configurazione della autenticazione di identità memorizzata

Nota

La Resource URL è attualmente una funzione non implementata che permetterà ad una particolare configurazione di poter essere scelta automaticamente quando ci si connette alle risorse ad un dato URL.

22.1.5. Master Password ed Utilità di Auth Config

Sotto il menu Opzioni (Impostazioni ► Opzioni) nella scheda Autenticazione, ci sono diverse funzionalità utili per gestire il database di autenticazione e le configurazioni:

../../../_images/auth-editor-configs_utilities-menu.png

Fig. 22.15 Menu utilità

  • Inserisci la password principale: apre la finestra di dialogo per l’immissione della password principale, indipendentemente dall’esecuzione di qualsiasi comando di autenticazione del database

  • Cancella la password principale salvata in cache: rimuove la password principale se è stata impostata

  • Ripristina password principale: apre una finestra di dialogo per cambiare la password principale (la password attuale deve essere conosciuta) e opzionalmente fare il backup del database corrente

  • Cancella la cache di accesso dell’autenticazione di rete: cancella la cache di autenticazione di tutte le connessioni

  • Cancellare automaticamente la cache di accesso dell’autenticazione di rete quandi si verificano errori SSL: la cache di connessione memorizza tutti i dati di autenticazione per le connessioni, anche quando la connessione fallisce. Se cambi le configurazioni di autenticazione o le autorità di certificazione, devi cancellare la cache di autenticazione o riavviare QGIS. Quando questa opzione è selezionata, la cache di autenticazione sarà automaticamente cancellata ogni volta che si verifica un errore SSL e tu scegli di interrompere la connessione

  • Integra la password principale con il tuo Password Manager: aggiunge la password principale al tuo Password Manager personale

  • Memorizza/aggiorna la password principale nel tuo Password Manager: aggiorna la password principale modificata nel tuo Password Manager

  • Cancella la password principale dal tuo Password Manager: cancella la password principale dal tuo Password Manager

  • Abilita il log di debug dell’aiuto per la password: abilita uno strumento di debug che conterrà tutte le informazioni di log dei metodi di autenticazione

  • Cancella le configurazioni di autenticazione salvate in cache: cancella la cache interna di ricerca delle configurazioni, usata per velocizzare le connessioni di rete. Questo non cancella la cache del gestore di accesso alla rete principale di QGIS, che richiede un riavvio di QGIS.

  • Rimuovi tutte le configurazioni di autenticazione: elimina nel database tutti i record di configurazione, senza rimuovere altri record memorizzati.

  • Cancella il database di autenticazione: pianifica un backup del database corrente e la ricostruzione completa della struttura delle tabelle del database. Le azioni sono programmate per un tempo successivo, per assicurare che altre operazioni, come il caricamento del progetto, non interrompano l’operazione o causino errori a causa di un database temporaneamente mancante.

    ../../../_images/auth-db-erase.png

    Fig. 22.16 Menu di cancellazione del DB di autenticazione

22.1.6. Usare le configurazioni di autenticazione

Tipicamente, una configurazione di autenticazione è selezionata in una finestra di dialogo di configurazione per un servizio di rete (come WMS). Tuttavia, il widget di selezione può essere incorporato ovunque sia necessaria l’autenticazione o in funzionalità non-core, come in PyQGIS o plugin C++ di terze parti.

Quando si usa il selettore, Nessuna autenticazione viene visualizzato nel controllo del menu a comparsa quando non viene selezionato nulla, quando non ci sono configurazioni tra cui scegliere o quando una configurazione precedentemente assegnata non può più essere trovata nel database. I campi Tipo e Id sono di sola lettura e forniscono rispettivamente una descrizione del metodo di autenticazione e l’ID della configurazione.

../../../_images/auth-selector-no-authentication.png

Fig. 22.17 Selettore di configurazione dell’autenticazione senza autenticazione

../../../_images/auth-selector-pkcs12-authentication.png

Fig. 22.18 Selettore della configurazione di autenticazione con la configurazione scelta

22.1.7. Collegamenti Python

Tutte le classi e le funzioni pubbliche hanno collegamenti SIP, eccetto QgsAuthCrypto, poiché la gestione dell’hashing della master password e della crittografia del database auth dovrebbe essere gestita dall’applicazione principale, e non tramite Python. Vedi Considerazioni sulla sicurezza riguardo all’accesso di Python.