20.1. Panoramica del sistema di autenticazione

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

Fig. 20.1 Anatomia del sistema di autenticazione

20.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, siccome esso è 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 directory 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.

20.1.2. Master password

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. 20.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.

20.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. 20.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. 20.4 Richiesta di password dopo tre tentativi non validi

20.1.3. Configurazioni di Autenticazione

È possibile gestire le configurazioni di autenticazione da Configurations nella scheda Authentication della finestra di dialogo Opzioni QGIS (Impostazioni ▶ Opzioni).

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

Fig. 20.5 Editor delle configurazioni

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

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

Fig. 20.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 configurations in Authentication delle opzioni QGIS a meno che non sia necessario eseguire una gestione della configurazione più completa.

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

Fig. 20.7 Finestra di dialogo di connessione WMS che mostra i pulsanti Add, Edit, e Remove 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).

20.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 qualore 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 Settings ▶ Options e, nella scheda Authentication, fare clic sul pulsante options Installed Plugins.

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

Fig. 20.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. Assicurarsi che il plugin sia compilato con la stessa versione di QGIS se si intende aggiungerlo ad una installazione di destinazione esistente.

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

Fig. 20.9 Configurazione di autenticazione HTTP di base

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

Fig. 20.10 Configurazioni di autenticazione token ESRI

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

Fig. 20.11 Configurazioni di autenticazione Oauth2

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

Fig. 20.12 Percorso delle configurazioni di autenticazione PKI

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

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

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

Fig. 20.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.

20.1.5. Master Password ed Utilità di Auth Config

Sotto il menu Opzioni (Settings ▶ Options) nella scheda Authentication, ci sono diverse azioni di utilità per gestire il database di autenticazione e le configurazioni:

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

Fig. 20.15 Menu utilità

  • Input master password: apre la finestra di immissione della password principale, indipendentemente dall’esecuzione di qualsiasi comando di autenticazione del database

  • Clear cached master password: unsets the master password if it has been set

  • Reset master password: opens a dialog to change the master password (the current password must be known) and optionally back up the current database

  • Clear network authentication access cache: clears the authentication cache of all connections

  • Automatically clear network authentication access cache on SSL errors: the connection cache stores all authentication data for connections, also when the connection fails. If you change authentication configurations or certification authorities, you should clear the authentication cache or restart QGIS. When this option is checked, the authentication cache will be automatically cleared every time an SSL error occurs and you choose to abort the connection

  • Integrate master password with your Wallet/Keyring: adds the master password to your personal Wallet/Keyring

  • Store/update the master password in your Wallet/Keyring: updates the changed master password in your Wallet/Keyring

  • Clear the master password from your Wallet/Keyring: deletes the master password from your Wallet/Keyring

  • Enable password helper debug log: enables a debug tool that will contain all the log information of the authentication methods

  • Clear cached authentication configurations: clears the internal lookup cache for configurations, used to speed up network connections. This does not clear QGIS’s core network access manager’s cache, which requires a relaunch of QGIS.

  • Remove all authentication configurations: clears the database of all configuration records, without removing other stored records.

  • Erase authentication database: schedules a backup of the current database and complete rebuild of the database table structure. The actions are scheduled for a later time, to ensure that other operations, like project loading, do not interrupt the operation or cause errors due to a temporarily missing database.

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

    Fig. 20.16 DB erase verification menu

20.1.6. Using authentication configurations

Typically, an authentication configuration is selected in a configuration dialog for a network services (such as WMS). However, the selector widget can be embedded anywhere authentication is needed or in non-core functionality, like in third-party PyQGIS or C++ plugins.

When using the selector, No authentication is displayed in the pop-up menu control when nothing is selected, when there are no configurations to choose from, or when a previously assigned configuration can no longer be found in the database. The Type and Id fields are read-only and provide a description of the authentication method and the config’s ID respectively.

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

Fig. 20.17 Authentication configuration selector with no authentication

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

Fig. 20.18 Authentication configuration selector with selected config

20.1.7. Python bindings

All classes and public functions have sip bindings, except QgsAuthCrypto, since management of the master password hashing and auth database encryption should be handled by the main app, and not via Python. See Security Considerations concerning Python access.