Importante

La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 100.00%.

21.1. Panoramica sul sistema di autenticazione

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

Fig. 21.1 Anatomia del sistema di autenticazione

21.1.1. Database di autenticazione

Il nuovo sistema di autenticazione memorizza le configurazioni di autenticazione in un file database SQLite memorizzato, in modo predefinito, in <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.

21.1.2. Database di autenticazione personalizzati

QGIS può essere configurato per utilizzare un database di autenticazione personalizzato invece di quello predefinito SQLite sopra menzionato: può essere utilizzato qualsiasi database supportato dal modulo Qt SQL (ad esempio PostgreSQL, MySQL, ecc.), a condizione che il driver Qt SQL corrispondente sia disponibile nel sistema.

Questo può essere utile negli scenari in cui un utente desidera condividere lo stesso database di autenticazione tra più installazioni di QGIS, o quando un utente desidera utilizzare un database di autenticazione diverso da quello predefinito di SQLite o quando un database di autenticazione centralizzato viene utilizzato dal server QGIS.

L’unico modo per configurare un database di autenticazione personalizzato è impostare la variabile d’ambiente QGIS_AUTH_DB_URI all’URI della connessione, l’URI è nella forma di driver://username:password@hostname:port/database?options.

Dove:
  • driver è il nome del driver Qt SQL da utilizzare, ad esempio QPSQL for PostgreSQL, QMYSQL per MySQL, etc.

  • username è il nome utente da utilizzare per connettersi al database

  • password è la password da utilizzare per connettersi al database

  • hostname è il nome host del server di database

  • port è la porta del server del database

  • database è il nome del database da utilizzare

  • options sono le opzioni da passare al driver, ad esempio sslmode=require per PostgreSQL

Nota

Lo schema può essere specificato nelle opzioni URI, ad esempio QPSQL://username:password@hostname:port/database?schema=schema_name

Il database deve esistere prima di avviare QGIS e l’utente deve avere i permessi necessari per connettersi al database e per creare le tabelle obbligatorie se non esistono.

Avvertimento

La password nell’URI è memorizzata in testo semplice nella variabile di ambiente, quindi si consiglia di utilizzare un utente senza password o un utente con autorizzazioni limitate per connettersi al database.

Avvertimento

Qualsiasi database non basato su SQLite è considerato di sola lettura (questo può essere modificato dai plugin Python se necessario).

Questa è una funzionalità avanzata, progettata per consentire a QGIS di utilizzare uno o più database di autenticazione personalizzati o anche implementazioni Python personalizzate di archivi di credenziali.

Il sistema è inoltre progettato per consentire l’utilizzo di più database di autenticazione, ma attualmente non esiste un’interfaccia rivolta all’utente per gestire più archivi di credenziali, quindi il suo utilizzo richiede la configurazione e la gestione manuale, in genere da un plug-in Python.

21.1.3. 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. 21.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.

21.1.3.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. 21.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. 21.4 Richiesta di password dopo tre tentativi non validi

21.1.4. 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. 21.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. 21.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. 21.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).

21.1.5. 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. 21.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. 21.9 Configurazione di autenticazione HTTP di base

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

Fig. 21.10 Configurazioni di autenticazione token ESRI

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

Fig. 21.11 Configurazioni di autenticazione Oauth2

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

Fig. 21.12 Percorso delle configurazioni di autenticazione PKI

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

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

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

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

21.1.6. 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. 21.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. 21.16 Menu di cancellazione del DB di autenticazione

21.1.7. 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. 21.17 Selettore di configurazione dell’autenticazione senza autenticazione

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

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

21.1.8. Collegamenti Python

Tutte le classi e le funzioni pubbliche hanno legami sip, tranne QgsAuthCrypto, poiché la gestione dell’hashing della master password e della crittografia del database auth dovrebbe essere gestita dall’applicazione principale e non da Python.

Una volta inserita la master password, l’API è aperta per accedere alle configurazioni di autenticazione nel database di autenticazione, in modo simile a come funziona Firefox. Tuttavia, non è stato definito alcun blocco contro l’accesso a PyQGIS. Questo può portare a problemi nel caso in cui un utente scarichi/installi un plugin PyQGIS o un’applicazione standalone dannosi che accedono alle credenziali di autenticazione.