21.2. Flussi di lavoro per l’autenticazione degli utenti
21.2.1. Autenticazione HTTP(S)
Una delle connessioni alle risorse più comuni è via HTTP(S), ad esempio i server di web mapping, e i plugin di metodo di autenticazione spesso funzionano per questi tipi di connessioni. I plugin di sistema hanno accesso all’oggetto della richiesta HTTP e possono manipolare sia la richiesta che le sue intestazioni. Questo permette molte forme di autenticazione basate su internet. Quando ci si connette via HTTP(S) usando il metodo di autenticazione standard nome utente/password si tenterà l’autenticazione HTTP BASIC al momento della connessione.
21.2.2. Autenticazione al Database
Le connessioni alle risorse del database sono generalmente memorizzate come coppie chiave=valore
, che esporranno nomi utente e (opzionalmente) password, se non si usa una configurazione di autenticazione. Quando si configura con il sistema di autenticazione, la chiave=valore
sarà una rappresentazione astratta delle credenziali, ad esempio authfg=81t21b9
.
21.2.3. Autenticazione PKI
Quando si configurano i contenuti PKI all’interno del sistema di autenticazione, si ha la possibilità di importare i contenuti nel database o di fare riferimento a file di contenuti memorizzati sul proprio filesystem. Quest’ultima opzione può essere utile se tali contenuti cambiano frequentemente, o se i contenuti vengono sostituiti da un amministratore di sistema. In entrambi i casi sarà necessario memorizzare qualsiasi passphrase necessaria per accedere alle chiavi private all’interno del database.
Tutti i componenti PKI possono essere gestiti in editor separati all’interno del Gestore Certificato, a cui si può accedere nella scheda Autenticazione nella finestra di dialogo QGIS Opzioni ( ) facendo clic sul pulsante Gestione Certificati.
Nel Gestore Certificato, ci sono editor per Identità, Server e Autorità. Ognuno di questi è contenuto nelle proprie schede, e sono descritti di seguito nell’ordine in cui si incontrano nel grafico del flusso di lavoro di cui sopra. L’ordine delle schede è relativo agli editor di frequente accesso una volta che ci si è impratichiti al flusso di lavoro.
Nota
Poiché tutte le modifiche al sistema di autenticazione scrivono immediatamente nel database di autenticazione, per salvare le modifiche non c’è bisogno di cliccare sul pulsante OK della finestra di dialogo Opzioni. Questo è diverso dalle altre impostazioni della finestra di dialogo delle opzioni.
21.2.3.2. Identità
Puoi gestire i bundle di identità client disponibili dalla scheda Identità nella scheda Gestore dei certificati della scheda Autenticazione della finestra di dialogo Opzioni di QGIS. Un’identità è ciò che ti autentica con un servizio abilitato alla PKI e di solito consiste in un certificato client e una chiave privata, sia come file separati che combinati in un singolo file «bundle». Il bundle o la chiave privata sono spesso protetti da passphrase.
Una volta che hai importato tutte le Autorità di certificazione (CA), puoi opzionalmente importare qualsiasi bundle di identità nel database di autenticazione. Se non si desidera memorizzare le identità, si può fare riferimento ai percorsi dei loro file system componenti all’interno di una configurazione di autenticazione singola.
Quando si importa un bundle di identità, esso può essere protetto o meno da passphrase e può contenere certificati CA che formano una catena di fiducia. Le certificazioni della catena di fiducia non saranno importate qui; possono essere aggiunte separatamente nella scheda Autorità.
Al momento dell’importazione, il certificato e la chiave privata del bundle saranno memorizzati nel database, con la memorizzazione della chiave criptata usando la password principale di QGIS. L’uso successivo del bundle memorizzato dal database richiederà solo l’inserimento della password principale.
Sono supportati i bundle di identità individuali composti da componenti PEM/DER (.pem/.der) e PKCS#12 (.p12/.pfx). Se una chiave o un bundle è protetto da passphrase, la password sarà richiesta per convalidare il componente prima dell’importazione. Allo stesso modo, se il certificato client nel bundle non è valido (per esempio, la sua data di efficacia non è ancora iniziata o è scaduta) il bundle non può essere importato.
21.2.4. Gestire i layer scorretti
Occasionalmente, l’ID della configurazione di autenticazione che viene salvato con un file di progetto non è più valido, forse perché il database di autenticazione corrente è diverso da quando il progetto è stato salvato l’ultima volta, o a causa di una mancata corrispondenza delle credenziali. In questi casi la finestra di dialogo Gestire i layer scorretti verrà presentata all’avvio di QGIS.
Se una sorgente di dati ha un ID di configurazione di autenticazione associato ad essa, sarà possibile modificarla. Facendo ciò, si modificherà automaticamente la stringa della sorgente di dati, in modo molto simile all’apertura del file di progetto in un editor di testo e alla modifica della stringa.
21.2.5. Cambiare l’ID di configurazione di autenticazione
Talvolta, è necessario cambiare l’ID di configurazione di autenticazione che è associato all’accesso a una risorsa. Ci sono casi in cui questo è utile:
L’ID della configurazione di autenticazione della risorsa non è più valido: Questo può accadere quando hai cambiato database di autenticazione e hai bisogno di allineare una nuova configurazione all’ID già associato a una risorsa.
File di progetto condivisi: Se si intende condividere progetti tra utenti, ad esempio tramite un file server condiviso, è possibile predefinire un 7-caratteri (contenente a-z e/o 0-9) che è associato alla risorsa. Poi, i singoli utenti cambiano l’ID di una configurazione di autenticazione che è specifica per le loro credenziali della risorsa. Quando il progetto viene aperto, l’ID si trova nel database di autenticazione, ma le credenziali sono diverse per ogni utente.
Avvertimento
Cambiare l’ID della configurazione di autenticazione è considerata un’operazione avanzata e dovrebbe essere fatta solo con piena conoscenza del perché è necessario. Questo è il motivo per cui c’è un pulsante di blocco che deve essere cliccato, per sbloccare il campo di testo dell’ID prima di modificarlo.
21.2.6. Supporto QGIS Server
Quando si usa un file di progetto, con layer che hanno configurazioni di autenticazione, come base per una mappa in QGIS Server, ci sono un paio di passi di configurazione aggiuntivi necessari a QGIS per caricare le risorse:
Il database di autenticazione deve essere disponibile
La password principale di autenticazione del database deve essere disponibile
Quando si istanzia il sistema di autenticazione, il Server creerà o userà il file qgis-auth.db
nel user profile attivo, o la cartella definita dalla variabile d’ambiente QGIS_AUTH_DB_DIR_PATH
. Può essere che l’utente del server non abbia una directory HOME, nel qual caso, usa la variabile d’ambiente per definire una cartella che l’utente del server abbia i permessi di lettura/scrittura e che non sia situata all’interno delle cartelle accessibili al web.
Per passare la master password al Server, scrivila nella prima riga del file in un percorso sul file system leggibile dall’utente dei processi del Server e definito usando la variabile d’ambiente QGIS_AUTH_PASSWORD_FILE
. Assicurati di limitare il file come leggibile solo dall’utente di processo del Server e di non memorizzare il file all’interno di cartelle accessibili al web.
Nota
La variabile QGIS_AUTH_PASSWORD_FILE
sarà rimossa dall’ambiente Server immediatamente dopo l’accesso.
21.2.7. Eccezioni SSL server
Puoi gestire le configurazioni e le eccezioni del server SSL dalla scheda Server nella sezione Autenticazione della finestra di dialogo Opzioni di QGIS.
A volte, quando ci si connette a un server SSL, ci sono errori con l“«handshake» SSL o con il certificato del server. Puoi ignorare questi errori o creare una configurazione del server SSL come eccezione. Questo è simile a come i browser web ti permettono di ignorare gli errori SSL, ma con un controllo più granulare.
Avvertimento
Non dovresti creare una configurazione del server SSL a meno che tu non abbia una conoscenza completa dell’intera configurazione SSL tra il server e il client. Invece, segnala il problema all’amministratore del server.
Nota
Alcune configurazioni PKI usano una catena di fiducia CA completamente diversa per convalidare le identità dei client rispetto alla catena usata per convalidare il certificato del server SSL. In tali circostanze, qualsiasi configurazione creata per il server di connessione non risolverà necessariamente un problema con la convalida della tua identità client, e solo l’emittente della tua identità client o l’amministratore del server può risolvere il problema.
Puoi pre-configurare una configurazione del server SSL cliccando il pulsante . In alternativa, puoi aggiungere una configurazione quando si verifica un errore SSL durante una connessione e ti viene presentata una finestra di dialogo SSL Error (dove l’errore può essere ignorato temporaneamente o salvato nel database e ignorato):
Una volta che una configurazione SSL è salvata nel database, può essere modificata o cancellata.
Se vuoi preconfigurare una configurazione SSL e la finestra di dialogo di importazione non funziona per la connessione del tuo server, puoi attivare manualmente una connessione tramite la Console Python eseguendo il seguente codice (sostituisci https://bugreports.qt-project.org
con l’URL del tuo server):
from qgis.PyQt.QtNetwork import QNetworkRequest
from qgis.PyQt.QtCore import QUrl
from qgis.core import QgsNetworkAccessManager
req = QNetworkRequest(QUrl('https://bugreports.qt-project.org'))
reply = QgsNetworkAccessManager.instance().get(req)
Questo se si verificano errori aprirà una finestra di dialogo di errore SSL , che consente di scegliere di salvare la configurazione nel database.