Importante
La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 100.00%.
21.1. Panoramica sul sistema di autenticazione
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 esempioQPSQLfor PostgreSQL,QMYSQLper MySQL, etc.usernameè il nome utente da utilizzare per connettersi al databasepasswordè la password da utilizzare per connettersi al databasehostnameè il nome host del server di databaseportè la porta del server del databasedatabaseè il nome del database da utilizzareoptionssono le opzioni da passare al driver, ad esempiosslmode=requireper 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 Principale
Per memorizzare o accedere ad informazioni sensibili all’interno del database, un utente deve definire una password principale. Una nuova password principale 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 password principale, 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.
Fig. 21.2 Inserisci la nuova password principale
Nota
Un percorso di un file contenente la password principale può essere impostato utilizzando la seguente variabile d’ambiente, QGIS_AUTH_PASSWORD_FILE.
21.1.3.1. Gestione della password principale
Una volta impostata, la password principale può essere reimpostata; la password principale attuale sarà necessaria prima di reimpostarla. Durante questo processo, c’è un’opzione per generare un backup completo del database attuale.
Fig. 21.3 Ripristino della password principale
Se l’utente dimentica la password principale, non c’è modo di recuperarla o sovrascriverla. Non vi è inoltre alcun mezzo per recuperare informazioni criptate senza conoscere la password principale.
Se un utente inserisce la password esistente in modo errato tre volte, la finestra di dialogo offrirà la possibilità di cancellare il database.
Fig. 21.4 Richiesta della 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 ().
Fig. 21.5 Editor delle configurazioni
Per creare una nuova configurazione di autenticazione:
Premi il pulsante
Aggiungi nuova configurazione di autenticazioneSpecifica un Nome e un URL opzionale Risorsa
Alla configurazione verrà assegnato un ID di sette caratteri ID a scopo identificativo. È possibile personalizzarlo dopo aver premuto il pulsante
Sblocca per modificare l’ID. Si prega di tenere presente che l’aggiornamento di tale ID potrebbe causare malfunzionamenti.Seleziona il target method e inserisci i dati di connessione corrispondenti
Una volta terminato, clicca su Salva per salvare la configurazione. La configurazione salvata apparirà nell’elenco delle configurazioni di autenticazione e potrà essere utilizzata con le connessioni supportate.
La configurazione salvata può essere successivamente modificata utilizzando
Modifica configurazione selezionata oppure eliminata utilizzando
Elimina configurazione selezionata.
Fig. 21.6 Aggiunta di configurazione dall’interno dell’editor di Configurazione
Le stesse operazioni relative alla gestione delle configurazioni di autenticazione (Aggiungi, Modifica e Rimuovi) possono essere eseguite durante la configurazione di una determinata connessione di servizio, come ad esempio la configurazione di una connessione di servizio OWS. A tal fine, sono disponibili pulsanti di azione all’interno del configuration selector per gestire completamente le configurazioni presenti nel database di autenticazione. In questo caso, non è necessario accedere alle configurazioni nella scheda Autenticazione delle opzioni di QGIS, a meno che non sia necessaria una gestione più completa delle configurazioni.
Fig. 21.7 Finestra di dialogo di connessione al WMS che mostra il widget 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 e, nella scheda Autenticazione, fai clic sul pulsante
Plugins Installati.
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.
21.1.5.1. Autenticazione Intestazione API
Il metodo di autenticazione tramite Intestazione API consente di connettersi a servizi che richiedono intestazioni HTTP personalizzate, come le chiavi API. Ad esempio, se un servizio WMS richiede una chiave API inviata come intestazione (ad es. X-API-KEY), puoi utilizzare questo metodo per fornirla.
Puoi aggiungere una o più intestazioni tramite il pulsante
; specifica Chiave Header e Valore intestazione per ciascuna voce. Utilizza
per eliminare l’intestazione selezionata oppure il pulsante Cancella per rimuovere tutte le voci.
Fig. 21.9 Configurazioni dell’autenticazione tramite API Header
21.1.5.2. Autenticazione AWS S3
Il metodo di autenticazione AWS S3 consente di connettersi alle risorse Amazon S3 specificando Nome, Risorsa, Nome utente, Password e Regione.
Fig. 21.10 Configurazioni di autenticazione AWS S3
21.1.5.3. Autenticazione Base
Il metodo di autenticazione Base viene utilizzato per i servizi che richiedono l’autenticazione HTTP standard con Nome utente, Password e Dominio.
Fig. 21.11 Configurazione di autenticazione HTTP di base
21.1.5.4. Autenticazione ESRI Token
Il metodo di autenticazione tramite token ESRI viene utilizzato per ArcGIS REST Server che richiedono l’autenticazione basata su token.
Fig. 21.12 Configurazioni di autenticazione token ESRI
21.1.5.5. Autenticazione tramite certificato di identità
Il metodo di autenticazione tramite certificato di identità consente di connettersi utilizzando un identity certificate del client.
Fig. 21.13 Configurazioni di autenticazione con certificato di identità
21.1.5.6. Autenticazione MapTiler HMAC-SHA256
Il metodo di autenticazione HMAC-SHA256 di MapTiler viene utilizzato per connettersi ai servizi MapTiler che richiedono l’autorizzazione HMAC-SHA256.
Fig. 21.14 Configurazioni di autenticazione HMAC-SHA256 per MapTiler
21.1.5.7. Autenticazione OAuth2
Il metodo di autenticazione OAuth 2.0 viene utilizzato per connettersi a servizi che richiedono l’autorizzazione OAuth 2.0, consentendo un accesso sicuro tramite credenziali del client e autenticazione basata su token.
Supporta l’uso di localhost come host di reindirizzamento, garantendo la compatibilità con i servizi che non accettano reindirizzamenti http://127.0.0.1 (ad esempio, Microsoft SharePoint).
Un’opzione di configurazione avanzata di OAuth2, Extra token header(s), consente di allegare come intestazioni di richiesta HTTP(S) i token aggiuntivi restituiti dall’endpoint dei token OAuth2.
Fig. 21.15 Configurazioni di autenticazione Oauth2
21.1.5.8. Autenticazione PKI-Paths
Il metodo di autenticazione PKI-Paths consente di connettersi utilizzando file di certificato e chiave separati memorizzati sul tuo sistema.
Fig. 21.16 Percorso delle configurazioni di autenticazione PKI
21.1.5.9. Autenticazione PKI-PKCS#12
Il metodo di autenticazione PKI-PKCS#12 ti consente di connetterti utilizzando un unico file bundle contenente sia il certificato che la chiave privata, con una passphrase opzionale per la chiave.
Fig. 21.17 Configurazioni dei percorsi del file PKI PKCS#12 di autenticazione
21.1.6. Password Principale e Strumenti Configurazione Autorizzazione
Sotto il menu Opzioni () nella scheda Autenticazione, ci sono diverse funzionalità utili per gestire il database di autenticazione e le configurazioni:
Fig. 21.18 Menu Utilità
Inserisci la Password Principale…: apre la finestra di dialogo per l’inserimento della password principale, indipendentemente dall’esecuzione di qualsiasi comando relativo al database di autenticazione
Cancella la Password Principale memorizzata in cache: annulla l’impostazione della password principale, se è stata impostata
Ripristina Password Principale…: apre una finestra di dialogo per modificare la password principale (è necessario conoscere la password attuale) e, facoltativamente, eseguire il backup del database corrente
Svuota la Cache di Accesso dell’Autenticazione di Rete: svuota la cache di autenticazione di tutte le connessioni
Svuota automaticamente la Cache di Accesso per l’Autenticazione di Rete quando si verificano Errori SSL: la cache delle connessioni memorizza tutti i dati di autenticazione relativi alle connessioni, anche quando la connessione non va a buon fine. Se si modificano le configurazioni di autenticazione o le autorità di certificazione, devi svuotare la cache di autenticazione o riavviare QGIS. Quando questa opzione è selezionata, la cache di autenticazione verrà svuotata automaticamente ogni volta che si verifica un errore SSL e scegli di interrompere la connessione
Integra la password principale con il tuo Password Manager: aggiunge la password principale al tuo Wallet/Keyring personale
Cancella la Password Principale dal tuo Password Manager…: elimina la password principale dal tuo Wallet/Keyring
Abilita il Log di Debug per l’Aiuto per la Password: abilita uno strumento di debug che conterrà tutte le informazioni di log relative ai metodi di autenticazione
Cancella le Configurazioni di Autenticazione salvate in Cache: cancella la cache interna di ricerca delle configurazioni, utilizzata per velocizzare le connessioni di rete. Questa operazione non cancella la cache del gestore di accesso alla rete principale di QGIS, per cui è necessario riavviare QGIS.
Rimuovi tutte le Configurazioni di Autenticazione…: cancella dal database tutti i record di configurazione, senza eliminare gli altri record memorizzati.
Importa Configurazioni di Autenticazione da File…: importa da un file
.XMLi dettagli necessari per creare configurazioni di autenticazione personalizzate.Esporta le Configurazioni di Autenticazione Selezionate si File…: esporta gli elementi selezionati in un file
.XML, eventualmente crittografato.Cancella il Database di Autenticazione…: pianifica un backup del database corrente e una ricostruzione completa della struttura delle tabelle del database. Le operazioni vengono pianificate per un momento successivo, per garantire che altre operazioni, come il caricamento dei progetti, non interrompano il processo né causino errori dovuti alla temporanea assenza del database.
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 utilizza il selettore, nel menu a comparsa viene visualizzata l’opzione Nessuna autenticazione se non è selezionato nulla, se non sono presenti configurazioni tra cui scegliere o se una configurazione assegnata in precedenza non è più reperibile nel database. Utilizzare il menu a discesa per selezionare una configurazione di autenticazione esistente oppure premere
Crea una nuova configurazione di autenticazione per crearne una da utilizzare. Maggiori dettagli su Autenticazione.
Fig. 21.19 Selettore della configurazione di autenticazione con la configurazione scelta
21.1.8. Collegamenti Python
Tutte le classi e le funzioni pubbliche dispongono di binding SIP, ad eccezione di QgsAuthCrypto, poiché la gestione dell’hash della password principale e della crittografia del database di autenticazione deve essere gestita dall’applicazione principale e non tramite Python.
Una volta inserita la password principale, 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.